У меня есть кластер kubernetes, размещенный в Google Cloud, несколько развертываний + сервисы и вход (gce).Службы, развертывания и модули работают и работают, однако вход указывает на нездоровый статус почти для всех серверных служб (ingress.kubernetes.io/backends): кажется, он создает N + 1 серверных служб (N = количество служб или развертываний)и только один здоров.
Существуют датчики жизнеспособности и готовности, и они работают нормально (службы указывают состояние готовности и исправности и 0 перезапусков).Добавлен обработчик root со статусом 200 OK (on / path).Тип услуг - NodePort.Порт и целевой порт - 443. Сертификат TLS работает и подключен к входу.
Я ожидаю, что все службы должны быть исправны.
Ниже приведен пример конфигурации YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: dummy-service
labels:
app: dummy-app
spec:
selector:
matchLabels:
app: dummy-app
template:
metadata:
labels:
app: dummy-app
spec:
containers:
- name: dummy-service
image: xx.gcr.io/dummy-project/dummy-service:latest
resources:
limits:
memory: "128Mi"
cpu: "100m"
ports:
- containerPort: 443
livenessProbe:
httpGet:
path: /health
port: 443
initialDelaySeconds: 90
periodSeconds: 60
readinessProbe:
httpGet:
path: /health
port: 443
initialDelaySeconds: 90
periodSeconds: 60
env:
- name: ASPNETCORE_ENVIRONMENT
value: Production
- name: ASPNETCORE_URLS
value: https://*:443;http://*:80
- name: ASPNETCORE_Kestrel__Certificates__Default__Password
value: ""
- name: ASPNETCORE_Kestrel__Certificates__Default__Path
value: dummy_tls_certificate.pfx
# There are several deployments with the same configuration
# Only name different
---
apiVersion: v1
kind: Service
metadata:
name: dummy-service
spec:
selector:
app: dummy-app
ports:
- port: 443
type: NodePort
# There are several services with the same configuration
# Only name different
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: www
annotations:
external-dns.alpha.kubernetes.io/hostname: "my-dummy-hostname.com"
ingress.kubernetes.io/add-base-url: "true"
kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: "dummy-static-ip-address-name"
spec:
tls:
- hosts:
- my-dummy-hostname.com
secretName: dummy-tls-secret
rules:
- host: my-dummy-hostname.com
http:
paths:
- path: /api/dummy
backend:
serviceName: dummy-service
servicePort: 443
# Example of other service
- path: /api/yet_another_dummy
backend:
serviceName: yet-another-dummy-service
servicePort: 443