我正在尝试使用VM(主)和3个裸机服务器(所有运行Ubuntu 14.04)设置一个小型Kubernetes集群 . 我关注的是Kubernetes install tutorial for Ubuntu . 如果我使用4个节点(VM服务器)作为小兵,一切正常 . 但是当我尝试将VM用作主设备时,它无法访问Flannel网络 . 我可以创建pod,服务等,但如果我尝试从主节点(VM)访问服务,它就找不到Flannel的IP .
我可以在Kubernetes的内部网络中包含一个仅限主节点(在这种情况下是Flannel的网络)吗?如果没有,有关如何从主节点访问Kubernetes UI和其他服务的任何建议?
1 回答
要让主节点访问群集网络,可以在主节点上运行
flanneld
和kube-proxy
. 这应该为您提供所需的访问权限 .但是,在使用
kube-up.sh
方法的上下文中添加这些组件可能有点牵扯 . 看起来您可能有一些选项,同时主要保留在该教程的框架内:您可以浏览
kube-up.sh
脚本并对其进行更改,以便在主节点上安装和配置kube-proxy
和flanneld
,而不是kubelet
. 随着时间的推移,这可能很难维持 .您可以像以前一样启动集群,将所有4个节点作为'nodes'运行(以前称为'minions'的工作者的新名称) . 然后将主节点标记为不可调度(
kubectl patch nodes $NODENAME -p '{"spec": {"unschedulable": true}}'
),如here所示 . 主服务器仍然会显示在节点列表等中,但它不应该安排任何pod,并且应该具有对集群的完全网络访问权限 .您也可以使用4个节点启动群集,然后只需登录并删除主服务器上的
kubelet
. 这实际上与上述类似,除了主节点不会显示在节点列表中(尽管您可能必须在删除kubelet时将其删除(kubectl delete node $NODENAME
) .可能还有其他选择(总有!),但希望这些可以帮助您入门 .