【问题标题】:How get custom error pages for kubernetes ingress-nginx with helm charts?如何使用 helm 图表获取 kubernetes ingress-nginx 的自定义错误页面?
【发布时间】:2021-08-04 15:36:40
【问题描述】:

所以我使用nginx ingress 并通过舵图安装它:

helm install --set controller.kind=DaemonSet --set controller.service.annotations."service\.beta\.kubernetes\.io/do-loadbalancer-size-slug"="lb-large" --set controller.service.annotations."service\.beta\.kubernetes\.io/do-loadbalancer-hostname"="some\.url\.com" ingress-nginx ingress-nginx/ingress-nginx

这也自动在数字海洋上创建了一个负载均衡器。

据我目前了解,引用 this 我必须:

  1. 创建一个作为默认后端的 docker 镜像,例如 this
  2. 必须在掌舵图中设置以下内容:
    • defaultBackend.enable => 真
    • defaultBackend.image => 在步骤 1 中创建的图像。
    • controller.config.custom-http-errors => [404, 503, ..](我希望由默认后端处理的所有错误 (config values reference)。
  3. 升级舵图。

这是正确且最简单的方法还是有更简单的方法?

还要升级 helm chart,移除旧的负载均衡器并创建一个新的吗?

【问题讨论】:

  • 看起来这正是kubernetes.github.io/ingress-nginx/examples/customization/… 所说的,你已经尝试过你的方法了吗?
  • 不,我想检查这是否真的是“最简单”的方法,而且我有点担心负载均衡器会被替换,这会导致它的新 IP .
  • 你的案子有进展吗?
  • 很抱歉没有回复,据我所知,它可以正常工作。但是我只能在本地对其进行测试,因为在生产中(据我所知)升级 nginx-ingress helm 图表可能会导致负载均衡器(-service | from the chart)再次升级,这反过来可能会创建一个新的负载均衡器,它会有一个新的 IP 地址,所以我们仍然必须找到一个解决方案来防止这种情况发生,或者至少不会产生如此大的影响。
  • 没问题,在升级 helm chart 时,您始终可以使用 --reuse-values 命令,根据 --help:“升级时,重用上一个版本的值并合并来自通过 --set 和 -f 的命令行。如果指定了“--reset-values”,则将被忽略”。此外,您可以使用 --dry-run 标志,它会告诉您由于更新会发生哪些变化。

标签: nginx kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

这是正确且最简单的方法还是有更简单的方法?

基于official NGINX Ingress Controller wiki 的问题中提出的步骤是正确的,并且似乎是最简单的方法。

还要升级 helm chart,移除旧的负载均衡器并创建一个新的吗?

使用命令helm upgrade 后,LoadBalancer 将保持不变——IP 地址不会改变。 通过运行helm list 命令,您可以通过检查REVISIONUPDATED 字段来查看升级发生。

NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
ingress-nginx   default         4               2021-09-06 10:38:14.447456942 +0000 UTC deployed        ingress-nginx-3.35.0    0.48.1

【讨论】:

  • 是的,正如我之前所说,我们暂时推迟了这个,但理论上一切都应该正常工作。我只是不确定我是否应该接受这个作为正确答案,因为我不确定如果您更改将在负载均衡器服务中设置的 values.yaml 中的某些值会发生什么。这可能会导致负载均衡器更新? (我可能不会测试这个,除了接缝之外的所有东西都可以工作,所以我应该接受这个答案吗?)
  • 嗨@natschz,如果您同意答案并认为它有用,您可以up-vote or / and accept it,这样其他人就会看到您的问题以正确的方式得到了回答。请记住,如果您更改决定(例如通过检查 LoadBalancer IP 在升级期间是否发生更改),您可以随时取消投票或/并接受并写评论;)
猜你喜欢
  • 2020-06-30
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 2015-08-12
  • 2011-12-09
  • 2011-03-08
  • 1970-01-01
相关资源
最近更新 更多