Kubernetes Kubernete如何自动缩放节点?

Kubernetes Kubernete如何自动缩放节点?,kubernetes,Kubernetes,我使用kubernete来管理docker集群。现在,我可以使用水平吊舱定标器设置吊舱自动缩放,这很好。 现在我认为下一步是自动缩放节点。我认为对于HPA,自动创建的pod只在已经创建的节点中启动,但是如果所有可用的节点都被利用,并且没有任何可用的pod资源,我认为下一步是自动创建节点并让节点加入k8s主节点。 我在谷歌上搜索了很多,介绍这个话题的资源非常有限。 有人能告诉我如何实现这一要求的资源吗。 谢谢 (kops)帮助您从命令行创建、销毁、升级和维护生产级、高可用的Kubernetes群集

我使用kubernete来管理docker集群。现在,我可以使用水平吊舱定标器设置吊舱自动缩放,这很好。 现在我认为下一步是自动缩放节点。我认为对于HPA,自动创建的pod只在已经创建的节点中启动,但是如果所有可用的节点都被利用,并且没有任何可用的pod资源,我认为下一步是自动创建节点并让节点加入k8s主节点。 我在谷歌上搜索了很多,介绍这个话题的资源非常有限。 有人能告诉我如何实现这一要求的资源吗。 谢谢

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

特点:

  • 自动配置AWS和GCE中的Kubernetes群集
  • 部署高可用性(HA)Kubernetes Masters
大多数托管kubernetes服务提供商都提供了节点的自动伸缩功能

弹性Kubernetes服务

谷歌Kubernetes引擎
底层云提供商需要支持自动缩放功能。Google cloud支持在集群创建或更新过程中通过向相应的gcloud命令传递标志--enable autoscaling--min nodes和--max nodes来自动缩放

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
下面的链接会有帮助


使用AWS并设置自己的Kubernetes群集的一种方法是执行以下步骤:

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

  • 现在,使用包含join命令的start/boot脚本在AWS上创建一个自动缩放组

  • 现在,每当您在自动缩放组中指定的利用率被破坏时,就会发生缩放,节点将自动加入Kubernetes群集。这将允许Kubernetes基于HPA在新加入的节点上调度POD


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

    非常有用,但对于第3点,我不知道您是否可以帮助向我展示一些更有用的信息?对于AWS中新创建的VM,我认为我们仍然需要手动安装docker、kubernete软件等,然后运行命令加入master。我们怎样才能使它自动化?是的,真的!你需要运行所有这些。您可以创建一个包含所有必需依赖项的start bash脚本以及join命令,并在创建VM时将其添加到用户数据字段中。这里是链接:谢谢,假设我们已经有了创建VM的脚本,但是什么时候调用这个脚本来创建节点呢?除了HPA设置外,我们还需要在Kubernete设置特殊设置吗?但这主要是针对pod,而不是节点。此外,何时销毁?此脚本将作为节点的开始脚本。但节点/VM创建/删除将基于自动缩放组策略进行。因此,无论何时创建threnode,启动脚本都将运行并自动加入Kubernetes群集。您建议使用什么技术来运行群集autoscaler?我正在寻找通用的解决方案,而不是依赖于特定的云提供商,如aws/谷歌云等。