【问题标题】:Create new pod when old pod dies or crossed threshold当旧 pod 死亡或超过阈值时创建新 pod
【发布时间】:2021-04-17 01:52:20
【问题描述】:
我是 Kubernetes 的新手,我正在对这些 pod 做一些解决方法。
我有 3 个 pod 在 3 个不同的节点上运行。其中一个 Pod 应用程序的使用量超过 90+,我想为此创建一个健康检查。
有什么方法可以在 Kubernetes 中创建健康检查吗?
如果我提到 80 CPU 的限制,Kubernetes 是否会创建新的 pod?
【问题讨论】:
标签:
linux
kubernetes
google-kubernetes-engine
load-balancing
azure-aks
【解决方案1】:
您需要 Horizontal Pod Autoscaler 来扩展 pod。有一个简单的guide 将引导您完成创建一个。以下是上述指南中的资源示例:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
【解决方案2】:
正如在下面的答案中提到的,您应该为该部署对象创建一个水平自动缩放器组件,kubernetes 指标服务器将持续监视每个 POD 的 CPU 利用率,并且一旦使用率超过阈值,即“averageUtilization: 50"(如下所述),那么一旦现有 pod 达到提供给它的 CPU 的 50%,就会生成一个新 pod。
这与运行状况检查不同,因为 pod 的运行状况决定是否在其上发送流量,即通过 liveness 和 readiness 探测。
确保在您创建的部署文件中提及 POD 的资源和限制,以便 HPA 可以获取 CPU 的参考值,用于计算利用率百分比。