我使用Kubernetes在Google Cloud中部署了一个应用程序 . 如果我使用LoadBalancer直接公开我的部署,一切正常 . 我不能对Ingress-GCE进行相同的部署工作,因为我的后端始终处于不 Health 的状态 .

我已经看了这两个SO问题(Q1Q2和相关文档D1D2),但无法弄清楚为什么我不能进行后端 Health 检查 .

根据我的理解,如果我的应用程序为/返回HTTP 200的答案,那么对于Ingress-GCE来说应该没问题,对吗?我检查过这是通过从POD内部“卷曲”我的服务和调用非Ingress LoadBalancer来实现的 .

这是我对Ingress的主要配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myapp-https
  annotations:
    kubernetes.io/ingress.allow-http: "false"
spec:
  tls:
  - secretName: myapp-tls-certificate
  backend:
    serviceName: myapp
    servicePort: 80

---

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: gcr.io/my-project/myapp
        ports:
        - containerPort: 8080
---

apiVersion: v1
kind: Service
metadata:
  name: myapp
  labels:
    app: myapp
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
    name: http
  selector:
    app: myapp

任何人都可以在我的配置中看到错误吗?有关如何确保我的部署通过Ingress-GCE运行状况检查的任何提示?