본문 바로가기

전체333

[Robusta] 직관적인 쿠버네티스 클러스터 알람 받기 그동안 쿠버네티스 워크로드에 대한 알림은 argocd / datadog 일부 만 있었다.그러다가 파드 내에서 OOMKill이 일어나 리스타트 되는 경우가 많다는 것을 알게 되었는데, argocd에서는 이 경우를 감지하지 못하고, datadog 알림은 가독성이 썩 좋진 못했다. 어떤 이유로 restart되었는지 알지 못하고, 어떤 클러스터의 어떤 파드인지도 한 눈에 들어오지 않는다.뭐 사실 이것도 어떻게든 잘 깎으면 개선할 수 있었겠지만, 또 거기에 리소스를 쏟을 시간은 없었다. (사실 하기 싫은거 맞음) 그러다가 Robusta 라는 것을 알게 되었다. (어디 오픈톡방에서 누가 키워드를 남겼는데 이후로 찾아보았다.)레퍼런스는 많이 없었는데, 제니퍼소프트 블로그 글을 보고 일단 한번 설치해 봐야겠다는 생각을.. 2024. 6. 6.
인라인 코드블럭 테스트 ㅇㄴㅇㄹ`sads` 되나? 잘된다 굳 참조-https://haruisshort.tistory.com/253 티스토리에서 백틱(``)으로 인라인 코드 편하게 입력하기 (반응형 #2 스킨)너무 불편하게도 티스토리는 에디터 자체에 인라인 코드를 삽입하는 기능이 없어 html 모드에서 를 일일이 덧씌워 적용해야했다. (마크다운 모드는 나한테 글자가 너무 작아서 불편했다.) 오늘도haruisshort.tistory.com 2024. 6. 5.
[Terraform] 캐치테이블 테라폼 환경 소개 https://medium.com/catchtable/%EC%BA%90%EC%B9%98%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98-%EC%9D%B8%ED%94%84%EB%9D%BC%EB%A5%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-feat-terraform-aws-693c30e3b1ba 캐치테이블의 인프라를 관리하는 방법 (feat. Terraform, AWS)안녕하세요! 캐치테이블 DevOps 엔지니어 홍수민입니다.medium.com  처음으로 회사 기술블로그를 작성해 보았습니다. 2024. 5. 18.
honglab_최신작.png 끝 ㅋ 2024. 5. 8.
[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.
[키보드] Nuphy Halo75 유무선 블루투스 나이트 브리즈 축 키보드 + 키캡등 부속품 + 팜레스트 (별도구매)를 10만원에 당근에서 샀다. 원래 8bitdo꺼 썼는데 (추후 리뷰 예정) 얘는 훨씬 조용하고 다각다각 소리남.10만원은 전혀 아깝지 않았지만 제값내고 산다고 생각하면 (키보드만 20 넘더라) 좀 아까울듯 싶었다. 요새 좀 이쁜 키보드는 모두 갖고 싶어서 큰일이다.키보드 진열장 사고싶은데 집이 좁은 이슈.. ㅜ  끝 2024. 4. 24.
[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.