Как использовать LoadBalancer IP в качестве исходящего / исходящего / выходного IP-адреса модулей - PullRequest
0 голосов
/ 06 марта 2019

У меня есть 1 развертывание в ManagedKubernetes Cluster в Alibaba Cloud с сервисом spec.type = LoadBalancer Я могу успешно использовать этот IP для входящего трафика

Но исходящий ip, похоже, все еще использует IP-адрес шлюза NAT для развертывания, в котором есть служба spec.type = LoadBalancer

Так как я могу использовать один и тот же IP-адрес для исходящего и входящего трафика для развертывания, в котором используется LoadBalancer?

1 Ответ

3 голосов
/ 06 марта 2019

Вы можете найти решение здесь:

https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-type-loadbalancer

Начиная с Kubernetes 1.5, пакеты, отправляемые в службы с Type = LoadBalancer, по умолчанию являются исходными NAT, поскольку все планируемые узлы Kubernetesв состоянии готовности имеют право на трафик с балансировкой нагрузки.Таким образом, если пакеты поступают на узел без конечной точки, система передает его на узел с конечной точкой, заменяя исходный IP-адрес пакета на IP-адрес узла (как описано в предыдущем разделе).Вы можете проверить это, выставив source-ip-app через loadbalancer

$ kubectl expose deployment source-ip-app --name=loadbalancer --port=80 --target-port=8080 --type=LoadBalancer
service/loadbalancer exposed

$ kubectl get svc loadbalancer
NAME           TYPE           CLUSTER-IP    EXTERNAL-IP       PORT(S)   AGE
loadbalancer   LoadBalancer   10.0.65.118   104.198.149.140   80/TCP    5m

$ curl 104.198.149.140
CLIENT VALUES:
client_address=10.240.0.5
...
...