반응형
Jen'_'
Jen's Space
Email
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • Ansible (4)
      • 우아한앤서블 (4)
    • Cloud (19)
      • AWS (17)
      • GCP (2)
    • DevOps (40)
      • Docker (6)
      • Kubernetes (26)
      • CICD (6)
      • Terraform (2)
    • Language (13)
      • Python (12)
      • Node.js (1)
    • Linux (10)
    • etc. (7)
    • 개인기록 (1)
    • AEWS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 피드백 환영합니다 :)

인기 글

태그

  • 우아하게앤서블
  • INGRESS
  • gitops
  • Docker
  • CICD
  • karpenter
  • ubuntu
  • 쿠버네티스
  • ALB
  • EKS
  • autoscaling
  • 자격증
  • k8s
  • vagrant
  • jenkins
  • ansible
  • AWS
  • Kubernetes
  • argocd
  • terraform

최근 댓글

Jen'_'

Jen's Space

[EKS] ingress-nginx helm chart 에 AWS ACM 등록
DevOps/Kubernetes

[EKS] ingress-nginx helm chart 에 AWS ACM 등록

2022. 6. 1. 23:35
반응형

개요

https://kubernetes.github.io/ingress-nginx/deploy/#aws

공식문서에서 deploy.yaml 을 다운받아서 acm 설정한 다음 kubectl apply -f deploy.yaml을 했을 때는 https 접속이 정상적으로 됐음

https://github.com/kubernetes/ingress-nginx

그런데 helm chart 로 설치를 했더니 "The plain HTTP request was sent to HTTPS port" 에러가 뜨면서 https 접속이 안됨

에러 화면

 

 

 

 

 

해결 방법

helm chart info

repo: ingress-nginx

repo url: https://kubernetes.github.io/ingress-nginx

chart: ingress-nginx

version: 4.1.2

 

values.yaml

controller:
  service:
    annotations: 
      service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "3600"
      service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
      service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {ACM_ARN}
      service.beta.kubernetes.io/aws-load-balancer-backend-protocol: 'http'
      service.beta.kubernetes.io/aws-load-balancer-ssl-ports: '443'
      service.beta.kubernetes.io/aws-load-balancer-type: nlb  

    targetPorts:
      https: http # TLS (https) terminated at ELB, so internal endpoint is 'http'
  • controller.service.annotations 에서 service.beta.kubernetes.io/aws-load-balancer-backend-protocol: 'http' 값을 넣어야 합니다.
  • controller.service.targetPorts 에서 https: http로 변경해야 합니다.

 

설치 명령어

$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm upgrade -i ingress-nginx ingress-nginx/ingress-nginx --version 4.1.2 -n ingress-nginx --create-namespace -f values.yaml

 

README에 잘 적혀있다는 걸 기껏 삽질한 후에 알게 됐습니다..

https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx#aws-l7-elb-with-ssl-termination

 

설치 결과 

ingress-nginx-controller 가 설치됐습니다.

 

443 포트에 acm 이 붙은 걸 확인할 수 있습니다.

 

테스트

테스트를 위해서 argocd에 ingress 설정을 해서 설치를 한 후 https 접속이 원할이 되는지 확인해 보겠습니다. 

  ingress:
    enabled: true
    annotations:
      nginx.ingress.kubernetes.io/rewrite-target: /
    ingressClassName: "nginx"  
    hosts:
      - argocd.jenana.net

 

k get ing -n argocd를 하면 address에 ingress-nginx-controller의 LB 주소가 붙습니다. 

 

잠금열쇠 표시로 https 접속이 정상적으로 된 것을 확인할 수 있습니다. 

 

오늘의 교훈

설치 전 리드미를 잘 읽어보자...

반응형
저작자표시 (새창열림)

'DevOps > Kubernetes' 카테고리의 다른 글

[k8s] Graceful Shutdown을 위한 preStop, terminationGracePeriodSeconds 설정  (0) 2022.06.29
Kubernetes Component  (0) 2022.06.22
[EKS] eksctl create cluster yaml file 생성  (0) 2022.03.18
[EKS] AWS EBS 볼륨을 K8S PV로 사용  (0) 2021.12.22
[EKS] alb-ingress-controller path 기반 라우팅 404 에러  (0) 2021.12.20
    'DevOps/Kubernetes' 카테고리의 다른 글
    • [k8s] Graceful Shutdown을 위한 preStop, terminationGracePeriodSeconds 설정
    • Kubernetes Component
    • [EKS] eksctl create cluster yaml file 생성
    • [EKS] AWS EBS 볼륨을 K8S PV로 사용
    Jen'_'
    Jen'_'
    DevOps 엔지니어 Jen의 기술 블로그 / 이메일: jenakim47@gmail.com

    티스토리툴바