Почему я не могу прикрепить сервисный тип ClusterIP к Ingress на GKE? - PullRequest
0 голосов
/ 10 октября 2019

Прежде чем начать, я хотел бы упомянуть, что я пользуюсь бесплатной пробной версией GKE. У меня есть простой сервер, работающий в кластере GKE. У меня есть сервис, который я использую, чтобы выставить сервер. Я пытаюсь настроить Ingress Controller и подключить его к этой службе.

Все работает отлично, если мой сервис имеет тип LoadBalancer, NodePort. Однако, если мой сервис имеет тип ClusterIP, я получаю сообщение об ошибке:

error while evaluating the ingress spec: service "default/simple-server" is type "ClusterIP"
, expected "NodePort" or "LoadBalancer" 

GKE прекратит попытки предоставить IP для входа. Почему я не могу предоставить услугу типа clusterIP и есть ли обходной путь?

Я пытался использовать annotations.kubernetes.io/ingress.class: "nginx", но он все равно не работал.

Ответы [ 3 ]

0 голосов
/ 10 октября 2019

Это нормально, и довольно просто, почему у вас возникает ошибка.

Служба ClusterIP - это только внутренняя служба внутри вашего кластера Kubernetes, и то, что вы пытаетесь создать (из того, что я понял), является общедоступнымоткрытая служба с использованием входа, то есть вы собираетесь создать балансировщик нагрузки Google.

Теперь, почему он не поддерживает ClusterIP, потому что при создании входа ресурс LB, созданный в облаке Google, нуждается в целевом портев вашем кластере для вызова И для этого вам нужно предоставить для него ip / порт.

Я бы не рекомендовал комбинировать LB-сервис (который по умолчанию создает LB на облачном провайдере) и входить, но оставайтесь начистый нодпорт / входной дуэт.

Бонус: используемая вами аннотация предназначена для подключения внутренних служб к входному контроллеру. Это позволит ингресс-контроллеру перечислить хосты и трафик прокси к нужной службе.

0 голосов
/ 10 октября 2019

Используйте что-то вроде этого. Для удобства используйте NodPort или LoadBalancer перед типом.

spec:
  ports:
    - protocol: TCP
      port: XX
      targetPort: XX
  type: NodePort
0 голосов
/ 10 октября 2019

Встроенный входной контроллер GKE не поддерживает ClusterIP, но он отлично работает с типами LoadBalancer и NodePort. Взгляните на этот выпуск

Не входной входной контроллер Nginx работает с ClusterIP.

...