将节点添加到 Kubernetes 中的现有集群
Posted
技术标签:
【中文标题】将节点添加到 Kubernetes 中的现有集群【英文标题】:Adding node to existing cluster in Kubernetes 【发布时间】:2015-11-26 03:00:02 【问题描述】:我有一个运行在 2 台机器(master-minion 节点和 minion 节点)上的 kubernetes 集群。我想在不破坏当前设置的情况下添加一个新的 minion 节点,有什么办法吗?
我看到当我尝试添加新节点时,其他节点上的服务会停止它,因此我必须在将新节点部署到现有集群之前停止服务。
【问题讨论】:
您能否更新问题,详细说明您正在使用的kuberntes
版本和平台?
这可能与我之前回答的重复:***.com/questions/29654772/… 正如 Navid 所要求的,要获得确切如何做的答案,需要更多地了解您如何部署当前基础架构。
【参考方案1】:
在我的情况下,问题是由于现有的错误 Route53“A”记录。
一旦它被更新为指向 API 服务器的内部 IP,kube-proxy 就能够访问主节点并且节点出现在列表中 (kubectl get nodes
)。
【讨论】:
【参考方案2】:要在最新版本中执行此操作(在 1.10.0 上测试),您可以在主节点上发出以下命令:
kubeadm token create --print-join-command
然后它会打印出一个新的连接命令(就像你在kubeadmn init
之后得到的那个):
kubeadm join 192.168.1.101:6443 --token tokentoken.lalalalaqyd3kavez --discovery-token-ca-cert-hash sha256:complexshaoverhere
【讨论】:
对于任何最新版本的 k8s,这是正确答案。 如果集群不是使用 kubeadm 创建的怎么办? 我认为只有 kubeadm 可以创建新的 join 命令。您是如何创建集群的?【参考方案3】:你需要在一个新的 minion 上运行 kubelet 和 kube-proxy,在 params 中指明 api 地址。
例子:
kubelet --api_servers=http://<API_SERVER_IP>:8080 --v=2 --enable_server --allow-privileged
kube-proxy --master=http://<API_SERVER_IP>:8080 --v=2
在此之后,您应该会在
中看到新节点kubectl get no
【讨论】:
以上是关于将节点添加到 Kubernetes 中的现有集群的主要内容,如果未能解决你的问题,请参考以下文章