Todos os produtos
Search
Central de documentação

:Upgrade metrics-server before upgrading to v1.12

Última atualização: Jun 27, 2026

Antes de atualizar um cluster para a v1.12, é obrigatório atualizar o componente metrics-server. Esse processo envolve três etapas: troca do coletor de métricas, alteração do link de monitoramento e ajuste das configurações dos componentes para garantir compatibilidade.

Pré-requisitos

Você possui um cluster dedicado ACK executando a versão v1.12.6 ou anterior.

Trocar o coletor de métricas

Crie um arquivo chamado metrics-server.yaml com o conteúdo abaixo. Em seguida, execute o comando kubectl apply -f metrics-server.yaml para substituir o coletor de métricas Heapster pelo 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'
Nota

Substitua ##REGION## pelo ID da região (por exemplo, cn-hangzhou para China (Hangzhou)) e ##CLUSTER_ID## pelo ID do seu cluster.

Alterar o link de monitoramento

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Nodes > Nodes.

  3. Localize os três nós mestres do cluster. Clique no ID da instância de um dos nós mestres.

  4. Na página Instance Details, clique em Connect.

    Na janela de conexão remota, insira a senha de conexão remota e clique em OK. Após fazer login, execute o seguinte comando:

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

    Na caixa de diálogo Copy and Paste Command, cole o comando e clique em OK.

  5. Repita este procedimento nos outros dois nós mestres.

Após a execução do comando, o kubelet reinicia automaticamente e atualiza o componente kube-controller-manager.

Ajustar componentes para compatibilidade

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Network > Services.

  3. Na lista suspensa Namespace, selecione kube-system. Localize o Service heapster e clique em View in YAML na coluna Actions.

  4. Na caixa de diálogo exibida, altere o valor de k8s-app na seção selector para metrics-server. Clique em 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. No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Workload > Deployments.

  6. Na página Deployments, selecione kube-system na lista suspensa Namespace.

  7. Selecione os componentes heapster e monitoring-influxdb e, na coluna Actions, escolha More > Delete.

  8. Na caixa de diálogo exibida, clique em OK.

    Nota

    Ao excluir o componente monitoring-influxdb, marque a caixa de seleção Delete the associated monitoring-influxdb Service na caixa de diálogo Delete monitoring-influxdb e clique em OK.

  9. Verifique a alteração do link de monitoramento.

    Aguarde cerca de 3 minutos para que o link de monitoramento seja inicializado.

    No painel de navegação à esquerda, escolha Workloads > Pods. Na página Pods, se as colunas CPU e Memory exibirem valores, a alteração do link de monitoramento foi bem-sucedida.

    Nota

    Caso os valores de CPU e Memory de todos os componentes estejam zerados, isso indica um erro.