Tüm Ürünler
Search
Belge Merkezi

:Upgrade metrics-server before upgrading to v1.12

Son Güncelleme:Oct 06, 2026

Bir kümeyi v1.12 sürümüne yükseltmeden önce metrics-server bileşenini yükseltmeniz gerekir. Yükseltme süreci üç aşamadan oluşur: ölçüm toplayıcısını değiştirme, izleme bağlantısını değiştirme ve uyumluluk için bileşen ayarlarını düzenleme.

Ön koşullar

v1.12.6 veya daha eski bir sürümü çalıştıran bir ACK özel kümesine sahipsiniz.

Ölçüm toplayıcısını değiştirin

Aşağıdaki içeriğe sahip metrics-server.yaml adlı bir dosya oluşturun. Ardından, ölçüm toplayıcısını Heapster'dan metrics-server'a geçirmek için kubectl apply -f metrics-server.yaml komutunu çalıştırın.

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'
Not

##REGION## ifadesini bölge kimliğiyle (örneğin, Çin (Hangzhou) için cn-hangzhou) ve ##CLUSTER_ID## ifadesini küme kimliğinizle değiştirin.

İzleme bağlantısını değiştirin

  1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.

  2. Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde Nodes > Nodes yolunu izleyin.

  3. Kümenin üç ana düğümünü (master node) bulun. Bir ana düğümün örnek kimliğini tıklayın.

  4. Instance Details sayfasında Connect seçeneğini tıklayın.

    Uzak bağlantı penceresinde uzak bağlantı parolasını girin ve OK seçeneğini tıklayın. Oturum açtıktan sonra aşağıdaki komutu çalıştırın:

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

    Copy and Paste Command iletişim kutusunda komutu yapıştırın ve OK seçeneğini tıklayın.

  5. Bu prosedürü diğer iki ana düğümde de tekrarlayın.

Komutu yürüttükten sonra kubelet otomatik olarak yeniden başlar ve kube-controller-manager bileşenini günceller.

Bileşenleri uyumluluk için ayarlayın

  1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.

  2. Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde Network > Services yolunu izleyin.

  3. Namespace açılır listesinden kube-system öğesini seçin. heapster Hizmetini bulun ve Actions sütununda View in YAML seçeneğini tıklayın.

  4. Görüntülenen iletişim kutusunda selector bölümündeki k8s-app değerini metrics-server olarak değiştirin. Update seçeneğini tıklayın.

    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. Küme yönetimi sayfasının sol gezinme bölmesinde Workload > Deployments yolunu izleyin.

  6. Deployments sayfasında Namespace açılır listesinden kube-system öğesini seçin.

  7. heapster ve monitoring-influxdb bileşenlerini seçin ve Actions sütununda More > Delete yolunu izleyin.

  8. Görüntülenen iletişim kutusunda OK seçeneğini tıklayın.

    Not

    monitoring-influxdb bileşenini silerken Delete monitoring-influxdb iletişim kutusundaki Delete the associated monitoring-influxdb Service onay kutusunu seçin ve OK seçeneğini tıklayın.

  9. İzleme bağlantısı değişimini doğrulayın.

    İzleme bağlantısının başlatılması için yaklaşık 3 dakika bekleyin.

    Sol gezinme bölmesinde Workloads > Pods yolunu izleyin. Pods sayfasında CPU ve Memory sütunlarında değerler görüntüleniyorsa izleme bağlantısı değişikliği başarılı olmuştur.

    Not

    Tüm bileşenler için CPU ve Memory değerleri 0 ise bu bir hata olduğunu gösterir.