1.16より前のKubernetesを実行するContainer Service for Kubernetes (ACK) クラスターのボリュームプラグインとしてFlexVolumeを指定した場合、システムは自動的にFlexVolumeとDisk Controllerをクラスターにインストールします。 ただし、システムは自動的にalicloud-nas-controllerをインストールしません。 このトピックでは、FlexVolumeをインストールおよびアップグレードする方法、およびalicloud-nas-controllerをインストールする方法について説明します。
前提条件
ACKクラスターが作成されます。 詳細については、「ACK管理クラスターの作成」をご参照ください。
ACKクラスターのボリュームプラグインとしてFlexVolumeが指定されています。
kubectlクライアントがクラスターに接続されています。 詳細については、「手順2: クラスター資格情報の種類の選択」をご参照ください。
注意事項
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をアップグレードできます。
ACKコンソールにログインします。
ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
[ストレージ] タブをクリックし、[flexvolume] と [alicloud-disk-controller] を見つけ、[アップグレード] をクリックします。
[Note] メッセージで、プラグインのバージョンを確認し、[OK] をクリックします。
プラグインがアップグレードされると、アップグレードが完了し、プラグインの現在のバージョンが表示されます。
次のシナリオでFlexVolumeをアップグレードする場合、チケットを送信 テクニカルサポートを要求するため。
ACKコンソールでFlexVolumeの更新に失敗しました。
FlexVolumeのバージョンが1.12以前で、ディスクとObject Storage Service (OSS) バケットを使用するボリュームがクラスターにプロビジョニングされています。
機密性の高いビジネスデータがクラスターに保存され、大量のボリュームが使用されるため、アップグレードを確実に成功させる必要があります。
システムがディスクコントローラのアップグレードに失敗しました。 この場合、テクニカルサポートを要求するためチケットを送信 。