
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
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로 지정
VMware NSX ALB(Advanced Load Balancer)와 ingress-nginx-controller간의 GRPC 연동을 위해 고군분투한 내용을 정리하고자 한다.
우선, kubesphere에서 제공하는 router는 gateway, nginx라는 CRD를 통해 ingress-nginx-controller 서비스를 제공한다.
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
https://github.com/kubernetes/ingress-nginx
https://m.blog.naver.com/fbfbf1/222682991444