【发布时间】:2021-10-08 01:47:30
【问题描述】:
我们使用的是 AKS 版本 1.19.11。
我们注意到,每当为我们的部署进行新的部署或作为 hpa 设置的一部分创建新的 Pod 或重新启动 Pod 时,我们都会收到 CPU 使用率过高的警报。
例如,-如果作为上述任何活动的一部分创建了一个新 pod,这会占用比允许的阈值更多的 CPU 吗? [ 部署规范中指定的 1 个核心的“最大限制”,应用程序重量轻,不需要太多 cpu anuyways ] ?反过来,它会在短时间内使 AzureMonitor 突然飙升,然后恢复正常。
为什么 pod 在启动或创建期间占用更多 CPU? 如果 pod 没有使用那么多 cpu,那么重复问题的原因是什么?
hpa 设置如下
Name: myapp
Namespace: myapp
Labels: app.kubernetes.io/managed-by=Helm
Annotations: meta.helm.sh/release-name: myapp
meta.helm.sh/release-namespace: myapp
CreationTimestamp: Mon, 26 Apr 2021 07:02:32 +0000
Reference: Deployment/myapp
Metrics: ( current / target )
resource cpu on pods (as a percentage of request): 5% (17m) / 75%
Min replicas: 5
Max replicas: 12
Deployment pods: 1 current / 1 desired
Conditions:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True ReadyForNewScale recommended size matches current size
ScalingActive True ValidMetricFound the HPA was able to successfully calculate a replica count from cpu resource utilization (percentage of request)
ScalingLimited False DesiredWithinRange the desired count is within the acceptable range
在放置新的部署时添加事件。
根据从“myapp”命名空间中捕获的事件,为 myapp 推出了新的部署,如下所示。
在创建新的 pod 期间,它显示出更多的 CPU 峰值,因为我们从 Azuremonitor 收到警报,表明它超过了 80% 的阈值。[部署规范中指定的 1 个核心的“最大限制”]
30m Normal SuccessfulDelete replicaset/myapp-1a2b3c4d5e Deleted pod: myapp-1a2b3c4d5e-9fmrk
30m Normal SuccessfulDelete replicaset/myapp-1a2b3c4d5e Deleted pod: myapp-1a2b3c4d5e-hfr8w
29m Normal SuccessfulDelete replicaset/myapp-1a2b3c4d5e Deleted pod: myapp-1a2b3c4d5e-l2pnd
31m Normal ScalingReplicaSet deployment/myapp Scaled up replica set myapp-5ddc98fb69 to 1
30m Normal ScalingReplicaSet deployment/myapp Scaled down replica set myapp-1a2b3c4d5e to 2
30m Normal ScalingReplicaSet deployment/myapp Scaled up replica set myapp-5ddc98fb69 to 2
30m Normal ScalingReplicaSet deployment/myapp Scaled down replica set myapp-1a2b3c4d5e to 1
30m Normal ScalingReplicaSet deployment/myapp Scaled up replica set myapp-5ddc98fb69 to 3
29m Normal ScalingReplicaSet deployment/myapp Scaled down replica set myapp-1a2b3c4d5e to 0
警报设置
Period Over the last 15 mins
Value 100.274747
Operator GreaterThan
Threshold 80
【问题讨论】:
-
您能否在应用新部署后粘贴
kubectl get hpa myappEvents:部分的输出? -
添加了新发布时的事件。我们再次收到高 CPU 使用率警报。当 pod 自动缩放也发生时,它也会发生
-
您能否检查
kubectl describe hpa myapp、Events:的输出,您是否有类似:New size: 9; reason: cpu resource utilization (percentage of request) above target的内容?不确定您使用的是哪个 Azure 监控解决方案,但如果是一些标准的 pod / 容器监控,则它没有使用 HPA 作为信息源(检查此docs.microsoft.com/en-us/azure/aks/monitor-aks),因此问题与 HPA 无关。跨度> -
你也可以在部署过程中尝试在不同的终端运行
watch -n 1 kubectl top pods --sort-by=cpu,也许会在这里得到一些有趣的东西。
标签: kubernetes azure-aks kubernetes-pod