首页 文章

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

提问于
浏览
3

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

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

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

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

1 回答

  • 3

    如果使用 kubectl expose 命令:

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

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

相关问题