728x90
이직하고 EKS에 ingress-nginx 설정한 내용들 정리합니다.
1. Ingress-nginx on EKS 설정 내용
- 헬름 파일 이용 설치
- LB 타입으로 CLB가 아닌 NLB 사용
- AWS 인증서 적용 - 헬름 배포 시 변수 파일로 지정하여 설치 시 자동으로 적용되도록
- AWS LB에서 TLS Termination 처리 설정
: NLB가 TLS 처리하고 이 후 백엔드는 Https to Http로 전달 - 443 port 남기고 default 80 port는 삭제
Default 헬름 차트 변수 파일(values.yaml) 수정 내역
서비스 annotations 수정
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: 'true'
service.beta.kubernetes.io/aws-load-balancer-type: nlb
# aws 인증서 정보 등록
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:XXX
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
# http 포트 disable (HTTPS 443 포트만 오픈하도록 설정_
enableHttp: false
# SSL Termination 되고 이 후 웹서버 등에는 Http로 전달하도록 설정
targetPorts:
https: http
2. Traefik 인그레스 컨트롤러 사용 - Ingress-nginx와 동시 사용
: 도메인이 서로 달라 기존 ingress-nginx는 이 외 다른 인그레스 컨트롤러 실행이 필요함.
: NGINX 인그레스를 2개 실행하고 ingress-class로 구분 가능하나 혹시 모를 위험(작업 중 실수 등)에 대비하고자 새로운 다른 종류의 인그레스 컨트롤러(Traefik) 실행. Traefik 운영 경험이 있어서 별 거부감이 없었음.
: traefik도 동일하게 nlb, 인증서 등을 nginx와 동일하게 설정함
Helm 기반 설치
(kr-prod:default)jerry@Jerrys-MacBook-Pro 03.karpenter-demo % helm ls -n traefik
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
traefik traefik 1 2022-02-23 22:09:11.43444 +0900 KST deployed traefik-9.17.2 2.4.7
Ingress Rule 분리
: Traefik은 IngressRoute CRD 사용
: 현재 switch-backend 이름의 ingressRoute 사용 중
(kr-prod:default)jerry@Jerrys-MacBook-Pro 03.karpenter-demo % k get ingressroute -A
NAMESPACE NAME AGE
switch-backend switch-backend-ingress-route 40h
반응형
'쿠버네티스 일반 > Network' 카테고리의 다른 글
gRPC in EKS ALB + aws lb controller (0) | 2023.06.21 |
---|---|
AWS NLB EKS 환경에서 사용자 IP 파드로 전달 (0) | 2022.09.30 |
Tailscale VPN for 쿠버네티스 & VPC (2) | 2022.09.26 |
쿠버네티스 칼리코 네트워크 (0) | 2022.01.23 |
sniff - kubectl 환경 패킷 캡쳐 유틸리디 (1) | 2022.01.18 |