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

:Kubernetesバージョンを1.12に更新する前に、metrics-serverコンポーネントを更新する

最終更新日:Jan 24, 2025

Kubernetesバージョンのクラスターを1.12に更新する前に、metrics-serverコンポーネントを更新する必要があります。 メトリクスサーバーコンポーネントを更新するには、次の手順を実行します。メトリクスコレクターの変更、モニタリングリンクの切り替え、コンポーネント設定の更新。

前提条件

Container Service for Kubernetes (ACK) 専用クラスターが作成され、クラスターのKubernetesバージョンは1.12.6以前です。

メトリックコレクターの変更

metrics-server.yamlファイルを作成し、次の内容をファイルにコピーします。 CLIで、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## を、選択したクラスターのリージョン (cn-hangzhouなど) およびIDにそれぞれ置き換えます。

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

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[ノード] > [ノード] を選択します。

  3. クラスター内のマスターノードを見つけます。 マスターノードのIDをクリックして、[インスタンスの詳細] ページに移動します。

  4. [基本情報] セクションで、[接続] をクリックします。

    [VNC パスワードの入力] ダイアログボックスが表示されます。 VNCパスワードを入力し、[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

    切换链路2

  5. 上記の手順を繰り返して、他のマスターノードの監視リンクを切り替えます。

コマンドの実行後、kubeletはコントローラマネージャを更新します。

コンポーネント設定の更新

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ネットワーク] > [サービス] を選択します。

  3. kube-system名前空間を選択します。 heapsterサービスを見つけ、サービスの [操作] 列で [YAMLで表示] をクリックします。

  4. 表示されるダイアログボックスで、k8s-appフィールドの値をmetrics-serverに設定します。 [更新] をクリックします。

    组件兼容适配变更2

  5. 詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイ] を選択します。

  6. [デプロイメント] タブで、kube-system名前空間を選択します。

  7. Heapsterやmonitoring-influxdbなどのheapster関連コンポーネントを選択します。 [操作] 列で、[詳細] > [削除] を選択します。

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

    説明

    monitoring-influxdbコンポーネントを削除するには、[モニタリング-influxdbの削除] ダイアログボックスで、[関連するmonitoring-influxdbサービスの削除] を選択し、[OK] をクリックします。

  9. リンクの状態を確認します。

    リンクの初期化には約3分かかります。

    左側のナビゲーションウィンドウで、[ワークロード] > [ポッド] を選択します。 [ポッド] ページで、CPUとメモリの使用率が正常であれば、リンクが切り替えられていることを示します。

    説明

    すべてのコンポーネントのCPUおよびメモリ使用率がゼロの場合、エラーが発生したことを示します。