我一直在尝试设置一个简单的 Kubernetes 集群,其中包含一个容器、一个节点端口和一个 ingres 负载均衡器。但是,无论我做什么,ingres 负载均衡器始终显示“某些后端服务处于不健康状态”。我搜索了几个论坛,找到了以下建议:
- 增加节点的大小
externalTrafficPolicy
将节点端口服务的 从更改Cluster
为Local
(或Local
更改为Cluster
)- 将
readinessProbe
and添加livenessProbe
到工作负载/容器
我还读到,由于 GKE 负载均衡器中存在错误,节点端口服务中的任何更改都需要删除并重建负载均衡器。因此,我尝试了上述建议的每种组合,每次更改后都删除并重建负载均衡器,并等待 15 分钟让负载均衡器成功构建。然而,我还是没有运气。更令人沮丧的是,我不知道在哪里可以找到可以给我更多信息的日志,以便我自己解决这个问题。
请告诉我我还能提供哪些其他信息。我对 Kubernetes 还不太熟悉,但除此之外我是一名技术娴熟的人,所以我很乐意提供详细信息/日志/配置。感谢您的帮助!
答案1
我搞明白了。我想我没有意识到活动性/就绪性/启动探测需要多么量身定制。我正在运行 Nextcloud 和 Keycloak,我设法找到了专门针对这些系统的配置。为了方便以后使用,我将发布适用于这些平台的配置。
Nextcloud
ports:
- containerPort: 80
name: http
protocol: TCP
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Host
value: [YOUR-DOMAIN.TLD]
path: /status.php
port: http
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Host
value: [YOUR-DOMAIN.TLD]
path: /status.php
port: http
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
startupProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Host
value: [YOUR-DOMAIN.TLD]
path: /status.php
port: http
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
钥匙斗篷
ports:
- containerPort: 8080
name: http
protocol: TCP
livenessProbe:
failureThreshold: 3
httpGet:
path: /auth/
port: http
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
readinessProbe:
failureThreshold: 3
httpGet:
path: /auth/realms/master
port: http
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
startupProbe:
failureThreshold: 60
httpGet:
path: /auth/
port: http
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 5