0

我已经使用 repo https://github.com/kubernetes-sigs/kubespray成功部署了一个多主 Kubernetes 集群,并且一切正常。但是当我停止/终止集群中的一个节点时,新节点没有加入集群。我已经使用 KOPS 部署了 kubernetes,但是当一个节点被删除时,节点是自动创建的。这是 kubespray 中的预期行为吗?请帮忙..

4

1 回答 1

2

这是预期行为,因为 kubespray 不会创建任何 ASG,它们是 AWS 特定的资源。人们会发现 kubespray 只处理现有的机器。他们确实在他们的 repo 中提供了一些用于配置机器的 terraform 玩具,但 kubespray 本身并没有涉足该业务。

您有几个可用的选项:

使用后置备scale.yml

  1. 使用您喜欢的机制配置新节点
  2. 创建一个包含它的清单文件和etcd机器(大概是 kubespray 可以为新节点颁发 etcd 证书
  3. 调用scale.yml剧本

您可能会喜欢AWX来支持它。

使用普通kubeadm join

这是我用于集群的机制,FWIW

  1. kubeadm token create --ttl 0使用(或您觉得使用的任何 TTL)创建一个 kubeadm 连接令牌

    您只需执行一次,或者每个 ASG 执行一次,具体取决于您的安全容限

  2. 使用cloud-init机制确保机器上存在dockerkubeadm和二进制文件kubelet

    如果您喜欢构建 AMI,也欢迎您使用 AMI

  3. 然后kubeadm join按照此处所述调用:https ://kubernetes.io/docs/setup/independent/high-availability/#install-workers

使用机器控制器

有很多“机器控制器”组件旨在使用 Kubernetes 中的自定义控制器以声明方式管理您的节点池。我没有与他们打交道的经验,但我相信他们确实有效。该链接只是我想到的第一个链接,但还有其他链接

我们在 Kubedex 的朋友有一整页专门讨论这个问题

于 2019-05-22T03:58:34.410 回答