繁体   English   中英

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

[英]How do I expose Kubernetes service to the internet?

我正在运行一个kubernetes集群,其中包含1个master(也是一个节点)和Azure上的2个节点。 我正在使用Ubuntu与Flannel覆盖网络。 到目前为止,一切都运作良好。 我唯一的问题是将服务暴露给互联网。

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

我也可以通过一些黑客到达kubernetes留言簿前端服务。 我所做的是检查主服务器上的所有监听端口,并尝试使用公共IP的每个端口。 我能够点击kubernetes服务并获得回复。 根据我的理解,这直接转到主服务器上运行的pod(也是一个节点),而不是通过服务IP(它可以在任何pod上进行负载平衡)。

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

如果使用kubectl expose命令:

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

或者,如果从jsonyaml文件创建,请使用spec/externalIPs数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM