GKE LoadBalancer Stati c IP - PullRequest
       20

GKE LoadBalancer Stati c IP

0 голосов
/ 06 января 2020

Я создал региональный IP-адрес c в том же регионе кластера, и я пытаюсь использовать его с LoadBalancer:

---
apiVersion: v1
kind: Service
metadata:
  name: ambassador
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  ports:
   - port: 80
     targetPort: 8080
  selector:
    service: ambassador
  loadBalancerIP: "x.x.x.x"

Однако я не знаю, почему я получить эту ошибку:

Error creating load balancer (will retry): failed to ensure load balancer for service default/ambassador: requested ip "x.x.x.x" is neither static nor assigned to the LB   

Редактировать: проблема решена, но ..

Когда я создал IP-адрес stati c, я использовал:

gcloud compute addresses create regional-ip --region  europe-west1

I использовал этот адрес со Службой. Это не сработало, как я сказал.

Однако, когда я создавал внешний региональный IP-адрес c с помощью веб-консоли, он нормально работал с моей службой и был подключен без проблем.

1 Ответ

1 голос
/ 06 января 2020

Уверен, что исходный IP-сервис не предоставляется. Как говорится в официальных документах:

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

Попробуйте эту команду, чтобы открыть исходный IP-сервис для балансировщика нагрузки:

kubectl expose deployment <source-ip-app> --name=loadbalancer --port=80 --target-port=8080 --type=LoadBalancer

На этой странице вы найдете дополнительные указания и ряд команд диагностики c для проверка работоспособности.

https://kubernetes.io/docs/tutorials/services/source-ip/#source балансировка нагрузки по типу «услуги по типу услуги»

...