【发布时间】: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 我必须:
- 创建一个作为默认后端的 docker 镜像,例如 this。
- 必须在掌舵图中设置以下内容:
- defaultBackend.enable => 真
- defaultBackend.image => 在步骤 1 中创建的图像。
- controller.config.custom-http-errors => [404, 503, ..](我希望由默认后端处理的所有错误 (config values reference)。
- 升级舵图。
这是正确且最简单的方法还是有更简单的方法?
还要升级 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