[Teleport]Proxy Pod가 NLB에서 Health check Failed 되는 이슈 해결 방법

2025. 7. 20. 17:51·DevOps
반응형

배경 상황

접근제어 관리를 위해서 Teleport를 Helm chart로 배포하는데 Teleport Cluster와 연결한 NLB에서 Pod로의 헬스체크가 실패하고 있었다.

 

해결 방법

Pod 로그를 살펴봤을 때에는 별 문제가 없어서 LB쪽 설정을 확인했는데 다음과 같이 설정되어있었다. (참고로 지금 회사에서는 LB와 k8s 리소스의 라이프사이클을 다르게 가져가기 위해 Ingress 대시 Target Group Binding을 사용하고 있다. 자세한 설명은 다음 AWS 블로그 포스팅을 참조.)

apiVersion: elbv2.k8s.aws/v1beta1
kind: TargetGroupBinding
metadata:
  name: teleport-tgb
  namespace: teleport
spec:
  networking:
    ingress:
    - from:
      - securityGroup:
          groupID: sg-0000000000000000
      ports:
      - port: 443
        protocol: TCP
  serviceRef:
    name: teleport
    port: 443
  targetGroupARN: arn:aws:elasticloadbalancing:ap-northeast-2:<Account ID>:targetgroup/<target Group Name / ID>
  targetType: ip

 

 

이제 Teleport Service 를 살펴보면 Service 자체는 443 포트를 바라보고 있지만 실제로 Pod가 리스닝 하고 있는 포트는 3080포트이다.

  ports:
    - name: tls
      port: 443
      protocol: TCP
      targetPort: 3080

 

 

그리고 Target Group Binding에서 target type을 ip로 두게 되면 kube-proxy를 거치지 않고 LB에서 Pod로 트래픽을 바로 보내기 때문에 spec.networking.ingress.ports 필드를 통해(LB > Node로의 Inbound rule 구성을 위한 필드) 443 포트가 아닌 3080 포트를 허용하도록 설정을 변경해야 한다(target group도 3080포트로 트래픽 보내도록 설정 필요).

apiVersion: elbv2.k8s.aws/v1beta1
kind: TargetGroupBinding
metadata:
  name: teleport-tgb
  namespace: teleport
spec:
  networking:
    ingress:
    - from:
      - securityGroup:
          groupID: sg-0000000000000000
      ports:
      - port: 3080
        protocol: TCP
  serviceRef:
    name: teleport
    port: 443
  targetGroupARN: arn:aws:elasticloadbalancing:ap-northeast-2:<Account ID>:targetgroup/<target Group Name / ID>
  targetType: ip
저작자표시 비영리 동일조건 (새창열림)

'DevOps' 카테고리의 다른 글

[PagerDuty]Jenkins 파이프라인 실패 알림 설정하기  (2) 2025.07.30
[AWS]AI 학습용 크롤러 봇 리스트 및 WAF를 활용한 차단 방법(GPTBot, Meta, ClaudeBot, PerplexityBot , Google-Extended등)  (3) 2025.07.22
[Istio]헬름 차트 배포 후 Istiod Pod에서 "webhook is not ready, retry controller=validation" 에러 해결 방법  (0) 2025.07.19
[cert-manager]error instantiating route53 challenge solver: unable to construct route53 provider: empty credentials; perhaps you meant to enable ambient credentials?" 에러 해결 방법  (1) 2025.07.12
[AWS]DMS로 스테이징 환경 DB 구성하기(Aurora MySQL)  (2) 2025.06.10
'DevOps' 카테고리의 다른 글
  • [PagerDuty]Jenkins 파이프라인 실패 알림 설정하기
  • [AWS]AI 학습용 크롤러 봇 리스트 및 WAF를 활용한 차단 방법(GPTBot, Meta, ClaudeBot, PerplexityBot , Google-Extended등)
  • [Istio]헬름 차트 배포 후 Istiod Pod에서 "webhook is not ready, retry controller=validation" 에러 해결 방법
  • [cert-manager]error instantiating route53 challenge solver: unable to construct route53 provider: empty credentials; perhaps you meant to enable ambient credentials?" 에러 해결 방법
Canary_카나리아
Canary_카나리아
어쩌다 데브옵스 엔지니어가 된 문과생의 기록용 블로그
    반응형
  • Canary_카나리아
    release: canary
    Canary_카나리아
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • DevOps (67)
      • Programming (28)
      • Certifications (3)
      • ETC (20)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    클라우드엔지니어자격증
    프로메테우스예제
    백엔드
    개발자
    프로메테우스
    Grafana
    제로베이스
    백엔드공부
    java개념
    자바개념
    클라우드자격증
    NCP자격증
    네이버클라우드자격증
    kops란
    Prometheus
    한빛출판네트워크
    kops사용법
    terraform
    그라파나예제
    spring
    Java
    argocd
    NCPassociate자격증
    네이버클라우드서비스
    그라파나
    백엔드스쿨
    데브옵스엔지니어
    백엔드개발
    ncp서비스
    NCPprofessional자격증
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Canary_카나리아
[Teleport]Proxy Pod가 NLB에서 Health check Failed 되는 이슈 해결 방법
상단으로

티스토리툴바