【问题标题】:How can Kubernete auto scale nodes?Kubernetes 如何自动扩展节点?
【发布时间】:2019-10-07 11:49:40
【问题描述】:

我正在使用 kubernete 来管理 docker 集群。现在,我可以使用 Horizo​​ntal Pod Scaler 设置 POD 自动缩放,这很好。 现在我认为下一步是自动缩放节点。我认为对于 HPA,自动创建的 pod 仅在已创建的节点中启动,但如果所有可用节点都被利用并且没有可用资源可用于任何更多的 pod,我认为下一步是自动创建节点并让节点加入k8s大师。 我用谷歌搜索了很多,介绍这个主题的资源非常有限。 任何人都可以向我指出如何实现此要求的任何资源。 谢谢

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    使用 AWS 并设置您自己的 Kubernetes 集群的一种方法是按照以下步骤操作:

    1. 创建一个大于 t2.micro 的实例(将成为主节点)。
    2. 使用 Kubeadm 等工具初始化 Kubernetes 集群。初始化完成后,您将获得一个加入命令,该命令需要在所有想要加入集群的节点上运行。 (Here is the link)

    3. 现在使用包含该加入命令的启动/启动脚本在 AWS 上创建一个自动缩放组。

    4. 现在,只要您在自动缩放组中指定的利用率被破坏,就会发生缩放并且节点将自动加入 Kubernetes 集群。这将允许 Kubernetes 根据 HPA 在新加入的节点上调度 pod。

    (我建议使用 Flannel 作为 pod 网络,因为它会在不可用时自动从 Kubernetes 集群中删除节点)

    【讨论】:

    • 非常有用,但是对于第3点,不知道你能不能帮忙给我看一些更有用的信息?对于AWS新创建的VM,我觉得还是需要手动安装docker、kubernete等软件,然后运行命令加入master。我们怎样才能让它自动化?
    • 是的,没错!你需要运行所有这些。您可以创建一个包含所有必需依赖项以及 join 命令的启动 bash 脚本,并在创建 VM 时将其添加到用户数据字段中。这是链接:docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
    • 谢谢,假设我们已经有了创建VM的脚本,但是什么时候调用这个脚本来创建节点呢?除了 HPA 设置,我们还需要在 Kubernetes 中进行特殊设置吗?但这主要是针对 pod,而不是针对节点。还有,什么时候销毁?
    • 此脚本将成为节点的启动脚本。但节点/VM 创建/删除将根据自动缩放组策略进行。因此,无论何时创建 threnode,启动脚本都会运行并自动加入 Kubernetes 集群。
    • 您建议使用什么技术来运行集群自动扩缩器?我正在寻找通用解决方案,而不是依赖于特定的云提供商,例如 aws/google cloud 等。
    【解决方案2】:

    kubernetes operations (kops) 帮助您从命令行创建、销毁、升级和维护生产级、高可用性的 Kubernetes 集群。

    特点:

    • 在 AWS 和 GCE 中自动配置 Kubernetes 集群
    • 部署高可用 (HA) Kubernetes Masters

    大部分托管 kubernetes 服务商都提供节点的自动伸缩功能

    弹性 Kubernetes 服务 EKS- configure cluster auto scalar

    Google Kubernetes 引擎 GKE Auto Scalar

    【讨论】:

      【解决方案3】:

      自动缩放功能需要底层云提供商支持。谷歌云通过传递标志 --enable-autoscaling --min-nodes--max-nodes 在集群创建或更新期间支持自动缩放到相应的 gcloud 命令。

      Examples:
      
      gcloud container clusters create mytestcluster --zone=us-central1-b --enable-autoscaling --min-nodes=3 --max-nodes=10 --num-nodes=5
      gcloud container clusters update mytestcluster --enable-autoscaling --min-nodes=1 --max-nodes=15
      

      下面的链接会有所帮助

      https://medium.com/kubecost/understanding-kubernetes-cluster-autoscaling-675099a1db92

      【讨论】:

        猜你喜欢
        • 2017-09-23
        • 1970-01-01
        • 2019-07-26
        • 2017-04-18
        • 1970-01-01
        • 2020-04-22
        • 2019-06-22
        • 2020-12-10
        • 2016-09-04
        相关资源
        最近更新 更多