我使用的yaml如下所示
apiVersion: v1
kind: Service
metadata:
name: xxx-svc
labels:
app: xxxxxx
spec:
type: NodePort
ports:
- port: 8080
selector:
app: xxxxxx
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-xxx
labels:
app: xxxxxx
spec:
selector:
matchLabels:
app: xxxxxx
template:
metadata:
labels:
app: xxxxxx
spec:
containers:
- name: xxxxxx
image: yyy/xxxxxx:latest
ports:
- containerPort: 8080
resources:
requests:
cpu: "100m"
memory: "504Mi"
limits:
cpu: "100m"
memory: "504Mi"
---
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: xxxxxx
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-xxx
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
- type: Resource
resource:
name: memory
target:
type: Value
averageValue: 500Mi
Run Code Online (Sandbox Code Playgroud)
服务、HPA、部署一切都已成功部署,但是当我检查 hpa (kubectl get hpa) 时,我得到以下结果
NAME REFERENCE TARGETS MINPODS
MAXPODS REPLICAS AGE
xxxxxx Deployment/my-xxx unknown/500Mi, 1%/50% 1 3 3 69m
Run Code Online (Sandbox Code Playgroud)
我得到(kubectl描述hpa)的原因是
警告 FailedComputeMetricsReplicas 21m(x4 over 22m)horizontal-pod-autoscaler 无法获取内存利用率:缺少内存请求
内存未知但CPU正在工作可能是什么原因
这样做的原因:
\n\n\n\n\n警告 FailedComputeMetricsReplicas 21m(x4 超过 22m)\n 水平 Pod 自动缩放器无法获取内存利用率:缺少\n 内存请求
\n
默认情况下,Kubernetes HPA 不适用于内存,您需要为内存创建自定义指标,然后使用它。\n我在这里找到了一些其他信息,人们如何尝试解决相同的问题。
\n\n\n\n基于 Pod 内存的自动缩放
\n\n在本节中,我们将讨论如何根据 Pod 消耗的内存部署自动缩放。我们使用命令 \n \xe2\x80\x9c kubectl top pod \xe2\x80\x9d 来获取已使用的 Pod 内存并应用\n 逻辑。
\n\n\n
\n- 获取正在运行的 pod 的平均 pod 内存:执行脚本如下:
\n
| 归档时间: |
|
| 查看次数: |
6042 次 |
| 最近记录: |