【问题标题】:Kubernetes cluster Nodes not creating automatically when other lost in Kubespray当其他在 Kubespray 中丢失时,Kubernetes 集群节点不会自动创建
【发布时间】:2019-10-07 22:00:23
【问题描述】:

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

【问题讨论】:

    标签: azure kubernetes ansible kops kubespray


    【解决方案1】:

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

    您有几个选择:

    使用scale.yml 进行后置备

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

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

    使用普通的kubeadm join

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

    1. 使用kubeadm token create --ttl 0(或任何你觉得舒服的TTL)创建一个kubeadm加入令牌

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

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

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

    3. 然后调用kubeadm join,如下所述:https://kubernetes.io/docs/setup/independent/high-availability/#install-workers

    使用机器控制器

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

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

    【讨论】:

    • 非常感谢您的解释。 @马修 L 丹尼尔
    猜你喜欢
    • 2020-02-12
    • 2019-07-26
    • 2023-01-30
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2020-12-27
    • 1970-01-01
    相关资源
    最近更新 更多