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

Container Service for Kubernetes:FlexVolumeのインストールとアップグレード

最終更新日:Dec 09, 2024

1.16より前のKubernetesを実行するContainer Service for Kubernetes (ACK) クラスターのボリュームプラグインとしてFlexVolumeを指定した場合、システムは自動的にFlexVolumeとDisk Controllerをクラスターにインストールします。 ただし、システムは自動的にalicloud-nas-controllerをインストールしません。 このトピックでは、FlexVolumeをインストールおよびアップグレードする方法、およびalicloud-nas-controllerをインストールする方法について説明します。

前提条件

注意事項

alicloud-nas-controllerがクラスターにデプロイされている場合、Kubernetesバージョンのクラスターを1.20にアップグレードする前に、alicloud-nas-controllerのイメージバージョンをv1.14.8.17-7b898e5-aliyun以降にアップグレードする必要があります。

説明

Alibaba Cloudが提供するalicloud-nas-controllerの代わりにnfs-provisionerなどのオープンソースバージョンを使用する場合、selfLinkの問題を回避するためにオープンソースコミュニティでソリューションを見つける必要があります。

制限事項

CentOS 7およびAlibaba Cloud Linux 2オペレーティングシステムのみがサポートされています。

コンポーネントのインストール

FlexVolumeのインストール

  • Kubernetes 1.16以降を実行するクラスターは、FlexVolumeをサポートしていません。 これらのクラスターにCSI-Pluginをインストールする必要があります。 詳細については、「CSIの概要」をご参照ください。

  • 1.16より前のKubernetesを実行するACKクラスターのボリュームプラグインとしてFlexVolumeを指定した場合、システムは自動的にFlexVolumeをクラスターにインストールします。 詳細は、「コンポーネント設定」をご参照ください。

ディスクコントローラのインストール

  • ACK 1.16以降のクラスタはディスクコントローラをサポートしていません。 これらのクラスターにCSI-Provisionerをインストールする必要があります。 詳細については、「CSIの概要」をご参照ください。

  • 1.16より前のKubernetesを実行するACKクラスターのボリュームプラグインとしてFlexVolumeを指定した場合、システムは自動的にディスクコントローラーをクラスターにインストールします。 詳細は、「コンポーネント設定」をご参照ください。

alicloud-nas-controllerのインストール

FlexVolumeがクラスターにインストールされている場合、alicloud-nas-controllerを手動でインストールし、Apsara File Storage NAS (NAS) ファイルシステムを使用するボリュームを動的にプロビジョニングできます。

次のYAMLテンプレートを使用して、alicloud-nas-controllerを手動でインストールできます。

kind: Deployment
apiVersion: apps/v1
metadata:
  name: alicloud-nas-controller
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: alicloud-nas-controller
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: alicloud-nas-controller
    spec:
      tolerations:
      - operator: Exists
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: node-role.kubernetes.io/master
                operator: Exists
      priorityClassName: system-node-critical
      serviceAccount: admin
      hostNetwork: true
      containers:
        - name: nfs-provisioner
          image: registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.14.8.17-7b898e5-aliyun
          env:
          - name: PROVISIONER_NAME
            value: alicloud/nas
          securityContext:
            privileged: true
          volumeMounts:
          - mountPath: /var/log
            name: log
      volumes:
      - hostPath:
          path: /var/log
        name: log

インストールの確認

FlexVolume、ディスクコントローラー、およびalicloud-nas-Controllerがクラスターにインストールされているかどうかを確認します。

  • 次のコマンドを実行して、FlexVolumeがクラスターにインストールされているかどうかを確認します。

    kubectl get pod -nkube-system | grep flexvolume
  • 次のコマンドを実行して、ディスクコントローラーがクラスターにインストールされているかどうかを確認します。

    kubectl get pod -nkube-system | grep alicloud-disk-controller
  • 次のコマンドを実行して、alicloud-nas-controllerがクラスターにインストールされているかどうかを確認します。

    kubectl get pod -nkube-system | grep alicloud-nas-controller

コンポーネントのアップグレード

ACKコンソールでFlexVolumeとディスクコントローラをアップグレードできます。 ACKコンソールでalicloud-nas-controllerをアップグレードすることはできません。

ACKクラスターのKubernetesバージョンが1.16以降にアップグレードされた場合でも、クラスターはFlexVolumeをサポートします。 ACKコンソールでFlexVolumeをアップグレードできます。

  1. ACKコンソールにログインします。

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

  3. [クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。

  4. 詳細ページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  5. [ストレージ] タブをクリックし、[flexvolume][alicloud-disk-controller] を見つけ、[アップグレード] をクリックします。

  6. [Note] メッセージで、プラグインのバージョンを確認し、[OK] をクリックします。

    プラグインがアップグレードされると、アップグレードが完了し、プラグインの現在のバージョンが表示されます。

  • 次のシナリオでFlexVolumeをアップグレードする場合、チケットを送信 テクニカルサポートを要求するため。

    • ACKコンソールでFlexVolumeの更新に失敗しました。

    • FlexVolumeのバージョンが1.12以前で、ディスクとObject Storage Service (OSS) バケットを使用するボリュームがクラスターにプロビジョニングされています。

    • 機密性の高いビジネスデータがクラスターに保存され、大量のボリュームが使用されるため、アップグレードを確実に成功させる必要があります。

  • システムがディスクコントローラのアップグレードに失敗しました。 この場合、テクニカルサポートを要求するためチケットを送信