Я создал кластер kubernetes на GKE с веб-приложением. Первоначально это работало нормально, но после изменения порта (с 80 на 5000) выдалось следующее сообщение об ошибке:
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
После этого я снова изменил порт (с 5000 на 80), но ошибка осталась. Я не думаю, что порт на самом деле является проблемой, так как я видел несколько примеров с портами не 80 порта. Однако проблема, вероятно, связана со здоровьем или готовностью, как показывает страница сведений о балансировщике нагрузки:
Name Type Zone Healthy Auto-scaling Balancing mode Capacity
k8s-ig--93f47ba7de28cdd1 Instance group europe-west2-a 0 / 1 Off Max. RPS: 1 (per instance) 100%
k8s-ig--93f47ba7de28cdd1 Instance group europe-west2-b 0 / 1 Off Max. RPS: 1 (per instance) 100%
k8s-ig--93f47ba7de28cdd1 Instance group europe-west2-c 0 / 1 Off Max. RPS: 1 (per instance) 100%
Это мои настройки:
Развертывание
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deployment
spec:
replicas: 1
selector:
matchLabels:
component: web
template:
metadata:
labels:
component: web
spec:
containers:
- name: web
image: web:latest
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 5000
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: 5000
ports:
- containerPort: 5000
Услуги:
apiVersion: v1
kind: Service
metadata:
name: web-cluster-ip-service
spec:
type: NodePort
selector:
component: web
ports:
- port: 5000
targetPort: 5000
Ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.global-static-ip-name: web-ip
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/add-base-url: "true"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: web-cluster-ip-service
servicePort: 5000
at / является целевой страницей, поэтому возвращается 200.