kubernetes1.16 配置 metrics-server


kubernetes1.16 版本對應最新的metrics-server為v0.3.5。

下載metrics-server配置文件

git clone https://github.com/kubernetes-incubator/metrics-server

kubernetes1.16 對應的文件再目錄metrics-server/deploy/1.8+下。

下載后還要修改配置文件metrics-server/deploy/1.8+/resource-reader.yaml

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: system:metrics-server
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - nodes
  - nodes/stats
  - namespaces ## 如果這行沒有請添加
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: system:metrics-server
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:metrics-server
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system

修改metrics-server/deploy/1.8+/metrics-server-deployment.yaml

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: metrics-server
  namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    k8s-app: metrics-server
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
  template:
    metadata:
      name: metrics-server
      labels:
        k8s-app: metrics-server
    spec:
      serviceAccountName: metrics-server
      volumes:
      # mount in tmp so we can safely use from-scratch images and/or read-only containers
      - name: tmp-dir
        emptyDir: {}
      containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.5
        command:
        - /metrics-server
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP # 如果不配置此項,會報錯找不到node
        imagePullPolicy: IfNotPresent    # 修改image拉取策略
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp

安裝metrics-server鏡像

注:如果你的主機可以訪問k8s.gcr.io就跳過這個步驟

因為國內用戶無法直接拉取k8s.gcr.io上的鏡像,解決的方法有幾種。這里選擇下載國內相同版本鏡像再修改鏡像的tag。

首先搜索鏡像:

[root@k8s-node2 ~]# docker search metrics-server-amd64
NAME                                          DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mirrorgooglecontainers/metrics-server-amd64                                                   14
...   

或者直接從https://hub.docker.com查找。

下載對應版本的鏡像

[root@k8s-node2 ~]# docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.5  

修改鏡像tag,並刪除原來的tag

[root@k8s-node2 ~]# docker tag docker.io/mirrorgooglecontainers/metrics-server-amd64:v0.3.5 k8s.gcr.io/metrics-server-amd64:v0.3.5
[root@k8s-node2 ~]# docker rmi docker.io/mirrorgooglecontainers/metrics-server-amd64:v0.3.5

安裝metrics-server

准備完成后就安裝metrics-server了:

[root@k8s-master 1.8+]# cd /root/metrics-server/deploy/1.8+/
[root@k8s-master 1.8+]# kubectl create -f .
[root@k8s-master 1.8+]# kubectl get pods -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
...
metrics-server-5cb6c5d66b-7979s      1/1     Running   0          83m

安裝完成后一段時間就可以看到以下的信息:

[root@k8s-master 1.8+]# kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
{"kind":"NodeMetricsList","apiVersion":"metrics.k8s.io/v1beta1","metadata":{"selfLink":"/apis/metrics.k8s.io/v1beta1/nodes"},"items":[{"metadata":{"name":"k8s-master","selfLink":"/apis/metrics.k8s.io/v1beta1/nodes/k8s-master","creationTimestamp":"2019-10-09T14:01:45Z"},"timestamp":"2019-10-09T14:01:43Z","window":"30s","usage":{"cpu":"142548542n","memory":"936912Ki"}},{"metadata":{"name":"k8s-node1","selfLink":"/apis/metrics.k8s.io/v1beta1/nodes/k8s-node1","creationTimestamp":"2019-10-09T14:01:45Z"},"timestamp":"2019-10-09T14:01:39Z","window":"30s","usage":{"cpu":"36929393n","memory":"442216Ki"}},{"metadata":{"name":"k8s-node2","selfLink":"/apis/metrics.k8s.io/v1beta1/nodes/k8s-node2","creationTimestamp":"2019-10-09T14:01:45Z"},"timestamp":"2019-10-09T14:01:38Z","window":"30s","usage":{"cpu":"32871811n","memory":"451752Ki"}}]}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM