是否有可能在其他pod下降时将pod缩小到0个副本?我熟悉水平自动缩放概念的基础知识,但据我所知,它只在资源需求(CPU、内存)发生变化时向上或向下缩放pod。我的CI管道遵循绿色/蓝色模式,因此当部署新版本的应用程序时,第二个应用程序将缩减到0个副本,从而使属于同一环境的其他pod浪费资源。你知道如何使用kubernetes或helm特性来解决这个问题吗?
感谢如果您有CI您可以运行kubectl命令并在部署蓝绿色之前缩减部署规模,这样就不会浪费资源。
但是,你可以将向上/向下缩放基于自定义度量的部署或应用程序。
我建议你检查Cloud-native项目Keda: https://keda.sh/
科达:
KEDA是一个基于kubernetes的事件驱动自动缩放器。有了KEDA,你就能做到在Kubernetes中,基于这个数字驱动任何容器的扩展需要处理的事件。
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
name: {scaled-object-name}
spec:
scaleTargetRef:
deploymentName: {deployment-name} # must be in the same namespace as the ScaledObject
containerName: {container-name} #Optional. Default: deployment.spec.template.spec.containers[0]
pollingInterval: 30 # Optional. Default: 30 seconds
cooldownPeriod: 300 # Optional. Default: 300 seconds
minReplicaCount: 0 # Optional. Default: 0
maxReplicaCount: 100 # Optional. Default: 100
triggers:
# {list of triggers to activate the deployment}
缩放对象ref: https://keda.sh/docs/1.4/concepts/scaling-deployments/#scaledobject-spec