将kubernete服务暴露给中间层DCO内的公众

ctzwtxfj  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(405)

跟着https://www.mesosphere.com/amazon/ 我在amazonaws上创建了一个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 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

外部ip地址不存在。根据教程,它应该。所以我想这和我的库伯内特在DCO里面有关。
请帮忙。非常感谢你!

eulz3vhy

eulz3vhy1#

mesos/dcos上的kubernetes还不支持自动创建负载平衡器。
如快速入门所述:
通过与一些云提供商(例如google compute engine和aws ec2)的集成,kubernetes允许您请求它为您的应用程序提供公共ip地址。
到目前为止,只有gce、gke和aws支持自动创建负载平衡器。
dcos的另一个关键区别(与kubernetes相比)是它默认有两个区域:public和private。因此,如果没有公共节点上的反向代理,私有节点上的任何调度都无法从外部访问。
此外,dcos上的kubernetes还不支持每个容器的ip。通过dcos/calico集成,每个容器的ip支持正在开发中。据报道,一些社区成员还尝试使用集群范围的docker覆盖网络。
目前,有几种选择可以从外部到达吊舱:
在所有公共从属服务器上部署pod(使用资源角色注解)并 hostPort:80 . 然后点击dcos公共从服务器aws elb的地址。
创建您自己的负载平衡器nginx pod(例如,服务负载平衡器并使用 hostPort:80 . 然后点击它所在的主机节点的ip。
在dcos上,让这种体验更顺畅,无疑是中间层kubernetes团队的首要任务。希望解决方案将包括自动创建负载平衡器。

相关问题