k8s 1.14部署metrics server顯示running但是報ServiceUnavailable錯誤

k8s 1.14部署metrics server顯示running但是報ServiceUnavailable錯誤

查看metrics server日誌:
[root@master metrics-server-latest]# kubectl logs -f metrics-server-v0.3.6-b59d6b7cb-9ftdf -nkube-system metrics-server
I0514 03:15:00.325762       1 serving.go:312] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
I0514 03:15:04.924172       1 secure_serving.go:116] Serving securely on [::]:443
從日誌看沒有任何異常,但是執行[root@master ~]# kubectl top nodes時報如下錯誤,獲取不到指標數據
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)

找了很久的資料也沒解決,後來看一github上一個大牛最終解決了。具體鏈接https://github.com/kubernetes-sigs/metrics-server/issues/157
整個過程的配置文件如下(注意帶#的說明是修改的部分)

  • metrics-server-deployment.yaml
      hostNetwork: true #增加
      containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.6
        command:
        - /metrics-server
        - --metric-resolution=30s
        - --requestheader-allowed-names=aggregator#增加修改
        # These are needed for GKE, which doesn't support secure communication yet.
        # Remove these lines for non-GKE clusters, and when GKE supports token-based auth.
        #- --kubelet-port=10255#註釋
        #- --deprecated-kubelet-completely-insecure=true#註釋
        - --kubelet-insecure-tls#增加
        - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
        ports:
        - containerPort: 443
          name: https
          protocol: TCP
      - name: metrics-server-nanny
        image: k8s.gcr.io/addon-resizer:1.8.7
        resources:
          limits:
            cpu: 100m
            memory: 300Mi
          requests:
            cpu: 5m
            memory: 50Mi
        env:
          - name: MY_POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: MY_POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
        volumeMounts:
        - name: metrics-server-config-volume
          mountPath: /etc/config
        command:
          - /pod_nanny
          - --config-dir=/etc/config
          #- --cpu={{ base_metrics_server_cpu }}#註釋
          - --cpu=80m#增加
          - --extra-cpu=0.5m
          #- --storage=5Gi
          #- --memory={{ base_metrics_server_memory }}#註釋
          - --memory=100Mi#增加
          #- --extra-memory={{ metrics_server_memory_per_node }}Mi#註釋
          - --extra-memory=100Mi#修改
          - --threshold=5
          - --deployment=metrics-server-v0.3.6
          - --container=metrics-server
          - --poll-period=300000
          - --estimator=exponential
          # Specifies the smallest cluster (defined in number of nodes)
          # resources will be scaled to.
          #- --minClusterSize=2#註釋
  • resource-reader.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: system:metrics-server
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - nodes
  - nodes/stats#增加
  - namespaces
  • 更新kubectl apply -f .後再次查看,正常了
[root@master manifests]# kubectl top nodes
NAME      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master    252m         6%     978Mi           12%       
worker1   49m          1%     1442Mi          54%       
worker2   47m          1%     1380Mi          51%       
worker3   46m          1%     1232Mi          46% 
個人博客地址:http://www.lampnick.com/php/921
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章