繁体   English   中英

(Kubernetes EKS) - 指标服务器不可用

[英](Kubernetes EKS) - metrics-server not available

我正在尝试为我的 1.13 EKS 集群中的 Pod 启用自动缩放策略。 我遇到了同样的问题,即度量服务器永远不可用。

kubectl get deployment metrics-server -n kube-system
NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
metrics-server   1         1         1            0           9s

我已经在我自己的机器上克隆了必要的 repo,然后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

找出问题所在,如果您最终遇到与我相同的问题,请按照以下过程:将 metrics-server 与部署中的那些一起部署:

- 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"

应该是这样!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM