我不明白为什么我的水平pod自动调节器无法从我的部署中读取CPU使用率统计信息。
关于我的环境:
以下是有效HPA的列表:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
api Deployment/api <unknown> / 70% 2 5 0 5h
web Deployment/web 0% / 70% 2 5 2 22h
正如您所看到的,只有一个HPA可以检测到部署的资源使用情况。
web
部署(有效的部署):
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: web
name: web
namespace: default
spec:
replicas: 1
selector:
matchLabels:
name: web
template:
metadata:
labels:
name: web
spec:
containers:
- image: <private repository image path>
imagePullPolicy: IfNotPresent
name: node
ports:
- containerPort: 3000
protocol: TCP
resources:
limits:
cpu: 200m
memory: 200M
requests:
cpu: 200m
memory: 200M
不起作用的api部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: api
name: api
namespace: default
spec:
replicas: 1
selector:
matchLabels:
name: api
template:
metadata:
labels:
app: api
spec:
containers:
image: <private repository image path>
imagePullPolicy: IfNotPresent
name: node
ports:
- containerPort: 3000
protocol: TCP
resources:
limits:
cpu: 250m
memory: 200M
requests:
cpu: 250m
memory: 200M
网络HPA(有效的):
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: web
namespace: default
spec:
maxReplicas: 5
minReplicas: 2
scaleTargetRef:
apiVersion: apps/v1beta1
kind: Deployment
name: web
targetCPUUtilizationPercentage: 70
api HPA(不起作用的那个):
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: api
namespace: default
spec:
maxReplicas: 5
minReplicas: 2
scaleTargetRef:
apiVersion: apps/v1beta2
kind: Deployment
name: api
targetCPUUtilizationPercentage: 70
正如您所看到的部署和hpa几乎完全相同,这就是为什么我无法弄清楚为什么只有两个中的一个有效。 任何帮助解决这个问题将非常感激
修改的
我只是试图删除工作的hpa并重新应用它,它也不起作用。这让我觉得这是heapster的一个问题。 我更新到最新的heapster版本(1.5.0),但仍然没有运气。
答案 0 :(得分:0)
原因可能是因为没有正在运行的广告:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
api Deployment/api <unknown> / 70% 2 5 0 5h
web Deployment/web 0% / 70% 2 5 2 22h
作为&#34; api&#34;的副本数量是零,这意味着应用程序没有运行和&#34; web&#34;它是两个。
尝试检查&#34; kubectl获取pod {namespace}&#34; 以便运行pod。
答案 1 :(得分:0)
通过重新启动kube-controller-manager pod,一切都开始工作了。