![](/img/trans.png)
[英]Kubernetes Ingress get Unhealthy backend services on Google Kubernetes Engine
[英]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.