2016-02-05 28 views
0

跟随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 我能够成功启动豆荚。 然后我遇到了暴露服务公开的问题。在中间层的DCOS中公开Kubernete服务

$ 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内部有关。

请帮忙。非常感谢你!

回答

2

Mesos/DCOS上的Kubernetes不支持自动创建LoadBalancer。

由于quick start状态:

通过与一些云服务供应商(例如谷歌计算引擎和AWS EC2)的整合,Kubernetes,您可以请求其提供公共IP地址为您的应用程序。

AFAIK,只有GCE,GKE和AWS支持到目前为止自动创建LoadBalancer。

DCOS的另一个关键区别(与kubernetes相比)是默认情况下带有两个区域:public和private。因此,在公共节点上没有反向代理的情况下,专用节点上没有任何计划是可以从外部访问的。

此外,DCOS上的Kubernetes还不支持每个容器IP。正在开发支持每个容器IP的DCOS/Calico integration。据报道,一些社区成员尝试使用集群范围的泊坞窗覆盖网络。

现在,也有外部到达您的吊舱几个备选方案:

  1. 部署在所有公共奴隶(使用resource role annotations)和hostPort:80您的吊舱。然后点击DCOS公共从属AWS ELB的地址。
  2. 创建您自己的负载平衡器Nginx的POD(如service-loadbalancer,并安排它与hostPort:80公众奴隶,然后按下它的主机节点的IP。

这绝对是中层Kubernetes队的优先级使这个体验在DCOS上更加流畅,希望解决方案包括自动创建LoadBalancer。

+0

非常感谢!但是我虽然只有一个公共的slave,它是mesos的主人,如何让所有的slave成为公共的slave? –

+0

使用AWS Cloud Formation创建您的DCOS群集有3个字段:有多少个主人,多少个私人从属,以及多少个公共奴隶。目前没有简单的方法来使用Cloud Formation来调整您的群集大小。所以如果你想要一个不同的配置,你必须重新创建集群。 – KarlKFI