将 kubernetes istio ingress gateway 绑定到本地 80 和 443 端口

Bind kubernetes istio ingress gateway to local ports 80 and 443

我设法在托管服务提供商 (hetzner) 的专用服务器上安装了 kubernetes 1.22、longhorn、kiali、prometheus 和 istio 1.12 (profile=minimal)。

然后我继续使用 istio 教程中的 istio 入口网关测试 httpbin。我在从互联网访问它时遇到了一些问题(我设置 HAProxy 将本地端口 80 转发到 kubernetes 中分配的动态端口,所以在我的例子中是端口 31701/TCP)

如何让 kubernetes 在裸机接口端口 80(和 443)上直接可用。

我以为我找到了使用 metallb 的解决方案,但我无法实现它,所以我认为它不适用于该用例。 (我尝试将 EXTERNAL-IP 设置为裸机接口的 IP,但似乎不起作用)

我的 HAProxy 设置现在不能用于我的 SSL 流量(使用 kubernetes 上的 cert-manager),但在我继续研究之前,我想确认一下。这真的是您假设使用裸机上的 istio 网关配置将流量路由到 kubernetes 的方式吗?

我遇到了 ,但我没有外部负载均衡器,我的托管服务提供商也没有提供一个供我使用。

已发布社区 Wiki 答案以根据评论提高可见度。随意扩展它。


问题的解决方案是:

I setup HAProxy in combination with Istio gateway and now it's working.

原因:

I think the reason why SSL was not working was because istio.io/latest/docs/setup/additional-setup/gateway creates the ingress gateway in a different namespace (istio-ingress) from the rest of the tutorials (istio-system).