본문 바로가기

공부260

[AWS EKS] CoreDNS Addon을 FARGATE로 띄우기 (w. Terraform) # 0. 서론eks의 모든 노드들을 카펜터로 띄우기 시작했다.카펜터가 아닌 노드가 없기 때문에 karpenter 자체는 fargate로 띄워야만 했다.여기까지는 managed node group > karpenter로 마이그레이션하다가 알게 된 것이고.. 카펜터만 띄우는 설정으로 새로 클러스터를 띄우다보니 coredns가 karpenter보다 먼저 떠야 한다는 것을 알게 되었다.(카펜터도 내부 dns에 의존하는 무언가가 있나보다. 더 자세히 알아보진 않았다.) 따라서 karpenter와 마찬가지로 coredns도 fargate로 띄우도록 설정을 변경하게 되었다.이 때 필요한 과정을 terraform으로 설명하겠다. # 1. coredns fargate profile 생성loc.. 2024. 4. 28.
[AWS EKS] 클러스터 보안그룹 vs 추가 보안그룹 (Cluster SG vs Additional SG) # 결론클러스터 보안그룹과 추가 보안그룹은 다르다.클러스터 보안그룹 (EKS 생성 시 자동 생성되며, self rule도 자동으로 생성되어 있음) 은 eks api로 만든 컴퓨팅 리소스 (fargate, managed ec2 node group) 들에 적용된다.즉,컨트롤플레인의 cross-eni : 클러스터 보안그룹 & 추가 보안그룹 사용fargate, managed node group 노드 : 클러스터 보안그룹 사용자체 런치템플릿 사용한 managed node group, self managed 노드 : 커스텀 보안그룹 사용 (내가 지정하는걸로) # 일단 용어정리클러스터 보안그룹 : eks 클러스터 생성 시 자동으로 생성되는 "Cluster security group"추.. 2024. 4. 28.
[wordpress] Google OAuth 설정 # 참고- wordpress 6.4.1 버전 사용  # Google OAuth 2.0 클라이언트 생성 승인된 리디렉션 URI에https:///wp-login.php만 등록하면 된다. (난 wordpress가 여러개라 여러개 등록함)이후 생성된 client id & client secret을 복사해둔다. # 플러그인 설치 및 활성화wordpress > 플러그인 > Add New Plugin > Log in with Google 설정 > Login with Google 접근 클라이언트 정보 및 domain 설정 후 저장 Whitelisted Domains엔 허용할 구글계정 도메인을 적어주면 된다.id@honglab.com 이라는 메일인 경우 honglab.co.. 2024. 4. 24.
[ingress-nginx] 413 Request Entity Too Large ingress에 아래 어노테이션을 추가해 해결 가능하다.annotations: nginx.ingress.kubernetes.io/proxy-body-size: 20m   참조https://blog.leocat.kr/notes/2020/04/21/nginx-413-request-entity-too-largehttps://www.hahwul.com/2021/11/13/413-error-nginx-ingress-in-k8s/ 2024. 4. 24.
[elasticsearch/helm] bitnami chart로 elasticsearch & kibana 설치하기 먼저, k8s환경에서 elasticsearch를 설치하는 경우 먼저 eck를 고려한다.왜 eck를 고려하는가? > elasticsearch와 kibana를 쉽게 배포할 수 있기 때문그럼 정말 eck가 쉬운가? 라고 했을 때...- 일단 eck controller 를 설치한 후에, 설치된 crd를 통해서 elasticsearch와 kibana를 배포할 수 있다.- 그렇다면 그 es & kibana를 반복적으로 배포하려고 할 때의 crd용 helm chart는..? 내가 직접 만들어야 하는 것 같음. (내가 못찾은거면 말고..)- 그 방법을 통해서 배포해보려고 시도는 해봤으나, 한번에 되지 않았음;> 만약 eck밖에 방법이 없었다면 어떻게든 트러블슈팅을 했겠지만... bitnami의 ela.. 2024. 4. 24.
[k8s/helm] 자체 helm chart 만들고 Artifact HUB 에 올려보기 결과물 >> https://artifacthub.io/packages/helm/suminhong/ingress-nginx-external-lb ingress-nginx-external-lb 1.0.0 · suminhong/suminhong Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer with External AWS LB artifacthub.io 위 차트는 ingress-nginx에 별도 LB를 매핑시키고 싶은 경우 사용 가능하다. 아래 글에 히스토리가 적혀있다. https://honglab.tistory.com/304 helm chart를 만드는것은 많이 해봤지만 Artifact HUB에 올리는건 처.. 2024. 4. 21.
[k8s/github] github workflow 실행시키는 k8s cronjob 참고) https://honglab.tistory.com/310 2024. 4. 19.
[Github Workflow API] id 조회 & 실행 (dispatch) # Github Action Workflow id 조회 curl \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: token $GH_ACCESS_TOKEN" \ https://api.github.com/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_FILENAME ex) curl \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: token $GH_ACCESS_TOKEN" \ https://api.github.com/repos/suminhong/terraform/actions/workflows/cicd.yaml output json.. 2024. 4. 19.
[external-dns/ingress-nginx] NodePort 타입 external LB를 external dns CNAME으로 등록되게 하기 # 상황 - ingress-nginx 를 LB타입으로 만들어 사용하다가, 일부 필수 옵션이 예상과 다르게 동작한 경우가 발생 > 하필 production이라 장애가 발생 - ingress-nginx chart의 service annotation만으로 중요 production LB들을 관리하기는 무리라고 판단. - stage / prod 인프라의 동일성을 보장하기 위해서라도 ingress-nginx 앞단의 LB를 별도 IaC로 관리하기로 결정. - IaC로 관리하는 별도 LB 를 사용하기 위해서는, ingress-nginx controller 자체는 NodePort로 오픈되어야만 한다. (ClusterIP는 클러스터 내부에서만 찌를 수 있고, LB는 별도 lb를 만들어버리고, ExternalName은..아.. 2024. 4. 18.
[GitLab/helm] Google OAuth 붙여서 띄우기 # 1. Google OAuth 2.0 Client 만들기 승인된 자바스크립트 원본 : GitLab 도메인 승인된 리디렉션 URI : - {gitlab 도메인}/users/auth/google_oauth2/callback - {gitlab 도메인}/-/google_api/auth/callback # 2. Google OAuth Secret 추가 아쉽게도(?) GitLab 공식 helm chart는 시크릿을 value에 박아 넣음으로써 연동되는 그런 허술한 보안을 제공하지 않는다. (내가 못찾은걸수도 있음) 그래서 따로 secret을 만들고, helm chart에선 해당 secret을 참조하도록 해줘야 한다. (참고로 나는 argocd multi source를 통해 같이 배포되도록 설정해 두었다) apiV.. 2024. 4. 15.