【问题标题】:Custom Health check with GCP使用 GCP 进行自定义运行状况检查
【发布时间】:2019-04-08 09:33:14
【问题描述】:

您好,我尝试使用 GCP LoadBalancer 的自定义运行状况检查。

我已经像这样添加了readinessProbelivenessProbe

    readinessProbe:
      httpGet:
        path: /health
        port: dash
      initialDelaySeconds: 5
      periodSeconds: 1
      timeoutSeconds: 1
      successThreshold: 1
      failureThreshold: 10
    livenessProbe:
      httpGet:
        path: /health
        port: dash
      initialDelaySeconds: 5
      periodSeconds: 1
      timeoutSeconds: 1
      successThreshold: 1
      failureThreshold: 10

但是当我创建我的入口时,我没有得到我的自定义健康检查

Path LB

【问题讨论】:

  • 在过去这是可能的。不确定它是否仍然受支持。如果是,你要做的就是设置一个活性探针。如果活性探测通过,则 GCP 负载均衡器将采用该端点进行节点的健康检查。你的活体探测通过了吗?你有 200 个吗?
  • 我遇到了类似的问题,并注意到在创建 Ingress 资源之前需要定义 readinessProbe - 它不会接受以后的更改。有没有可能这也是你的情况?
  • 我尝试在创建入口前等待 10 分钟,但没有效果..
  • github.com/kubernetes/ingress-gce/blob/… "使用就绪探测设置生成 Kubernetes L7 健康检查。"...

标签: kubernetes google-cloud-platform google-health


【解决方案1】:

最终确定一个答案。我试图做的事情是不可能的。我的 GCE Ingress 在端口 80 上使用了后端。但在我的 ReadinessProbe 中,我告诉他检查端口 8080/health 路径。 这是不可能的!

Ingress 后端声明的服务端口必须与readinessProbe 中声明的端口相同。 只有路径可以不同。如果我们不遵守此模式,则与运行状况检查 GCP 路径关联的是 /

从网络的角度来看这是合乎逻辑的,健康检查 GCP 已经“退出”了 Kube 集群,如果我们告诉它在端口 80 上路由但我们的 ReadinessProbe 在另一个端口上,它怎么能确保即使与 ReadinessProbe 关联的端口符合端口 80(它必须在其上路由流量)也响应。

综上所述,Ingress 中声明的后端端口必须在同一个端口上有一个readinessProbe。我们唯一可以自定义的就是路径。

【讨论】:

    【解决方案2】:

    我认为您对 GCP 中的资源感到困惑。

    您发布的代码与负载均衡器资源无关,因为它是对 pod 状态的 kubernetes 运行状况检查。如果您想知道探针是否在工作,请检查您的 pod 状态,如果它没有运行,请描述您的 pod 并查看日志,应该表明探针存在问题。

    我猜你的 kubernetes conf 中有一个入口资源,它创建了 lb 和它周围的所有资源,比如健康检查(仍然猜测你发布的图像与此有关)。

    如果您使用 GKE,您应该保留您部署的 k8s 配置中的 google 自动资源配置,因为您可能会破坏 google 已经为您维护的一些东西。

    【讨论】:

    • 当我在 GKE 上使用 GCE 类创建 Ingress 时,LB 创建后端和健康检查。健康检查绑定到/path。但让我们举个例子,我们有一个应用程序,它在路径 / 上在/dashboard 上进行重定向(302)。由于返回的 HTTP 代码不是 200 ,我们的服务返回 UNHEALTHY 。我知道可以手动修改健康检查的端点,但我想自动进行,特别是当健康检查对应于我的准备情况时。
    • 我可能说错了:您可以在这里找到与您相同的问题:stackoverflow.com/questions/50018193/… 但没有经过验证的答案...
    • 没问题。我只是找到了一个可能的答案:github.com/pusher/oauth2_proxy/issues/86 & github.com/jetstack/kube-lego/issues/27。但我认为 GCP Ingress 是限制...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 2021-10-05
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多