Pod마다 Service를 매핑시키고 Ingress를 이용해 path에 따라 각각의 Service로 트래픽을 전달시켜 LoadBalancing 역할을 구현할 수 있음
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: service-loadbalancing
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: svc-shopping
servicePort: 8080
- path: /customer
backend:
serviceName: svc-customer
servicePort: 8080
- path: /order
backend:
serviceName: svc-order
servicePort: 8080
@weight: 10%
와 같이 트래픽의 특정 비율만 업데이트 Pod으로 보낼 수 있음@header
를 이용해 특정 헤더를 갖고 있는 트래픽만 보낼 수 있음apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: canary-v2
annotations:
nginx.ingress.kubernetes.io/canary: "true"
nginx.ingress.kubernetes.io/canary-weight: "10"
nginx.ingress.kubernetes.io/canary-by-header: "Accept-Language"
nginx.ingress.kubernetes.io.canary-by-header-value: "kr"
spec:
rules:
- host: www.app.com
http:
paths:
- backend:
serviceName: svc-v2
servicePort: 8080
tls
라는 옵션에서 secretName을 Secret 오브젝트와 연결하고 Secret 오브젝트에 인증서를 저장apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: https
spec:
tls:
- hosts:
- www.https.com
secretName: secret-https
rules:
- host: www.https.com
http:
paths:
- backend:
serviceName: svc-https
servicePort: 8080