ingress nginx 주요 annotation

cloud2000·2024년 2월 15일
1

ingress-nginx-controller 기초

ingress nginx를 설치하여 사용할때 주로 사용되는 annotation 설정을 요약 정리하고자 한다.

주의할 점은 모든 key, value는 반드시 문자열이어야 한다. 즉 "true", "false", "200m" 등으로 값을 문자열 형태로 지정해야 한다.

타임아웃 값

configmap에서 타임아웃에 대한 기본 값을 설정할 수 있으며, 개별 ingress object에 아래와 같은 annotation을 추가함으로 값을 상황에 맞게 커스터마이징 할 수 있다. 모든 값을 초임.

nginx.ingress.kubernetes.io/proxy-connect-timeout
nginx.ingress.kubernetes.io/proxy-send-timeout
nginx.ingress.kubernetes.io/proxy-read-timeout
nginx.ingress.kubernetes.io/proxy-next-upstream
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout
nginx.ingress.kubernetes.io/proxy-next-upstream-tries
nginx.ingress.kubernetes.io/proxy-request-buffering

redirect를 통한 서버쪽 HTTPS 적용

nginx.ingress.kubernetes.io/ssl-redirect: "false"
이 annotation은 HTTP 요청을 HTTPS로 리디렉션하는 역할을 한다. 이 annotation을 사용하면 ingress controller가 HTTP 요청을 받았을 때 자동으로 HTTPS로 리디렉션하여 보안을 강화할 수 있다.
Ingress object에 tls설정이 되어 있으면 기본적으로 HTTPS로 redirection한다.
이를 HTTP로 하려면 false로 설정하면 됨. default는 "true"임
전역 설정은 configmap에 ssl-redirect: "false"로 하면 됨.

nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
backend pod에서 SSL 오프로딩(SSL Termination)을 사용할 경우를 위해 무조건 HTTPS로 리다이렉션 하게 한다. default는 "false"임

nginx.ingress.kubernetes.io/preserve-trailing-slash: "true"
URL의 마지막 '/'를 유지하려면 true로 지정


kubesphere router

VMware NSX ALB(Advanced Load Balancer)와 ingress-nginx-controller간의 GRPC 연동을 위해 고군분투한 내용을 정리하고자 한다.

우선, kubesphere에서 제공하는 router는 gateway, nginx라는 CRD를 통해 ingress-nginx-controller 서비스를 제공한다.

  • registry.k8s.io/ingress-nginx/controller:v1.10.1. nginx/1.25.3
  • kubesphere
    • kubesphere/nginx-ingress-controller:v1.4.0 최신임.
    • kubesphere v3.3.2: nginx-ingress-controller:v1.1.0. nginx/1.19.10
    • kubesphere v3.4.1: nginx-ingress-controller:v1.3.1. nginx/1.19.10
  • https://github.com/kubernetes/ingress-nginx/issues/10390 이슈에서 AWX NLB와 ingress nginx controller 사이에 HTTP1.1과 HTTP2를 동시에 하나의 port에서 사용하기 nginx v1.25.0 이상을 사용해야 한다는 내용이 있음.

참고.

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
https://github.com/kubernetes/ingress-nginx
https://m.blog.naver.com/fbfbf1/222682991444

profile
클라우드쟁이

0개의 댓글