我们有使用Autoscaling/v2beta1
API 运行的 pod。为了利用基于自定义指标的 HPA,我们希望将其Autoscaling/v2beta2
用于一些 pod。由于还有一些其他的 Pod 不急于升级,我们希望将它们留Autoscaling/v2beta1
在同一个集群的 yaml 中。我认为这应该没有问题。像这样使用它有什么陷阱吗?
问问题
59 次
2 回答
0
一般来说, Harsh Manvar已经回答了您的问题。我将添加更多细节和关注点。
回答您的问题HorizontalPodAutoscaler
:是的,您可以在 yamls中使用不同的 API 版本。然而,它很有可能会以低效的支持和更高的错误机会告终。我建议将所有内容移至v2beta2
(最后一点是关于v2beta1
将来的弃用和删除)。
下一点是,例如,如果您错误地将不同的 HPA 应用于一个部署,它们将并行工作并以相同的方式做出反应(这是 CPU 目标设置相同时)。请看下面的例子。(但请记住,这是一个简单的示例,如果它有很多指标,它可能会无法预测)
hpa.yaml
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: php-apache2
namespace: default
spec:
maxReplicas: 10
metrics:
- resource:
name: cpu
targetAverageUtilization: 50
type: Resource
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
---
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
namespace: default
spec:
maxReplicas: 10
metrics:
- resource:
name: cpu
target:
averageUtilization: 50
type: Utilization
type: Resource
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
输出kubectl get hpa --watch
:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
php-apache Deployment/php-apache 0%/50% 1 10 1 2m28s
php-apache2 Deployment/php-apache 0%/50% 1 10 1 2m28s
php-apache2 Deployment/php-apache 251%/50% 1 10 1 4m16s
php-apache Deployment/php-apache 251%/50% 1 10 4 4m16s
php-apache2 Deployment/php-apache 251%/50% 1 10 6 4m31s
php-apache Deployment/php-apache 251%/50% 1 10 6 4m31s
php-apache2 Deployment/php-apache 52%/50% 1 10 6 5m16s
php-apache Deployment/php-apache 52%/50% 1 10 6 5m16s
php-apache2 Deployment/php-apache 54%/50% 1 10 6 6m16s
php-apache Deployment/php-apache 54%/50% 1 10 6 6m16s
php-apache2 Deployment/php-apache 56%/50% 1 10 6 7m16s
php-apache Deployment/php-apache 56%/50% 1 10 7 7m16s
php-apache2 Deployment/php-apache 56%/50% 1 10 7 7m31s
php-apache2 Deployment/php-apache 46%/50% 1 10 7 8m16s
php-apache Deployment/php-apache 46%/50% 1 10 7 8m16s
php-apache2 Deployment/php-apache 43%/50% 1 10 7 9m17s
php-apache Deployment/php-apache 43%/50% 1 10 7 9m17s
php-apache2 Deployment/php-apache 36%/50% 1 10 7 10m
php-apache Deployment/php-apache 36%/50% 1 10 7 10m
php-apache2 Deployment/php-apache 0%/50% 1 10 7 11m
php-apache Deployment/php-apache 0%/50% 1 10 7 11m
php-apache2 Deployment/php-apache 0%/50% 1 10 7 15m
php-apache Deployment/php-apache 0%/50% 1 10 6 15m
php-apache2 Deployment/php-apache 0%/50% 1 10 6 15m
php-apache Deployment/php-apache 0%/50% 1 10 1 17m
php-apache2 Deployment/php-apache 0%/50% 1 10 1 17m
最后一点计划v2beta1
在 1.19 中被弃用,以支持v2beta2
. 现在它被重新安排在 1.25 中删除。您可以在此拉取请求中检查它
于 2021-05-24T14:38:06.653 回答
0
是的,不会有任何问题,但在同一部署上或为同一 POD 创建不同的 HPA 可能会产生判断问题。
否则,如果存在自定义指标要求,则使用 HPA 的不同 API 版本将起作用。
于 2021-05-20T04:55:32.013 回答