Назад | Перейти на главную страницу

GKE ingress не может подключиться к работоспособной службе

Я следил за учебником здесь: https://medium.com/@nithinmallya4/deploying-a-rails-application-to-google-container-engine-with-kubernetes-b08b2de353fc

С их кодовой базой: https://github.com/nmallya/gkedemoapp

Вы можете увидеть, как устроено это развертывание, здесь, между комментариями «ПЕРВОЕ РАЗВЕРТЫВАНИЕ»: https://github.com/nmallya/gkedemoapp/blob/master/gcloud_deployment.sh

Я создал сертификат SSL, веб-служба работает и работает, но я не могу создать вход, как описано. Статус входящего трафика - «Все внутренние службы находятся в НЕЗДОРОВНОМ состоянии».

YAML для входящего трафика выглядит следующим образом:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gke-ingress 
  annotations:
    kubernetes.io/ingress.class: "gce"
    # kubernetes.io/ingress.allow-http: "false"
    # ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
  # This assumes tls-secret exists.
  - secretName: gkecert
  backend:
    serviceName: web
    servicePort: 443

Я полагаю, мне нужно предоставить дополнительную информацию, но я не уверен, что и где устранять дальше.

Оказывается, мои службы были не в хорошем состоянии. Состояние «ГОТОВНОСТЬ» не означает, что они отвечают 200 на корневой путь (/). я использовал kubectl get pods чтобы перечислить мои стручки, затем просмотрел журналы.

NAME                            READY     STATUS    RESTARTS   AGE
cable-76bfb45bb-rkz8f           2/2       Running   0          24m
rails-67d569746d-54hs8          2/2       Running   0          24m
elasticsearch-0                 1/1       Running   0          16m
redis-master-945b795f6-ldg5x    1/1       Running   0          14h
sidekiq-597c876bc4-zg24k        2/2       Running   0          24m

Затем я мог бы проверить определенные журналы с помощью kubectl logs rails-67d569746d-54hs8 rails где второй rails - это имя контейнера внутри модуля. Вы должны увидеть там журналы проверки работоспособности, которые должны указать, что не так.

Если вы видите только запуск сервера и никаких журналов проверки работоспособности, скорее всего, ваш модуль недоступен. Проверьте свои сервисы и порты на них. Пока они достижимы и отвечают 200 на корневом пути (и не перенаправляют), проверка работоспособности должна пройти, и вход должен разрешить соединение.