이번 포스팅은 자세한 설명은 하지 않고
Ingress 컨트롤러가 띄워져있다는 가정하에, Ingress 설정을 어떻게 하는지만 올려본다.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: togomi-api-server-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: "/destinationAPI" # 어느 API PATH로 보낼지
nginx.ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
tls:
- hosts:
- togomi.api-server.{Ingress 컨트롤러의 로드밸런서 IP}
secretName: togomi-api-server-ingress
rules:
- host: togomi.api-server.{Ingress 컨트롤러의 로드밸런서 IP}
http:
paths:
- path: /test # 어떤 API가 왔을 때 라우팅 할지
backend:
serviceName: togomi-api-server-ingress-service # ClusterIP로 정의된 서비스
servicePort: 443
기본적인 설정을 제외하고 TLS 통신을 위한 것만 보자면
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
이 두개의 annotation이 들어가야 ingress가 해당 서비스와 https로 통신을 한다.
또, https 통신에 필요한 인증서와 키는 spec.tls에 시크릿으로서 만들어서 설정해준다.
시크릿은 Ingress 객체가 만들어지는 네임스페이스와 같은 곳에 있어야 한다.
마지막으로, backend.serviceName에 적어주는 서비스는 반드시 ClusterIP여야 한다.
그 이외에는 기본 ingress 설정과 같다.
'공부 > Kubernetes' 카테고리의 다른 글
Kubernetes operator 메커니즘 (5) | 2021.08.31 |
---|---|
Kubernetes Audit (감사로그) (3) | 2021.08.09 |
Mount multiple files with one configmap (0) | 2021.06.24 |
operator-sdk로 k8s 기본 리소스 컨트롤러 추가하기 (0) | 2021.06.08 |
calico 완전 삭제 후 재설치 (0) | 2021.05.22 |