Развертывание ключевого плаща в kubernetes (GKE): класс Ingress - nginx VS gce - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь развернуть keycloak на google kubernetes engine и заставить его работать, используя тип ingress.class nginx следующим образом

kubernetes.io / ingress.class: nginx

Полный манифест можно найти здесь https://github.com/vsomasvr/keycloak-gke/blob/master/keycloak-gke-ingress/ingress.yaml

Но я намерен использовать тип ingress.class " gce ".Для этого я изменил входные аннотации со следующего

  annotations:
    ingress.kubernetes.io/ssl-redirect: "true"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"

на следующее

kubernetes.io/ingress.allow-http: "false"
annotations: kubernetes.io/ingress.class: gce

После вышеуказанного изменения я последовательно получаю сообщение о том, что вход имеет нездоровый бэкэнд (0/3).Интересно, какие другие изменения потребуются " gce ", когда " nginx " может работать без проблем.

Я гарантировал, что проблема не связана с брандмауэром, так как порты, которыеиспользование приложения разрешено для всех, у меня также есть настройки livenessProbe и readinessProbe .

Есть ли что-то еще, что эта конфигурация отсутствует?

Я разместил здесь все файлы манифеста https://github.com/vsomasvr/keycloak-gke/tree/master/keycloak-gke-ingress

Любая помощь приветствуется

РЕДАКТИРОВАТЬ

Я добавил аннотацию

kubernetes.io/ingress.allow-http: "false"

до входа nginx , протестировано и гарантировано, что это не вызовет никакого конфликта.Приложение работало без проблем.

С другой стороны, вход gce ведет себя так же, даже когда я удаляю вышеупомянутую аннотацию

1 Ответ

0 голосов
/ 19 октября 2018

Похоже, что ваша служба настроена на использование HTTP-трафика, что означает, что проверки работоспособности для балансировщика нагрузки также будут использовать HTTP-трафик (порт 80), но вы используете аннотацию, которая отключает HTTP

kubernetes.io / ingress.allow-http: "false"

...