Google Kubernetes Engine Ingress НЕДОРОГО бэкэнд-сервис - PullRequest
0 голосов
/ 07 октября 2018

Вид Примечание: Я много гуглил и смотрю слишком много вопросов, связанных с этой проблемой, также в StackOverflow, но не смог решить мою проблему, поэтому не отмечайте это какДублируйте, пожалуйста!

Я пытаюсь развернуть 2 службы (одна из них - фляга Python, а другая - NodeJS) в Google Kubernetes Engine.Я создал два Kubernetes-развертывания по одному для каждого сервиса и два Kubernetes-сервиса по одному для каждого сервиса типа NodePort.Затем я создал Ingress и упомянул свой endpoints, но Ingress говорит, что один бэкэнд-сервис UNHEALTHY.

Вот мои определения развертывания YAML:

# Pyservice deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: pyservice
  labels:
    app: pyservice
  namespace: default
spec:
  selector:
    matchLabels:
        app: pyservice
  template:
    metadata:
      labels:
        app: pyservice
    spec:
      containers:
      - name: pyservice
        image: docker.io/arycloud/docker_web_app:pyservice
        ports:
        - containerPort: 5000
      imagePullSecrets:
         - name: docksecret

# # Nodeservice deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nodeservice
  labels:
    app: nodeservice
  namespace: default
spec:
  selector:
    matchLabels:
        app: nodeservice
  template:
    metadata:
      labels:
        app: nodeservice
        tier: web
    spec:
      containers:
      - name: nodeservice
        image: docker.io/arycloud/docker_web_app:nodeservice
        ports:
        - containerPort: 8080
      imagePullSecrets:
         - name: docksecret

И здесьмои сервисы и определения Ingress YAML:

# pyservcie service
kind: Service
apiVersion: v1
metadata:
  name: pyservice
spec:
  type: NodePort
  selector:
    app: pyservice
  ports:
  - protocol: TCP
    port: 5000
    nodePort: 30001
---

# nodeservcie service
kind: Service
apiVersion: v1
metadata:
  name: nodeservcie
spec:
  type: NodePort
  selector:
    app: nodeservcie
  ports:
  - protocol: TCP
    port: 8080
    nodePort: 30002
---

# Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "gce"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: pyservice
          servicePort: 5000
      - path: /*
        backend:
          serviceName: pyservice
          servicePort: 5000
      - path: /node/svc/
        backend:
          serviceName: nodeservcie
          servicePort: 8080

pyservice работает нормально, но nodeservice отображается как UNHEALTHY бэкэнд.Вот снимок экрана: enter image description here

Даже я отредактировал Firewall Rules для всех gke-.... и разрешил все порты только для выхода из этой проблемы, но он все еще показывает UNHEALTHY статус для nodeservice.

Что здесь не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 08 октября 2018

Почему вы используете входной класс GCE, а затем задаете аннотацию перезаписи nginx?В случае, если вы не поняли, аннотация не повлияет на вход GCE.

В качестве селектора вы также получили 'nodeservcie' вместо 'nodeservice'.

...