본문 바로가기

k8s39

[external-dns] 특정 ingress만 무시하기 (exclude) 인터넷에 검색해보면external-dns.alpha.kubernetes.io/exclude: "true" 라는 어노테이션을 통해 특정 ingress를 external-dns에서 무시할 수 있도록 한다고 써있다.근데 그렇게 해봤는데 안됨...심지어 공식도큐 등을 계속 뒤지다보니 공식적으로 저런 어노테이션을 제공한적이 없어서 더 멘붕 옴 근데 유일한 한국 블로그 글이 있었는데, 여기에 정확한 답이 있었다.(벨로그 아이디가 없어서 댓글 못달았는데 제발 적게 일하고 많이 버십쇼)https://velog.io/@nigasa12/External-dns%EC%97%90-exclude-filter%EB%A5%BC-%EA%B1%B8%EC%96%B4%EB%B3%B4%EC%9E%90 External-dns에 exclude .. 2024. 4. 30.
[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 생성locals { cluster_n.. 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"추가 보안그룹 : eks 클러스터 .. 2024. 4. 28.
[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.
[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.
[k8s/ingress-nginx/aws] Chart: Add a TargetGroupBinding 결론 : 너무 user specific하다고 close 됨. >> 내가 별도로 차트 올려둠 (ingress-nginx-4.10.0 기반, https://artifacthub.io/packages/helm/suminhong/ingress-nginx-external-lb) https://github.com/kubernetes/ingress-nginx/pull/11198 Chart: Add a TargetGroupBinding object to the ingress-nginx helm chart template. by suminhong · Pull Request #11198 · kubernet What this PR does / why we need it: Add a TargetGroupBinding obje.. 2024. 4. 4.
[Grafana Mimir] Mimir Helm 설치/셋업 도중 트러블슈팅 # Ref https://wlsdn3004.tistory.com/50 Grafana Mimir란? 개념부터 설치까지 Prometheus는 쿠버네티스 환경에서 많이 사용하는 인기 있는 오픈소스 모니터링 도구이다. 하지만 몇 가지 치명적인 단점이 있다. 확장 및 고가용성 문제 프로메테우스는 단일 서버로 동작하게 구 wlsdn3004.tistory.com Mimir가 뭔지와 컴포넌트에 대한 자세한 설명은 위를 확인하자. 나는 Mimir를 설치하고, Prometheus 연동 중 트슛 과정만 설명한다. # 권한 설정 먼저 일단 mimir의 데이터는 s3에 담을 것이다. iam policy는 아래처럼 구성하면 된다. { "Statement": [ { "Action": [ "s3:ListBucket", "s3:Put.. 2024. 3. 28.