我使用的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
服务,HPA,部署所有部署成功,但当我检查hpa(kubectl得到hpa)我得到低于结果
NAME REFERENCE TARGETS MINPODS
MAXPODS REPLICAS AGE
xxxxxx Deployment/my-xxx unknown/500Mi, 1%/50% 1 3 3 69m
我得到的原因(kubectl描述hpa)是
警告FailedComputeMetricsReplicas 21m(x4超过22m)horizontal-pod-autoscaler无法获得内存利用率:缺少内存请求
可能是内存未知但CPU工作的原因
1 回答
原因如下:
默认情况下,Kubernetes HPA不能使用您需要为内存创建自定义指标然后使用它的内存 . 我发现了一些其他信息here人们如何尝试解决同样的问题 .