Aja*_*ity 5 openshift autoscaling kubernetes
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/中的Kubernetes Horizontal Pod Autoscaler演练说明了我们可以对自定义指标执行自动缩放。我不了解的是何时使用两个API版本:v2beta1和v2beta2。如果有人能解释,我将非常感激。
提前致谢。
最初的指标自动缩放/ V2beta1不允许您基于自定义指标来缩放Pod。这仅允许您根据应用程序的使用CPU和扩展来扩展应用memory程序
第二个指标自动缩放/ V2beta2允许用户基于自定义指标自动缩放。它允许基于来自Kubernetes外部的指标进行自动缩放。此API中添加了新的外部指标来源。
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
Run Code Online (Sandbox Code Playgroud)
它将基于度量标准名称和标签选择器来标识要自动缩放的特定度量标准。这些指标可以来自任何地方,例如堆栈驱动程序或Prometheus监视应用程序,并且可以根据您想扩展应用程序的Prometheus的查询得出。
始终最好使用V2beta2api,因为它可以在CPU和内存以及自定义指标上进行缩放,而V2beta1 API仅可以在内部指标上进行缩放。
我在答案中提到的代码段表示如何在V2beta2API中指定目标CPU利用率
更新:v2beta1在 1.19 中已弃用,您应该v2beta2继续使用。
此外,在 1.18 中v2beta2添加了新的 api 字段spec.behavior,它允许您定义 pod 的缩放速度有多快或多慢。
最初,这两个版本在功能上是相同的,但具有不同的 API。
autoscaling/v2beta2 在 Kubernetes 1.12 版中发布,发行说明指出:
- 我们发布了 autoscaling/v2beta2,它清理和统一了 API
“清理和统一 API”指的是v2beta2始终使用MetricIdentifier和MetricTarget对象的事实:
spec:
metrics:
external:
metric: MetricIdentifier
target: MetricTarget
object:
describedObject: CrossVersionObjectReference
metric: MetricIdentifier
target: MetricTarget
pods:
metric: MetricIdentifier
target: MetricTarget
resource:
name: string
target: MetricTarget
type: string
Run Code Online (Sandbox Code Playgroud)
在 中v2beta1,这些字段具有完全不同的规范,这使得(在我看来)更难弄清楚如何使用。
Kubernetes 1.12 关于 v2beta1 字段的参考:
Kubernetes 1.12 关于 v2beta2 字段的参考:
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |