Вид Примечание: Я много гуглил и смотрю слишком много вопросов, связанных с этой проблемой, также в 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
бэкэнд.Вот снимок экрана:
Даже я отредактировал Firewall Rules
для всех gke-....
и разрешил все порты только для выхода из этой проблемы, но он все еще показывает UNHEALTHY
статус для nodeservice
.
Что здесь не так?
Заранее спасибо!