TekaPicker K8s 프론트엔드 HTTPS 배포 문제 해결 기록

ddoachi·2025년 7월 27일

TekaPicker

목록 보기
30/30

전체 개요

Kubernetes 환경에서 teka-picker-fe 프론트엔드를 HTTPS로 배포하는 과정에서 다음과 같은 주요 문제들이 발생했고, 이를 해결하기 위한 모든 과정들을 아래와 같이 정리함.


CoreDNS 문제로 인한 서비스 검색 불가

  • 증상:
    • nslookup kubernetes.default 명령어가 실패
    • 서비스 이름 기반 통신이 불가능함
  • 원인:
    • CoreDNS Pod가 실행되고 있지 않음 (kubectl get pods -n kube-system 결과로 확인)
  • 해결:
    kubectl apply -f https://k8s.io/examples/admin/dns/coredns.yaml

cert-manager 인증서 발급 실패

  • 증상:
    • Ingress에 cert-manager.io/cluster-issuer annotation 설정했으나 인증서 발급되지 않음
  • 원인:
    • Helm 배포 시 --values 또는 values.yaml을 지정하지 않아 cluster-issuer 값이 letsencrypt-로 끝나는 잘못된 값으로 처리됨
  • 해결:
    • values.yaml에서 global.environment: staging 설정 명시
    • cert-manager.io/cluster-issuer: letsencrypt-staging 으로 정상 설정됨
    • Ingress 이벤트 로그에서 Successfully created Certificate 확인

Ingress Controller 외부 접속 실패

  • 증상:
    • 외부에서 http://ddoachi.synology.me 접속 불가
    • curl 또는 브라우저 접속 시 연결 거부됨
  • 원인:
    • 공유기에서 80, 443 포트를 리눅스 서버로 포워딩하지 않음
  • 해결:
    • 공유기에서 80, 443 포트를 리눅스 서버의 80, 443 포트로 포워딩 설정

LoadBalancer 대신 NodePort 사용으로 인해 인증 실패

  • 증상:
    • cert-manager 인증이 Pending 상태에서 멈춤
    • Ingress Controller의 External IP가 <pending> 상태
  • 원인:
    • 클러스터 환경에서 LoadBalancer 타입 사용이 불가능한 구조 (MetalLB 등 외부 LoadBalancer 미설치)
  • 해결:
    • ingress-nginx-controller 서비스를 NodePort 타입으로 수동 변경
    kubectl edit svc ingress-nginx-controller -n ingress-nginx
    • 이후 포트포워딩 설정을 통해 80 → 30363, 443 → 32313 매핑

Ingress rewrite-target 미적용으로 static asset 404 발생

  • 증상:
    • 인증서는 발급되었고 https://ddoachi.synology.me/tekapicker-staging 접속 가능
    • 그러나 JS, CSS asset이 404 에러 발생
  • 원인:
    • Ingress 설정에서 rewrite-target 적용이 누락되어 있었음
    • static 파일 경로 /tekapicker-staging/assets/...가 실제 pod의 /assets/...로 rewrite되지 않음
  • 해결:
    • Ingress에 다음 annotation 추가
      nginx.ingress.kubernetes.io/rewrite-target: /$2
    • path 정의를 아래처럼 수정
      path: /tekapicker-staging(/|$)(.*)
      pathType: Prefix

수정 후 Helm 배포 방법

  • Ingress 템플릿이 Helm chart에 포함되어 있을 경우 아래 명령어로 재배포
    helm upgrade teka-picker-fe ./helm -n tekapicker-staging

결과

  • 현재 https://ddoachi.synology.me/tekapicker-staging 으로 접속 시 정상 렌더링 및 HTTPS 연결 확인됨
  • 인증서 READY=True, static asset 로딩 정상, rewrite 문제 해결 완료
profile
내일도 풀스택

0개의 댓글