すべてのプロダクト
Search
ドキュメントセンター

:v1.12 へのアップグレード前の metrics-server のアップグレード

最終更新日:Jun 23, 2026

クラスターを v1.12 にアップグレードする前に、metrics-server コンポーネントをアップグレードする必要があります。アップグレードプロセスは、メトリックコレクターの切り替え、モニタリングリンクの切り替え、互換性のためのコンポーネント調整の 3 つのステップで構成されます。

前提条件

v1.12.6 以前を実行している Container Service for Kubernetes (ACK) 専用クラスターがあること。

メトリックコレクターの切り替え

次の内容で 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## をリージョン ID (例:中国 (杭州) の場合は cn-hangzhou) に、##CLUSTER_ID## をご利用のクラスター ID に置き換えてください。

モニタリングリンクの切り替え

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、ノード > ノード をクリックします。

  3. クラスターの 3 つのマスターノードを見つけます。マスターノードのインスタンス ID をクリックします。

  4. インスタンスの詳細 ページで、リモート接続 をクリックします。

    リモート接続ウィンドウで、リモート接続パスワードを入力し、OK をクリックします。ログイン後、次のコマンドを実行します:

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

    [コマンドのコピーと貼り付け] ダイアログボックスで、コマンドを貼り付けて [OK] をクリックします。

  5. 他の 2 つのマスターノードでこの手順を繰り返します。

コマンドを実行すると、kubelet が自動的に再起動し、kube-controller-manager コンポーネントが更新されます。

互換性のためのコンポーネント調整

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、クラスターの名前をクリックします。 左側のナビゲーションウィンドウで、ネットワーク > サービス をクリックします。

  3. 名前空間 ドロップダウンリストから kube-system を選択します。heapster Service を見つけ、アクション 列の YAML の表示 をクリックします。

  4. 表示されたダイアログボックスで、selector セクションの k8s-app の値を metrics-server に変更します。更新 をクリックします。

    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. クラスター管理ページの左側のナビゲーションウィンドウで、ワークロード > 展開 を選択します。

  6. デプロイメント ページで、名前空間 ドロップダウンリストから kube-system を選択します。

  7. heapster および monitoring-influxdb コンポーネントを選択し、操作 列で 詳細 > 削除 を選択します。

  8. 表示されたダイアログボックスで、OK をクリックします。

    説明

    monitoring-influxdb コンポーネントを削除する際、[monitoring-influxdb の削除] ダイアログボックスで [関連付けられた monitoring-influxdb Service を削除] チェックボックスを選択し、OK をクリックします。

  9. モニタリングリンクの切り替えを検証します。

    モニタリングリンクが初期化されるまで約 3 分間待ちます。

    左側のナビゲーションウィンドウで、ワークロード > ポッド を選択します。ポッド ページで、[CPU] 列と [メモリ] 列に値が表示されていれば、モニタリングリンクの切り替えは成功です。

    説明

    すべてのコンポーネントの CPU とメモリの値が 0 の場合は、エラーを示しています。