SKS (Smileserv Kubernetes System) Ingress 배포 메뉴얼 ver. 2025.03.28
Ingress
ingress 란
로드밸런서 서비스를 직접 사용하는 대신 Path-base routing 등 더 다양한 기능을 사용 할 수 있는 Ingress를 통해 트래픽을 제어 할 수 있습니다.
인그레스를 사용하기 위해서는 클러스터에 인그레스 컨트롤러를 배포해야 합니다.
k8s에서는 본 메뉴얼에서 다룰 Nginx ingress controller 외에도 다양한 서드파티 인그레스 컨트롤러를 사용 할 수 있습니다.
본 메뉴얼에서는 Nginx ingress controller 와 Cert Manager 를 사용하여 서비스에 인증서를 발급, 운영하는 방법을 설명하고 있습니다.
Deployment 에서 생성한 whoami 포드에 ingress 로 연결하는 방법을 샘플로 진행 합니다.
Nginx Ingress Controller
인그레스 컨트롤러중 하나인 Nginx ingress controller 를 배포 합니다.
본과정을 그대로 진행시 로드밸런서, IP 가 생성되어 요금이 청구 되므로 확인 후 테스트 진행 부탁 드립니다.
-
배포 전 현재 운영중인 K8s server 버젼과 호환 되는 버젼을 체크 해야 합니다.
-
현재 메뉴얼 업데이트 시점 (2025.03.28) 기준 SKS의 K8s server 버젼은 v1.28.9 으로 Nginx Ingress Controller v1.12.1 버젼 으로 배포 진행 했습니다.
Nginx Ingress Controller v1.11.0 이하, v1.11.0 ~ v1.11.4 , v1.12.0 은 CVE-2025-1974 CVSS 9.8 등급의 취약점이 확인된 버젼 입니다.
위 버젼을 사용중인 경우 v.1.11.5 혹은 v1.12.1 이후 버젼으로 즉시 업그레이드 해야 합니다.
📌 사용중인 Nginx Ingress Controller 버젼 확인 방법
kubectl describe deployment ingress-nginx-controller -n ingress-nginx | grep Image
관련 사항 확인: https://kubernetes.io/blog/2025/03/24/ingress-nginx-cve-2025-1974/
- nginx ingress controller 공식 github 의 yaml 파일로 바로 배포 가 가능합니다.
Nginx Ingress Controller 가 배포 되면 Controller에서 관리하는 로드밸런서가 같이 배포 됩니다.
로드밸런서 서비스를 직접 배포 했을때와 같이 IP 가 연결 되며 비용이 발생 합니다.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.1/deploy/static/provider/cloud/deploy.yaml

- Nginx Ingress controller 의 Load balancer External-IP 를 확인 합니다.
kubectl get svc -A

Nginx Ingress controller 관련 pod 확인
kubectl get pod -A