Kubernetes HPA运行原理详解
Kubernetes HPA 是指水平 Pod 自动伸缩器,它可以根据 CPU 支持的指标或响应 Kubernetes 内部或外部的自定义指标,自动调整 Pod 的数量来调整 Kubernetes 负载的状态。Kubernetes 是一种可移植、可扩展和开源的系统,由 Google 开发,现在得到 Cloud-native 计算基金会的支持,用于自动实施、扩展和支持堆栈应用程序,我们可以通过命令在 Kubernetes 中测试 HPA。
Kubernetes HPA 是什么?
正如上文所述,HPA 是指能够根据 CPU 工作负载中 Pod 数量的自动调整来自动调整 Kubernetes 工作负载形状的机制。因此,当我们将任务分配到 Kubernetes 集群时,可能不确定所需资源的要求,并且也不知道这些资源是如何转换的,HPA 有助于确保功能工作负载在各种状态下保持稳定,从而允许根据需求管理额外的容量。
HPA 可以根据实际资源使用情况、由 Kubernetes 中的集群对象描述的自定义指标以及服务于集群外部的外部指标,自动调整 Kubernetes 工作负载中的 Pod 数量。
当请求管道中存在许多请求时,我们的工作负载可能需要额外的 CPU。这时,我们必须根据队列的大小创建额外的度量标准,然后配置 HPA 以自动扩展 Pod,但当队列大小减小时,Pod 数量也会相应减少。
如何使用 Kubernetes HPA? Kubernetes 具有自动缩放功能,因此它可以缩放 Pod,并且还可以水平自动缩放基础架构,这可以通过资产来完成,而 HPA 就是 Kubernetes 的资产或资源。为了实现基本单元,Kubernetes 使用 Pod,并且 HPA 不能帮助将 Pod 转换为副本或实现,因为这完全取决于度量标准。
HPA 应用于以周期性方式管理循环,因此在每个周期中,管理器可以使用度量标准来管理查询,并且还可以获取来自源度量标准或其他度量标准的度量标准。
对于每个 Pod,源度量标准(例如 CPU)控制器从 HPA 给出的每个 Pod 的度量标准 API 中获取度量标准。如果设置了存在运行值,则控制器可以为每个 Pod 评估请求值。如果设置了目标原始值,则原始度量标准可以直接使用它,然后控制器可以搜索目标 Pod 的平均值,并使用其比率来转换所需的副本数量。
在开始使用Kubernetes HPA之前,我们需要确保我们已经安装了Google Kubernetes引擎API,并且还需要安装Cloud SDK。设置过程包括以下步骤:首先,我们需要将“gcloud”设置为默认选项,然后可以通过运行“gcloud init”来配置设置选项,然后通过运行“gcloud config”来设置ID、区域和地区。
Kubernetes HPA入门:
在使用Google云平台控制台时,我们可以通过API创建“HorizontalAutoScaler”对象。通过使用“kubect1”来查看有关HPA的信息,我们还可以定义自动缩放版本的API。其中,“apiversion1”是默认版本,允许我们根据CPU利用率自动缩放度量标准。而“apiversion2”则是由HPA对象生成的。
Kubernetes HPA的最佳实践:
确保所有Pod都指定了资源请求: CPU利用率是Kubernetes控制器的一部分,因此HPA可以做出缩放决策。利用率值可以根据每个Pod的资源请求百分比来确定。因此,最佳实践是确保为由HPA缩放的Kubernetes控制器的每个Pod的所有容器都确定了请求值。
安装度量服务器: 对于每个Pod,资源度量可以单独进行决策,它会还原度量API,度量API可以由度量服务器提供,因此最佳实践是在Kubernetes集群中启动度量服务器。
配置外部度量: 利用外部度量,它们也可以做出缩放决策。它有两个类别,即Pod度量和对象度量。Pod度量可以帮助辅助目标值的确定,目标平均值可以被确定。最佳实践是确保为Pod度量和对象度量使用正确的目标值类型。
自定义度量标准优于外部度量标准: 有两个选择可以选择,最佳实践是选择自定义度量标准,因为与自定义度量标准相比,外部度量标准的API可能需要进行多次尝试来修复。
配置冷却时间: HPA还可以测量度量的关键特性,这导致重复数量的变化,并且这是没有优势的。
结论: 在本文中,我们得出结论,Kubernetes具有HPA,可以确保每个Pod都具有资源请求,并且我们需要安装度量。我们可以选择讨论过的度量,也可以看到如何开始使用Kubernetes HPA。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!