GCP, создающий службу балансировки нагрузки с использованием существующего статического IP, не показывает внешний IP - PullRequest
1 голос
/ 10 ноября 2019

Я пытаюсь разместить сайт WordPress в GKE, а затем создать ELB с уже существующим статическим IP-адресом для показа WordPress. Я сделал следующие вещи:

  • Зарезервировал статический IP, как здесь определено: Ссылка . Он относится к типу IPv4, Premium Tier и Global.
  • Создан следующий сервис ELB (изменен yaml для моего статического ip) this .

Содержимое моегоyaml:

kind: Service
metadata:
  labels:
    app: wordpress
  name: wordpress
spec:
  type: LoadBalancer
  loadBalancerIP: "x.x.x.x"
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: wordpres

Когда я запускаю следующую команду - kubectl get svc -l app=wordpress --watch, я получаю:

NAME        TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
wordpress   LoadBalancer   x.x.x.x   <pending>     80:32590/TCP   6m7s

Любые подсказки, почему это не работает и дает мне внешний IP-адрес?

Ответы [ 2 ]

1 голос
/ 13 ноября 2019

Когда мы предоставляем Сервис, он создает балансировщик сетевой нагрузки TCP, который работает только с региональными IP-адресами. Глобальные IP-адреса работают только с типом ресурса Ingress. Я бы рекомендовал вам использовать Региональный статический IP-адрес вместо Глобального. Вот ссылка, которая дает краткое описание балансировщиков нагрузки в GCP: 1 Я попытался повторить этот сценарий на моем конце, и он сразу сработал для меня с региональным IP-адресом и не работал глобальный IP-адресвообще.

0 голосов
/ 13 ноября 2019

Ваша сервисная спецификация выглядит неправильно. В поле spec.loadBalancerIP должен быть указан «внешний» IP-адрес, который вы хотите назначить внешнему интерфейсу LB (обратите внимание, что внешний здесь означает внешний для кластера, этот IP-адрес должен принадлежать вашему VPC или быть публичным IP-адресом).

В вашем случае назначенный вами IP-адрес (192.168.0.1) на самом деле представляет собой ваш clusterIP (что имеет смысл в связи с тем, как Google назначает IP-адреса в VPC, и этот IP обычно назначается шлюзу). Каким бы ни был ваш статический IP-адрес (скажем, 35.35.35.35), он должен быть указан в соответствующем поле как spec.loadBalancerIP: 35.35.35.35. 192.168.0.1 будет определено в поле spec.clusterIP, если это вообще необходимо.

...