经过多次建议后,GKE 负载均衡器处于“不健康状态”

经过多次建议后,GKE 负载均衡器处于“不健康状态”

我一直在尝试设置一个简单的 Kubernetes 集群,其中包含一个容器、一个节点端口和一个 ingres 负载均衡器。但是,无论我做什么,ingres 负载均衡器始终显示“某些后端服务处于不健康状态”。我搜索了几个论坛,找到了以下建议:

  • 增加节点的大小
  • externalTrafficPolicy将节点端口服务的 从更改ClusterLocal(或Local更改为Cluster
  • readinessProbeand添加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

相关内容