如何将 Kubernetes 服务公开到互联网?

2023-12-21

我正在 Azure 上运行一个具有 1 个主节点(也是一个节点)和 2 个节点的 kubernetes 集群。我正在使用带有 Flannel 覆盖网络的 Ubuntu。到目前为止一切进展顺利。我遇到的唯一问题是将服务暴露在互联网上。

我在天蓝色子网上运行集群。主设备附有一个具有公共 IP 的 NIC。这意味着,如果我运行一个侦听端口 80 的简单服务器,我可以使用域名访问我的服务器(Azure 提供了为公共 IP 提供域名的选项)。

我还可以通过一些 hack 访问 kubernetes 留言簿前端服务。我所做的是检查主服务器上的所有侦听端口,并使用公共 IP 尝试每个端口。我能够访问 kubernetes 服务并得到响应。根据我的理解,这是直接进入在主节点(也是一个节点)上运行的 Pod,而不是通过服务 IP(这将在任何 Pod 之间实现负载平衡)。

我的问题是如何将外部IP映射到服务IP?我知道 kubernetes 有一个仅适用于 GCE 的设置(我现在无法使用)。但是有没有一些巧妙的方法告诉 etcd/flannel 做到这一点?


如果您使用kubectl expose命令:

--external-ip="":为服务设置的外部IP地址。除了其生成的服务IP之外,还可以通过该IP访问该服务。

或者,如果您从json or yaml文件,使用spec/externalIPs https://kubernetes.io/docs/api-reference/v1.6/#servicespec-v1-core array.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Kubernetes 服务公开到互联网? 的相关文章

随机推荐