(Kubernetes EKS) - 指标服务器不可用
(Kubernetes EKS) - metrics-server not available
我正在尝试为我的 1.13 EKS 集群中的 pods 启用自动缩放策略。我一直遇到同样的问题,即指标服务器永远不可用。
kubectl get deployment metrics-server -n kube-system
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
metrics-server 1 1 1 0 9s
我已经在我自己的机器上克隆了必要的存储库 kubectl apply -f deploy/1.8+
。
我也将这些行添加到部署中:
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
command:
- /metrics-server
- --metric-resolution=30s
- --requestheader-allowed-names=aggregator
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
我已经分别尝试了 args,然后命令部分,然后一起。我也从集群中删除了 heapster (kubectl delete -f this and that).
感谢您的帮助
编辑:当我 运行 kubectl describe deployment metrics-server -n kube-system
时,这是我看到的:
Name: metrics-server
Namespace: kube-system
CreationTimestamp: Fri, 22 Nov 2019 16:08:14 +0000
Labels: k8s-app=metrics-server
Annotations: deployment.kubernetes.io/revision: 1
kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"k8s-app":"metrics-server"},"name":"metrics-server","na...
Selector: k8s-app=metrics-server
Replicas: 1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: k8s-app=metrics-server
Service Account: metrics-server
Containers:
metrics-server:
Image: k8s.gcr.io/metrics-server-amd64:v0.3.6
Port: <none>
Host Port: <none>
Environment: <none>
Mounts:
/tmp from tmp-dir (rw)
Volumes:
tmp-dir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
Conditions:
Type Status Reason
---- ------ ------
Available False MinimumReplicasUnavailable
Progressing False ProgressDeadlineExceeded
OldReplicaSets: <none>
NewReplicaSet: metrics-server-6fbb7b8994 (1/1 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 10m deployment-controller Scaled up replica set metrics-server-6fbb7b8994 to 1
找出问题所在,如果你遇到和我一样的问题,步骤如下:
使用部署中的指标部署指标服务器:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.6
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
应用此 hpa
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: cpu-trial
namespace: trial
spec:
scaleTargetRef:
apiVersion: apps/v1beta1
kind: Deployment
name: cpu-trial
minReplicas: 3
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 85
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 85
在部署中应用这些行
image: #{image}
resources:
limits:
cpu: 200m
memory: "65Mi"
requests:
cpu: 100m
memory: "40Mi"
应该就是了!
我正在尝试为我的 1.13 EKS 集群中的 pods 启用自动缩放策略。我一直遇到同样的问题,即指标服务器永远不可用。
kubectl get deployment metrics-server -n kube-system
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
metrics-server 1 1 1 0 9s
我已经在我自己的机器上克隆了必要的存储库 kubectl apply -f deploy/1.8+
。
我也将这些行添加到部署中:
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
command:
- /metrics-server
- --metric-resolution=30s
- --requestheader-allowed-names=aggregator
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
我已经分别尝试了 args,然后命令部分,然后一起。我也从集群中删除了 heapster (kubectl delete -f this and that).
感谢您的帮助
编辑:当我 运行 kubectl describe deployment metrics-server -n kube-system
时,这是我看到的:
Name: metrics-server
Namespace: kube-system
CreationTimestamp: Fri, 22 Nov 2019 16:08:14 +0000
Labels: k8s-app=metrics-server
Annotations: deployment.kubernetes.io/revision: 1
kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"k8s-app":"metrics-server"},"name":"metrics-server","na...
Selector: k8s-app=metrics-server
Replicas: 1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: k8s-app=metrics-server
Service Account: metrics-server
Containers:
metrics-server:
Image: k8s.gcr.io/metrics-server-amd64:v0.3.6
Port: <none>
Host Port: <none>
Environment: <none>
Mounts:
/tmp from tmp-dir (rw)
Volumes:
tmp-dir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
Conditions:
Type Status Reason
---- ------ ------
Available False MinimumReplicasUnavailable
Progressing False ProgressDeadlineExceeded
OldReplicaSets: <none>
NewReplicaSet: metrics-server-6fbb7b8994 (1/1 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 10m deployment-controller Scaled up replica set metrics-server-6fbb7b8994 to 1
找出问题所在,如果你遇到和我一样的问题,步骤如下: 使用部署中的指标部署指标服务器:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.6
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
应用此 hpa
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: cpu-trial
namespace: trial
spec:
scaleTargetRef:
apiVersion: apps/v1beta1
kind: Deployment
name: cpu-trial
minReplicas: 3
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 85
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 85
在部署中应用这些行
image: #{image}
resources:
limits:
cpu: 200m
memory: "65Mi"
requests:
cpu: 100m
memory: "40Mi"
应该就是了!