我使用Kubernetes在Google Cloud中部署了一个应用程序 . 如果我使用LoadBalancer直接公开我的部署,一切正常 . 我不能对Ingress-GCE进行相同的部署工作,因为我的后端始终处于不 Health 的状态 .
我已经看了这两个SO问题(Q1,Q2和相关文档D1和D2),但无法弄清楚为什么我不能进行后端 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运行状况检查的任何提示?