我已经使用Kubernetes将应用程序部署到Google Cloud 容器引擎群集 .
我进入了自动缩放,我发现了以下选项:
Kubernetes Horizontal Pod Autoscaling (HPA)
作为explained here,Kubernetes在部署方面提供HPA . 根据docs:
Horizontal Pod Autoscaling根据观察到的CPU利用率自动调整复制控制器,部署或副本集中的pod数
Google Cloud Container Cluster
现在,我有一个使用3个实例的Google Cloud Container Cluster,并启用了自动调节功能 . 根据docs:
Cluster Autoscaler使用户能够自动调整群集大小,以便所有计划的pod都有一个可以运行的位置 .
这意味着我有两个地方来定义我的自动缩放 . 因此我的问题:
-
Pod是否与我的群集中的VM实例相同,或者可以在单个VM实例中运行多个Pod?
-
这两个参数是否相同(即在我的集群中创建/删除VM实例) . 如果没有,他们的行为相互比较是什么?
-
如果发生以下情况会怎样我在
3
和10
之间有一些pod,并且在1
和3
之间有一个实例数量的集群,并且自动缩放开始了 . 何时以及如何扩展?
非常感谢!
1 回答
多个Pod可以运行相同的实例(在kuberenetes中称为节点) . 您可以在部署yaml中定义要为POD使用的最大资源 . 见docs . 这是自动缩放的重要先决条件 .
Kubernetes autoscaler将在现有节点中安排其他POD . Google自动识译器会将工作节点(新实例)添加到您的群集中 . Google自动识别器查看无法调度的排队POD,因为群集中没有空间,并且当它发现这些将添加节点时 .
根据您为pod定义的最大资源使用量,google autoscaler将估算运行所有排队的计划pod所需的新节点数 .
另请阅读article .