С GKE проверка работоспособности на Балансировщике нагрузки создается автоматически при создании входа. Поскольку HC создается автоматически, то же самое относится и к правилам брандмауэра.
Поскольку у вас не настроен readinessProbe, LB создал HC по умолчанию (тот, который вы перечислили). Для правильной отладки вам необходимо выделить место сбоя.
Сначала убедитесь, что ваш модуль правильно обслуживает трафик;
kubectl exec [pod_name] -- wget localhost:80
Еслив приложение встроено curl
, вы можете использовать его вместо wget
. Если в приложении нет ни wget, ни curl, перейдите к следующему шагу.
- получите следующий вывод и проследите за выводом:
kubectl get po -l name = webapp -o широкий
kubectl get svc webapp-service
Вам необходимо сохранить службу и кластер pIP
SSH к узлу в вашем кластере и запустите sudo toolbox bash
Установить curl:
apt-get install curl`
Протестируйте модули, чтобы убедиться, что они обслуживают трафик внутри кластера:
curl -I [pod_clusterIP]: 80
Это необходимо вернутьответ 200
Проверка службы:
curl -I [service_clusterIP]: 80
Если модуль не возвращает ответ 200, контейнер либоне работает правильно или порт не открыт на модуле.
Если модуль работает, а служба - нет, существует проблема с маршрутами в вашем iptables, которая управляется kube-proxy и может быть проблемой с кластером.
Наконец, если и модуль, и служба работают, существует проблема с проверками работоспособности балансировщика нагрузки, а также проблема, которую Google должен исследовать.