Не удалось создать вход gcp - Ошибка во время синхронизации: Ошибка при запуске подпрограммы внутренней синхронизации: googleapi: получен код ответа HTTP 404 с телом: не найдено

Пробую простой вход в гке. Следуя примеру https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress.

модули работают, службы активны. Когда я создаю вход, я получаю

Events:
  Type     Reason  Age                  From                     Message
  ----     ------  ----                 ----                     -------
  Normal   ADD     48m                   loadbalancer-controller  default/my-ingress
  Warning  Sync    2m32s (x25 over 48m)  loadbalancer-controller  Error during sync: Error running backend syncing routine: googleapi: got HTTP response code 404 with body: Not Found

Я не могу найти источник проблемы. Есть предложения, где искать?

Я проверил надстройки и разрешения кластера httpLoadBalancing enabled

  - https://www.googleapis.com/auth/compute
  - https://www.googleapis.com/auth/devstorage.read_only
  - https://www.googleapis.com/auth/logging.write
  - https://www.googleapis.com/auth/monitoring
  - https://www.googleapis.com/auth/servicecontrol
  - https://www.googleapis.com/auth/service.management.readonly
  - https://www.googleapis.com/auth/trace.append
NAME                                          READY   STATUS    RESTARTS   AGE
hello-kubernetes-deployment-f6cb6cf4f-kszd9   1/1     Running   0          1h
hello-kubernetes-deployment-f6cb6cf4f-lw49t   1/1     Running   0          1h
hello-kubernetes-deployment-f6cb6cf4f-qqgxs   1/1     Running   0          1h
hello-world-deployment-5cfbc486f-4c2bm        1/1     Running   0          1h
hello-world-deployment-5cfbc486f-dmcqf        1/1     Running   0          1h
hello-world-deployment-5cfbc486f-rnpcc        1/1     Running   0          1h
Name:                     hello-world
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"hello-world","namespace":"default"},"spec":{"ports":[{"port":6000...
Selector:                 department=world,greeting=hello
Type:                     NodePort
IP:                       10.59.254.88
Port:                     <unset>  60000/TCP
TargetPort:               50000/TCP
NodePort:                 <unset>  30418/TCP
Endpoints:                10.56.2.7:50000,10.56.3.6:50000,10.56.6.4:50000
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
Name:                     hello-kubernetes
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"hello-kubernetes","namespace":"default"},"spec":{"ports":[{"port"...
Selector:                 department=kubernetes,greeting=hello
Type:                     NodePort
IP:                       10.59.251.189
Port:                     <unset>  80/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  32464/TCP
Endpoints:                10.56.2.6:8080,10.56.6.3:8080,10.56.8.6:8080
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
Name:             my-ingress
Namespace:        default
Address:
Default backend:  default-http-backend:80 (10.56.0.9:8080)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *
        /*      hello-world:60000 (<none>)
        /kube   hello-kubernetes:80 (<none>)
Annotations:
  kubectl.kubernetes.io/last-applied-configuration:  {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"gce"},"name":"my-ingress","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"serviceName":"hello-world","servicePort":60000},"path":"/*"},{"backend":{"serviceName":"hello-kubernetes","servicePort":80},"path":"/kube"}]}}]}}

  kubernetes.io/ingress.class:  gce
Events:
  Type     Reason  Age                  From                     Message
  ----     ------  ----                 ----                     -------
  Normal   ADD     107s                 loadbalancer-controller  default/my-ingress
  Warning  Sync    66s (x15 over 107s)  loadbalancer-controller  Error during sync: Error running backend syncing routine: googleapi: got HTTP response code 404 with body: Not Found

Конфигурация кластера Pulumi

                {
                    "name": "test-cluster",
                    "region": "europe-west4",
                    "addonsConfig": {
                        "httpLoadBalancing": {
                            "disabled": false
                        },
                        "kubernetesDashboard": {
                            "disabled": false
                        }
                    },
                    "ipAllocationPolicy": {},
                    "pools": [
                        {
                            "name": "default-pool",
                            "initialNodeCount": 1,
                            "nodeConfig": {
                                "oauthScopes": [
                                    "https://www.googleapis.com/auth/compute",
                                    "https://www.googleapis.com/auth/devstorage.read_only",
                                    "https://www.googleapis.com/auth/service.management",
                                    "https://www.googleapis.com/auth/servicecontrol",
                                    "https://www.googleapis.com/auth/logging.write",
                                    "https://www.googleapis.com/auth/monitoring",
                                    "https://www.googleapis.com/auth/trace.append",
                                    "https://www.googleapis.com/auth/cloud-platform"
                                ],
                                "machineType": "n1-standard-1",
                                "labels": {
                                    "pool": "api-zero"
                                }
                            },
                            "management": {
                                "autoUpgrade": false,
                                "autoRepair": true
                            },
                            "autoscaling": {
                                "minNodeCount": 1,
                                "maxNodeCount": 20
                            }
                        },
                        {
                            "name": "outbound",
                            "initialNodeCount": 2,
                            "nodeConfig": {
                                "machineType": "custom-1-1024",
                                "oauthScopes": [
                                    "https://www.googleapis.com/auth/compute",
                                    "https://www.googleapis.com/auth/devstorage.read_only",
                                    "https://www.googleapis.com/auth/service.management",
                                    "https://www.googleapis.com/auth/servicecontrol",
                                    "https://www.googleapis.com/auth/logging.write",
                                    "https://www.googleapis.com/auth/monitoring",
                                    "https://www.googleapis.com/auth/trace.append",
                                    "https://www.googleapis.com/auth/cloud-platform"
                                ],
                                "labels": {
                                    "pool": "outbound"
                                }
                            },
                            "management": {
                                "autoUpgrade": false,
                                "autoRepair": true
                            }
                        }

person user3270173    schedule 12.04.2019    source источник
comment
Есть ли у вас какой-либо другой контроллер Ingress (например, nginx-ingress), настроенный в вашем кластере GKE? Вы создали аннотацию kubernetes.io/ingress.class: gce для ресурса my-ingress самостоятельно или она была создана автоматически?   -  person Nepomucen    schedule 12.04.2019
comment
его часть определения входящего трафика. apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-ingress annotations: kubernetes.io/ingress.class: "gce"   -  person user3270173    schedule 12.04.2019
comment
никакого другого Ingress Controller. аннотация является частью определения входа. пробовал с / без того же результата.   -  person user3270173    schedule 12.04.2019


Ответы (2)


Автор этого сообщения в конце концов выяснил, что эта проблема сохраняется только тогда, когда кластер загружается с помощью pulumi.

person Community    schedule 19.04.2019

Похоже, вам не хватает серверной части по умолчанию (L7 - HTTTP LoadBalancer) для входящего контроллера по умолчанию. Из того, что я заметил, он не развертывается, когда в вашем кластере GKE включена надстройка Istio (у Istio есть свои собственные входящие / исходящие шлюзы по умолчанию).

Пожалуйста, проверьте, работает ли он в вашем кластере:

kubectl get pod -n kube-system | grep l7-default-backend 
person Nepomucen    schedule 12.04.2019
comment
он присутствует, но не видит журналов rg-dev-europe-west4-1> kubectl get pod -n kube-system | grep l7-default-backend l7-default-backend-7ff48cffd7-rk4mq 1/1 Running 0 1h - person user3270173; 12.04.2019
comment
Наблюдаете ли вы какие-либо ошибки внутри модуля балансировки нагрузки? (kubectl logs l7-default-backend-7ff48cffd7-rk4mq) Также ниже вы найдете ссылку на руководство по устранению неполадок для gce-ingress. github.com/kubernetes/ingress-gce/blob/ master / docs / - person Nepomucen; 15.04.2019
comment
к сожалению, логов не вижу, продолжайте копаться, спасибо - person user3270173; 15.04.2019
comment
Я забыл упомянуть самую важную вещь: входящий пример из этого руководства по GKE мне подходит. Попробуйте создать следующий ресурс Ingress с объявлением только одного пути на основе исходного примера файла манифеста (для меня потребовалось несколько минут, чтобы сработал серверный модуль loadbalancer). gist.github.com/nepomucen/8318c8d617a98fd70a19cef37fafd82e /xx.xxx.xxx.xxx/got-8-premiere "rel =" nofollow noreferrer "> xx.xxx.xxx.xxx/got-8-premiere Привет, мир! Версия: 2.0.0 Имя хоста: hello-world-deployment-5cfbc486f-295hn - person Nepomucen; 16.04.2019
comment
похоже, проблема в том, как я создаю кластер. Если я создам кластер с помощью консоли, то вход будет работать нормально. Это не удается, если построить кластер с помощью Pulumi. - person user3270173; 16.04.2019
comment
Вы по-прежнему должны иметь возможность создать кластер из pulumi / terraform /, а не из консоли, и заставить его работать с входом. В чем разница между пулуми и консольным кластером? - person Talador12; 15.01.2021