当其他丢失在Kubespray中时,Kubernetes集群节点不会自动创建

时间:2019-05-21 13:31:51

标签: azure kubernetes ansible kops kubespray

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

1 个答案:

答案 0 :(得分:0)

这是预期的行为,因为kubespray不会创建任何AWS特定资源的ASG。将会看到kubespray仅处理现有机器;他们确实在仓库中提供了一些用于置备机器的地形玩具,但kubespray本身并没有涉足该行业。

您有一些可用的选择:

使用scale.yml进行预配置

  1. 使用您喜欢的机制提供新的节点
  2. 创建一个包含该清单的清单文件,然后使用etcd台机器(大概是kubespray可以为新Node颁发etcd证书
  3. 调用scale.yml剧本

您可能会喜欢AWX

使用普通kubeadm join

这是我用于集群FWIW的机制

  1. 使用kubeadm token create --ttl 0(或您喜欢使用的TTL)创建kubeadm连接令牌

    您只需要执行一次,或者每个ASG一次,这取决于您的安全容忍度

  2. 使用cloud-init机制确保计算机上存在dockerkubeadmkubelet二进制文件

    如果您喜欢构建AMI,也欢迎使用AMI进行操作

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

使用机器控制器

有许多"machine controller" components旨在使用Kubernetes内部的自定义控制器来声明式管理您的节点池。我没有与他们合作的经验,但是我相信他们确实可以工作。该链接只是我想到的第一个链接,但是还有其他链接

我们在Kubedex的朋友有an entire page devoted to this question