У меня кластер Kubernetes из 3 узлов.
Пример развертывания
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
У меня нет входящего трафика, но у меня есть внешний балансировщик нагрузки, который выполняет циклический перебор трафика в 80.11.12.10
, 80.11.12.11
, 80.11.12.12
. Итак, я настроил свой сервис вот так.
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
externalIPs:
- 80.11.12.10
- 80.11.12.11
- 80.11.12.12
Проблема в том, что из-за существующего балансировщика нагрузки сервиса kubernetes трафик балансируется дважды. Кроме того, в этом нет необходимости, это портит постоянство соединения. Есть ли способ заставить Kubernetes перенаправлять трафик на локальный компьютерный модуль для каждого узла?