| Algorithm | 설정 | 설명 |
|---|---|---|
| round_robin (기본값) | 설정 불필요 | 모든 backend pod를 순서대로 균등 분배 |
| least_conn | nginx.ingress.kubernetes.io/load-balance: "least_conn" | 현재 연결이 가장 적은 pod에 우선 분배 |
| ip_hash | nginx.ingress.kubernetes.io/load-balance: "ip_hash" | 같은 클라이언트 IP → 같은 pod로 고정 |
| random | nginx.ingress.kubernetes.io/load-balance: "random" | 무작위 분배 |
| random with weight | 동일 | weight 지정한 upstream 사용 (Deployment에 weight 추가 필요) |
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
annotations:
nginx.ingress.kubernetes.io/load-balance: "least_conn"
# nginx.ingress.kubernetes.io/load-balance: "ip_hash"
# nginx.ingress.kubernetes.io/load-balance: "random"
spec:
ingressClassName: nginx
rules:
- host: app.test.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-svc
port:
number: 80