将 Kubernetes 服务暴露给 mesosphere 的 DCOS 内部的 public
Expose Kubernete service to public inside mesosphere's DCOS
已关注 https://www.mesosphere.com/amazon/ 我在 Amazon AWS 上创建了一个 DCOS 集群。
然后我跟着http://kubernetes.io/v1.1/docs/getting-started-guides/dcos.html在上面安装了Kubernete。
然后我关注了http://kubernetes.io/v1.1/docs/user-guide/quick-start.html
我能够成功启动 pods。
然后我 运行 遇到了将服务公开给 public 的问题。
$ dcos kubectl expose rc my-nginx --port=80 --type=LoadBalancer
service "my-nginx" exposed
$ dcos ssun$ dcos kubectl get svc my-nginx
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
my-nginx 10.10.10.32 80/TCP run=my-nginx 8s
EXTERNAL_IP 地址不存在。按照教程,应该可以的。所以我认为这与我的 Kubernete 在 DCOS 中的事实有关。
请帮忙。非常感谢!
Mesos/DCOS 上的 Kubernetes 尚不支持自动创建 LoadBalancer。
如 quick start 所述:
Through integration with some cloud providers (for example Google Compute Engine and AWS EC2), Kubernetes enables you to request that it provision a public IP address for your application.
据我所知,目前只有 GCE、GKE 和 AWS 支持自动创建 LoadBalancer。
DCOS 的另一个主要区别(与 kubernetes 相比)是它默认带有两个区域:public 和私有区域。因此,如果 public 节点上没有反向代理,则无法从外部访问私有节点上安排的任何内容。
此外,DCOS 上的 Kubernetes 还不支持 IP-per-container。 DCOS/Calico integration 正在开发对 IP-per-container 的支持。据报道,一些社区成员还尝试使用集群范围 docker 覆盖网络。
目前,有几个替代选项可以从外部访问您的 pod:
- 在所有 public 个从站(使用 resource role annotations)和
hostPort:80
上部署您的 pod。然后命中DCOS的地址public slave AWS ELB.
- 创建您自己的负载均衡器 nginx pod(例如 service-loadbalancer 并使用
hostPort:80
将其安排在 public 从站上。然后点击它所在的主机节点的 IP。
让这种体验在 DCOS 上更加流畅绝对是 Mesosphere Kubernetes 团队的首要任务。希望该解决方案将包括自动创建 LoadBalancer。
已关注 https://www.mesosphere.com/amazon/ 我在 Amazon AWS 上创建了一个 DCOS 集群。 然后我跟着http://kubernetes.io/v1.1/docs/getting-started-guides/dcos.html在上面安装了Kubernete。 然后我关注了http://kubernetes.io/v1.1/docs/user-guide/quick-start.html 我能够成功启动 pods。 然后我 运行 遇到了将服务公开给 public 的问题。
$ dcos kubectl expose rc my-nginx --port=80 --type=LoadBalancer
service "my-nginx" exposed
$ dcos ssun$ dcos kubectl get svc my-nginx
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
my-nginx 10.10.10.32 80/TCP run=my-nginx 8s
EXTERNAL_IP 地址不存在。按照教程,应该可以的。所以我认为这与我的 Kubernete 在 DCOS 中的事实有关。
请帮忙。非常感谢!
Mesos/DCOS 上的 Kubernetes 尚不支持自动创建 LoadBalancer。
如 quick start 所述:
Through integration with some cloud providers (for example Google Compute Engine and AWS EC2), Kubernetes enables you to request that it provision a public IP address for your application.
据我所知,目前只有 GCE、GKE 和 AWS 支持自动创建 LoadBalancer。
DCOS 的另一个主要区别(与 kubernetes 相比)是它默认带有两个区域:public 和私有区域。因此,如果 public 节点上没有反向代理,则无法从外部访问私有节点上安排的任何内容。
此外,DCOS 上的 Kubernetes 还不支持 IP-per-container。 DCOS/Calico integration 正在开发对 IP-per-container 的支持。据报道,一些社区成员还尝试使用集群范围 docker 覆盖网络。
目前,有几个替代选项可以从外部访问您的 pod:
- 在所有 public 个从站(使用 resource role annotations)和
hostPort:80
上部署您的 pod。然后命中DCOS的地址public slave AWS ELB. - 创建您自己的负载均衡器 nginx pod(例如 service-loadbalancer 并使用
hostPort:80
将其安排在 public 从站上。然后点击它所在的主机节点的 IP。
让这种体验在 DCOS 上更加流畅绝对是 Mesosphere Kubernetes 团队的首要任务。希望该解决方案将包括自动创建 LoadBalancer。