У меня возникли проблемы с использованием Балансирования нагрузки HTTP (уровень 7) со службой в GKE. Первоначально я разоблачил службу в GKE с использованием типа LoadBalancer службы:Google Cloud HTTP Load Balancer (уровень 7) для GKE
kubectl разоблачить MYSERVICE развертывания --type = «LoadBalancer»
Это создаст публичный IP-адрес для моего кластера в той же зоне, и это было хорошо работает. Моя цель - использовать глобальный IP-адрес с поддержкой SSL для моей службы. Это то, что я пробовал:
- разоблачать службу GKE как NodePort типа kubectl разоблачить MYSERVICE развертывания --type = «NODETYPE»
- следовать учебнику here для создания объекта от проникновения. Это не сработало, потому что служба в GKE уже находится в группе управляемых экземпляров, а входящий объект создаст новую группу экземпляров с нулевым экземпляром. Я нашел дискуссию here.
- следуйте рекомендациям в обсуждении. Удаляется, чтобы войти в объект, и попытайтесь настроить Балансировщик нагрузки HTTP вручную из облачной консоли Google.
- Добавлены правила брандмауэра, позволяющие 130.211.0.0/22 на порты 80 и 8081 (мой служебный порт) для всех целей.
- Бэкэнд-сервис - это управляемая группа экземпляров, созданная GKE.
- Создана проверка работоспособности порта 8081, путь/здоровье. Он по-прежнему не работает, потому что балансировщик нагрузки может распознать правильное количество экземпляров в группе управляемых экземпляров, но есть нулевые здоровые узлы. Мой сервис имеет конечную точку проверки работоспособности: 8081/здоровье, а корневой путь «/» также возвращает HTTP 200 OK. Я играл с настройками проверки работоспособности, но балансировщик нагрузки никогда не может найти здоровый узел.
Что мне не хватает?
Не самый простой способ сделать это: 1. Создайте развертывание с сервером nginx, где вы можете настроить SSL-соединение. Он направит запросы другим вашим услугам. 2. Создайте сервис типа LoadBalancer вокруг развертывания nginx, который предоставит вам общедоступный IP-адрес. –
Это может помочь вам http://stackoverflow.com/questions/40136891/gcloud-ingress-loadbalancer-static-ip. Если вы используете ingresses и начинаете использовать kube-lego (в случае, если letencrypt достаточно), вы будете удивлены, насколько легко все это становится – Ben