2016-11-28 3 views
1

У меня возникли проблемы с использованием Балансирования нагрузки HTTP (уровень 7) со службой в GKE. Первоначально я разоблачил службу в GKE с использованием типа LoadBalancer службы:Google Cloud HTTP Load Balancer (уровень 7) для GKE

kubectl разоблачить MYSERVICE развертывания --type = «LoadBalancer»

Это создаст публичный IP-адрес для моего кластера в той же зоне, и это было хорошо работает. Моя цель - использовать глобальный IP-адрес с поддержкой SSL для моей службы. Это то, что я пробовал:

  1. разоблачать службу GKE как NodePort типа kubectl разоблачить MYSERVICE развертывания --type = «NODETYPE»
  2. следовать учебнику here для создания объекта от проникновения. Это не сработало, потому что служба в GKE уже находится в группе управляемых экземпляров, а входящий объект создаст новую группу экземпляров с нулевым экземпляром. Я нашел дискуссию here.
  3. следуйте рекомендациям в обсуждении. Удаляется, чтобы войти в объект, и попытайтесь настроить Балансировщик нагрузки HTTP вручную из облачной консоли Google.
    • Добавлены правила брандмауэра, позволяющие 130.211.0.0/22 ​​на порты 80 и 8081 (мой служебный порт) для всех целей.
    • Бэкэнд-сервис - это управляемая группа экземпляров, созданная GKE.
    • Создана проверка работоспособности порта 8081, путь/здоровье. Он по-прежнему не работает, потому что балансировщик нагрузки может распознать правильное количество экземпляров в группе управляемых экземпляров, но есть нулевые здоровые узлы. Мой сервис имеет конечную точку проверки работоспособности: 8081/здоровье, а корневой путь «/» также возвращает HTTP 200 OK. Я играл с настройками проверки работоспособности, но балансировщик нагрузки никогда не может найти здоровый узел.

Что мне не хватает?

+0

Не самый простой способ сделать это: 1. Создайте развертывание с сервером nginx, где вы можете настроить SSL-соединение. Он направит запросы другим вашим услугам. 2. Создайте сервис типа LoadBalancer вокруг развертывания nginx, который предоставит вам общедоступный IP-адрес. –

+0

Это может помочь вам http://stackoverflow.com/questions/40136891/gcloud-ingress-loadbalancer-static-ip. Если вы используете ingresses и начинаете использовать kube-lego (в случае, если letencrypt достаточно), вы будете удивлены, насколько легко все это становится – Ben

ответ

0

Оказалось, что если я хочу следовать учебному руководству, я не могу определить Балансировщик нагрузки HTTP (S) на той же конечной точке. Вы либо хотите следовать руководству, и позволить входящему объекту автоматически определять LB, который работал на меня после удаления моего теста LB, или не использовал вход и не определял LB вручную (который я никогда не работал).

Смежные вопросы