全部產品
Search
文件中心

:升級叢集至v1.12版本前升級metrics-server組件

更新時間:Jan 26, 2025

升級叢集至v1.12版本時,您需要同時升級metrics-server組件。metrics-server組件的升級分為三個部分:切換資料擷取組件、切換監控資料鏈路、變更組件相容適配。

前提條件

已有專有版Kubernetes叢集且叢集版本為v1.12.6及之前。

切換資料擷取組件

建立並拷貝內容到metrics-server.yaml檔案中,並執行kubectl apply -f metrics-server.yaml命令,將資料擷取組件從Heapster切換到metrics-server。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kube-system
---
apiVersion: v1
kind: Service
metadata:
  labels:
    task: monitoring
    # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
    # If you are NOT using this as an addon, you should comment out this line.
    kubernetes.io/cluster-service: 'true'
    kubernetes.io/name: metrics-server
  name: heapster
  namespace: kube-system
spec:
  ports:
  - port: 80
    targetPort: 8082
  selector:
    k8s-app: metrics-server
---
apiVersion: v1
kind: Service
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    kubernetes.io/name: metrics-server
spec:
  selector:
    k8s-app: metrics-server
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:
  name: v1beta1.metrics.k8s.io
spec:
  service:
    name: metrics-server
    namespace: kube-system
  group: metrics.k8s.io
  version: v1beta1
  insecureSkipTLSVerify: true
  groupPriorityMinimum: 100
  versionPriority: 100
---
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: admin
      containers:
      - name: metrics-server
        image: registry.##REGION##.aliyuncs.com/acs/metrics-server:v0.2.1-9dd9511-aliyun
        imagePullPolicy: Always
        command:
        - /metrics-server
        - '--source=kubernetes:https://kubernetes.default'
        - '--sink=socket:tcp://monitor.csk.##REGION##.aliyuncs.com:8093?clusterId=##CLUSTER_ID##
&public=true'
說明

您需要將##REGION####CLUSTER_ID##替換為所選叢集的地區名稱(例如,華東1:cn-hangzhou)與叢集ID。

切換監控資料鏈路

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點

  3. 找到叢集的三個Master節點。單擊Master節點的執行個體ID。

  4. 執行個體詳情頁面,單擊遠端連線

    在ECS執行個體遠端連線介面,根據頁面指導,輸入遠端連線密碼並單擊確定。登入成功後,輸入以下命令:

    sed -i 's/--horizontal-pod-autoscaler-use-rest-clients=false/--horizontal-pod-autoscaler-use-rest-clients=true/' /etc/kubernetes/manifests/kube-controller-manager.yaml                            

    切換鏈路2

  5. 重複步驟5-6,在另外兩個Master節點上執行該命令。

執行完畢後,kube-controller-manager組件會被kubelet自動拉起更新。

組件相容適配變更

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 服務

  3. 選擇目標命名空間kube-system,並單擊服務heapster右側操作列下的查看YAML

  4. 在彈出的對話方塊中,修改selector中k8s-app的值為metrics-server。單擊更新

    組件相容適配變更2

  5. 在叢集管理頁左側導覽列,選擇工作負載 > 無狀態

  6. 無狀態頁簽,選擇目標命名空間kube-system。

  7. 選擇Heapster相關組件(heapster和monitoring-influxdb),並單擊右側操作列下的更多 > 刪除

  8. 在彈出的對話方塊中,單擊確定,完成鏈路切換。

    說明

    刪除monitoring-influxdb組件時,在彈出的刪除monitoring-influxdb提示框中,勾選移除關聯的服務(Server)monitoring-influxdb,單擊確定

  9. 驗證鏈結路切換狀態。

    等待約3分鐘,資料鏈路會完成初始化。

    在叢集管理頁,單擊工作負載 > 容器組。在容器組頁面,如果CPU(核)與記憶體(位元組)顯示正常,則表示鏈路切換成功。

    說明

    所有組件的CPU和記憶體值均為0則表示異常。

    組件相容適配變更5