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

Kubernetes GCE Ingress не может найти службы

Мои файлы yaml для различных развертываний, служб и входов уже создавали рабочую настройку. Я попытался исправить небольшую проблему с входящим потоком и не могу вернуться в рабочее состояние.

Мои поды запускаются без ошибок, а службы работают. В журналах нет записей о проверке работоспособности, поэтому, похоже, проблема заключается в том, чтобы связаться со службами по имени. При входе в create я вижу это событие в интерфейсе GKE (а не при использовании kubectl describe):

Error during sync: error while evaluating the ingress spec: could not find service "default/web";

Служба действительно работает:

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
elasticsearch   ClusterIP   None            <none>        9200/TCP,9300/TCP            5h
kubernetes      ClusterIP   10.31.x.x       <none>        443/TCP                      5h
redis-master    ClusterIP   10.31.x.x       <none>        6379/TCP                     5h
web             NodePort    10.31.x.x       <none>        80:30110/TCP,443:31404/TCP   5h
websocket       NodePort    10.31.x.x       <none>        28080:30186/TCP              5h

Я попытался перезапустить службы и перейти на вход nginx. Моя единственная оставшаяся идея - нанести ядерный удар по кластеру. Как будто внутренний DNS k8s сломан.

У меня был порт 80 и 443, указывающий на 3000 для веб-службы, на которой работало мое приложение Rails. Я включил force_ssl в конфигурации Rails. Я полагал, что все это будет перенаправлять HTTP-запросы на https, но оказалось, что это сбрасывает порт, на котором вы работаете. Вам нужно указать порт, если вы хотите включить force_ssl: https://github.com/rails/rails/issues/19820

Поскольку порт 3000 больше не отвечал на 200, эта служба была помечена как неработоспособная, несмотря на то, что в остальном с ней все было в порядке.