Вход GKE не может найти ресурс службы

# #google-kubernetes-engine

Вопрос:

У меня есть вход GKE, настроенный в соответствии с этим руководством. Это отлично работало в течение нескольких недель, пока я не захотел добавить новое правило в конфигурацию YAML.

Отображается следующая ошибка, и вход больше не создается:

 Error syncing to GCP: error running backend syncing routine: googleapi: Error 404: The resource 'projects/<project_id>/zones/<zone>/networkEndpointGroups/<my-service>' was not found, notFound
 

Я упростил yaml только до одной службы, которая все еще больше не работает:

 apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
    networking.gke.io/managed-certificates: "cluster-certificate"
    kubernetes.io/ingress.class: "gce"
spec:
  defaultBackend:
    service:
      name: webserver
      port:
        number: 3007
 

В приведенном выше примере не определены никакие правила, только обратный вызов по умолчанию. Добавление правил не изменяет ошибку; иногда она показывает только другую службу. Также не имеет значения, какая услуга используется, все ресурсы не могут быть найдены.

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

Я уже некоторое время борюсь, пытаюсь использовать разные сервисы, использую разные правила, но мне кажется, я что-то упускаю.

  1. Какая система отвечает за этот ресурс? Сама служба, похоже, работает нормально, и проверки работоспособности проходят, так что это ошибка на входе?
  2. При просмотре панели мониторинга балансировки нагрузки балансировщики нагрузки не создаются. Это также потому, что вход не удалось создать?

Я знаю, что может потребоваться дополнительная информация, чтобы помочь мне, но я не уверен, что предоставить, так как мне кажется, что я ищу в темноте. Пожалуйста, дайте мне знать!

-Обновление-

Как видно ниже, сервис «веб-сервер» выглядит хорошо. Движок Kubernetes > Сервис и вход, показывает исправное обслуживание» src=»https://i.stack.imgur.com/W5XQD.png»></a></p>
<p>Я удалял и повторно создавал вход несколько раз, но это не возымело эффекта. <code> kubectl describe Ingress basic-ingress </code>  показывает следующее:</p>
<pre class= Name: basic-ingress Namespace: production Address: Default backend: webserver:3007 (10.6.128.139:3007) Rules: Host Path Backends ---- ---- -------- * * webserver:3007 (10.6.128.139:3007) Annotations: ingress.gcp.kubernetes.io/pre-shared-cert: mcrt-065ca8b6-e85b-42ad-9113-6babe367a2d8 kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: web-static-ip networking.gke.io/managed-certificates: cluster-certificate Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Sync 3m48s (x3 over 3m48s) loadbalancer-controller Scheduled for sync Warning Sync 31s (x16 over 3m30s) loadbalancer-controller Error syncing to GCP: error running backend syncing routine: googleapi: Error 404: The resource 'projects/<project_id>/zones/<zone>/networkEndpointGroups/<my-service>' was not found, notFound

kubectl get ingress basic-ingress Шоу:

 NAME            CLASS    HOSTS   ADDRESS   PORTS   AGE
basic-ingress   <none>   *                 80      6m34s
 

В меню Сетевые службы/Внутренние службы показано следующее:
GCP->Сетевые службы ->> Серверные службы» src=»https://i.stack.imgur.com/scE7c.png»></a></p>
<p>Все остальные вкладки пусты (поэтому балансировщик нагрузки не отображается). В нем говорится, что сервис никем не используется (см. Рисунок выше).</p>
</div>
<h3><em>Комментарии:</em></h3>
<blockquote class=

1. Можете ли вы увидеть сервис «веб-сервер» на [Движке Kubernetes > Сервис и вход]? это может быть связано с показанной ошибкой

2. Можете ли вы опубликовать результат kubectl describe Ingress basic-ingress ?

3. Кроме того, вы пробовали удалить входной ресурс и воссоздать его заново?

4. @NadiaEspinosa Да, это выглядит правильно (я добавил изображение в исходный пост)

5. Вы пытаетесь реализовать группу конечных точек сети с такой балансировкой нагрузки?

Ответ №1:

Я до сих пор не понимаю, почему это было сломано или почему следующее исправило это.

Я упростил свой вход, чтобы не иметь никаких аннотаций, и применил это:

 apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: basic-ingress
spec:
  defaultBackend:
    service:
      name: webserver
      port:
        number: 3007
 

Это привело к рабочему входу! После этого я добавил networking.gke.io/managed-certificates: "cluster-certificate" аннотацию, которая все еще работала. Наконец, я добавил kubernetes.io/ingress.global-static-ip-name: "web-static-ip" .
Мой веб-сайт разработчика снова заработал.

Почему-то кажется, что что-то пошло не так, и простое удаление и повторное применение не исправили этого. Применение очень простого входа действительно исправило это.