繁体   English   中英

Google Kubernetes Engine Ingress不健康的后端服务

[英]Google Kubernetes Engine Ingress UNHEALTHY backend service

温馨提示:我在Google上搜索了很多东西,在StackOverflow上也查看了很多与此问题相关的问题,但无法解决我的问题,因此,请不要将其标记为重复项!

我正在尝试在Google Kubernetes Engine上部署2个服务(一个是Python flask,另一个是NodeJS)。 我为每个服务创建了两个Kubernetes部署,为NodePort类型的每个服务创建了两个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后端。 这是屏幕截图: 在此处输入图片说明

连我都编辑的Firewall Rules对于所有gke-....并允许所有端口只是从这个问题失控,但它仍然显示UNHEALTHY的状态nodeservice

怎么了

提前致谢!

为什么要使用GCE入口类,然后指定Nginx重写注释? 如果您尚未意识到,则注释不会对GCE入口产生任何作用。

您还拥有“ nodeservcie”作为选择器,而不是“ nodeservice”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM