Входной контроллер Kubernetes nginx выдает ошибку при попытке получить конечные точки для обслуживания - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь настроить микро-сервисы в Kubernetes на Google Cloud Platform. Я создал файлы конфигурации deployment, clusterIp и ingress.

Сначала, после создания кластера, я запускаю эту команду для установки nginx ingress.

helm install my-nginx stable/nginx-ingress --set rbac.create=true

Я использую helm v3.

Затем я применяю конфигурации развертывания и clusterIp.

конфигурации развертывания и clusterIp:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-production-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      component: app-production
  template:
    metadata:
      labels:
        component: app-production
    spec:
      containers:
        - name: app-production
          image: eu.gcr.io/my-project/app:1.0
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: app-production-cluser-ip-service
spec:
  type: ClusterIP
  selector:
    component: app-production
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP

Моя входная конфигурация:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: app-production-cluster-ip-service
              servicePort: 80

Я получаю эту ошибку из журналов Google Cloud Platform при входном контроллере:

Error obtaining Endpoints for Service "default/app-production-cluster-ip-service": no object matching key "default/app-production-cluster-ip-service" in local store

Но когда я выполняю команду kubectl get endpoints, вывод такой:

NAME                                          ENDPOINTS                     AGE
app-production-cluser-ip-service              10.60.0.12:80,10.60.1.13:80   17m

I Я действительно не уверен, что я делаю неправильно.

1 Ответ

2 голосов
/ 29 января 2020

Имя службы, указанное во входе, не совпадает. Пожалуйста, восстановите услугу и отметьте

    apiVersion: v1
    kind: Service
    metadata:
      name: app-production-cluster-ip-service
    spec:
      type: ClusterIP
      selector:
        component: app-production
      ports:
        - port: 80
          targetPort: 80
          protocol: TCP
...