All Products
Search
Document Center

:Tingkatkan metrics-server sebelum melakukan upgrade ke v1.12

Last Updated:Jun 21, 2026

Sebelum melakukan upgrade kluster ke v1.12, Anda harus meningkatkan komponen metrics-server. Proses upgrade terdiri dari tiga bagian: mengganti collector metrik, mengganti tautan pemantauan, dan menyesuaikan pengaturan komponen agar kompatibel.

Prasyarat

Anda memiliki Cluster khusus ACK yang menjalankan v1.12.6 atau versi sebelumnya.

Ganti collector metrik

Buat file bernama metrics-server.yaml dengan konten berikut, lalu jalankan perintah kubectl apply -f metrics-server.yaml untuk mengganti collector metrik dari Heapster ke 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'
Catatan

Ganti ##REGION## dengan ID wilayah (misalnya, cn-hangzhou untuk China (Hangzhou)) dan ##CLUSTER_ID## dengan ID kluster Anda.

Ganti tautan pemantauan

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Nodes > Nodes.

  3. Temukan tiga node master kluster tersebut, lalu klik ID instans salah satu node master.

  4. Pada halaman Instance Details, klik Connect.

    Di jendela koneksi jarak jauh, masukkan password koneksi jarak jauh, lalu klik OK. Setelah login, jalankan perintah berikut:

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

    Di kotak dialog Copy and Paste Command, tempel perintah tersebut, lalu klik OK.

  5. Ulangi prosedur ini pada dua node master lainnya.

Setelah menjalankan perintah tersebut, kubelet akan secara otomatis restart dan memperbarui komponen kube-controller-manager.

Sesuaikan komponen agar kompatibel

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Network > Services.

  3. Dari daftar drop-down Namespace, pilih kube-system. Temukan layanan heapster, lalu klik View in YAML di kolom Actions.

  4. Di kotak dialog yang muncul, ubah nilai k8s-app pada bagian selector menjadi metrics-server, lalu klik Update.

    apiVersion: v1
    kind: Service
    metadata:
      creationTimestamp: '2019-01-14T09:38:56Z'
      name: heapster
      namespace: kube-system
      resourceVersion: '22030561'
      selfLink: /api/v1/namespaces/kube-system/services/heapster
      uid: 36b86a85-17e0-11e9-a14f-00163e06b896
    spec:
      clusterIP: xxx.xxx.xxx.xxx
      ports:
        - port: 80
          protocol: TCP
          targetPort: 8082
      selector:
        k8s-app: metrics-server
      sessionAffinity: None
      type: ClusterIP
    status:
      loadBalancer: {}
  5. Di panel navigasi kiri halaman manajemen kluster, pilih Workload > Deployments.

  6. Di halaman Deployments, dari daftar drop-down Namespace, pilih kube-system.

  7. Pilih komponen heapster dan monitoring-influxdb, lalu di kolom Actions, pilih More > Delete.

  8. Di kotak dialog yang muncul, klik OK.

    Catatan

    Saat menghapus komponen monitoring-influxdb, centang kotak pilihan Delete the associated monitoring-influxdb Service di kotak dialog Delete monitoring-influxdb, lalu klik OK.

  9. Verifikasi pergantian tautan pemantauan.

    Tunggu sekitar 3 menit hingga tautan pemantauan selesai diinisialisasi.

    Di panel navigasi kiri, pilih Workloads > Pods. Di halaman Pods, jika kolom CPU dan Memory menampilkan nilai, maka pergantian tautan pemantauan berhasil.

    Catatan

    Jika nilai CPU dan Memory untuk semua komponen adalah 0, hal tersebut menunjukkan adanya error.