【问题标题】:gke ingress in front of ingress nginxgke ingress 在 ingress nginx 前面
【发布时间】:2021-11-05 04:31:54
【问题描述】:

我知道这个问题已经被问过了,但没有答案(old question)。我和这个问题有同样的需求,我知道如何管理多个入口。

我当前的问题是,如果我在 nginx 入口控制器前面创建一个入口,资源定位总是不好的,因为入口-nginx 健康检查不是在“/”而是在“/healthz”,所以对于 lb资源不可用。

有人知道如何解决我目前遇到的这个健康检查问题吗?

我正在关注我的 2 个想法,但现在它不起作用:

  • 使用 backendConfig 资源对入口进行健康检查
  • 将运行状况检查路径移至控制器中的“/”(我认为这不是一个好主意,但如果没有想法)

有人对此有有效的解决方案吗?

【问题讨论】:

  • 正如您在old answer 中看到的那样:“不可能将Ingress 指向另一个Ingress”。 2 年内有什么变化吗?
  • 正如我的问题中所说,没有答案,这意味着我确实看了看,但这不是答案,这家伙不明白他在说什么。 Ingress 是一种资源,而 Ingress 控制器是一个 pod...
  • @night-gold 我想我们都同意将 healthcheck 更改为 / 不是一个好主意。假设您想使用GKE Ingress 将流量传递给NGINX Ingress controller(可以用作Ingress 资源,但暴露在ServiceNodePort 类型上)您可以使用backendConfig 来实现。前段时间我写了一个解释 Istio 流程的答案。我认为您可以使用它并为您的nginx-ingress复制其中的某些部分:Stackoverflow.com: When I specify NodePort service as Ingress backend ...
  • @DawidKruk 您是否设法防止分配给创建的入口的 ip 问题?目前它可以工作,但它的目标是服务的 ip 而不是入口 ip。
  • 不确定您的确切意思。你能详细说明一下吗?

标签: google-kubernetes-engine kubernetes-ingress nginx-ingress


【解决方案1】:

大卫的评论是对的。

我测试了 backendConfig conf 以解决我的问题,现在 GCP 控制台上的一切都是绿色的。我仍然对证书有一些问题,但这是另一个问题。

在我的情况下,我不需要在 nodeport 中添加服务,因为我使用的是具有 ip 别名的私有集群,在这种情况下,clusterIp 服务足以到达 Pod。

对于那些正在寻找答案的人,我最后做了类似的事情:

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: ingress-nginx
spec:
  healthCheck:
    checkIntervalSec: 30
    healthyThreshold: 2
    unhealthyThreshold: 3
    port: 80
    requestPath: /healthz
    timeoutSec: 10

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 2019-12-18
    • 2021-02-01
    • 2021-07-31
    • 2019-06-16
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多