2016-02-05 27 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