Alibaba Cloudが提供するFlexVolumeプラグインを使用して、Apsara File Storage NAS (NAS) ファイルシステムをContainer Service for Kubernetes (ACK) クラスターにマウントできます。 このトピックでは、静的にプロビジョニングされたNASボリュームをマウントする方法について説明します。
前提条件
FlexVolumeは最新バージョンにアップグレードされました。 詳細については、「FlexVolumeのインストールとアップグレード」をご参照ください。
kubectlクライアントがクラスターに接続されています。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
背景情報
クラスタにFlexVolumeをインストールした後、永続ボリューム (PV) と永続ボリュームクレーム (PVC) を使用してNASファイルシステムをマウントできます。
注意事項
アプリケーションテンプレートでsecurityContext.fsgroupパラメーターが設定されている場合、ボリュームのマウント後にkubeletがchmod
またはchown
操作を実行するため、時間の消費が増加します。
securityContext.fsgroupパラメーターが設定されている場合のマウントプロセスを高速化する方法の詳細については、「NASボリュームのマウントに長時間かかるのはなぜですか」をご参照ください。
手順
PVとPVCを使用してNASファイルシステムをマウントできます。
PVを作成します。
ACKコンソールまたはYAMLファイルを使用してPVを作成できます。
YAM ファイルによる PV の作成
次のnas-pv.yamlファイルを使用してPVを作成します。
apiVersion: v1 kind: PersistentVolume metadata: name: pv-nas spec: capacity: storage: 5Gi storageClassName: nas accessModes: - ReadWriteMany flexVolume: driver: "alicloud/nas" options: server: "0cd8b4a576-u****.cn-hangzhou.nas.aliyuncs.com" path: "/k8s" vers: "3" options: "nolock,tcp,noresvport"
ACKコンソールでPVを作成します。
ACK コンソールにログインします。
ACK コンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけます。 次に、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。
クラスターの詳細ページの左側のナビゲーションウィンドウで、
を選択します。[ボリューム] ページで、ページの右上隅にある [作成] をクリックします。
[PVの作成] ダイアログボックスで、パラメーターを設定します。
パラメーター
説明
PVタイプ
この例では、NASが選択されています。
ボリューム名
作成するPVの名前。 ボリューム名はクラスター内で一意である必要があります。 この例では、pv-nasが使用されます。
ボリュームプラグイン
この例では、Flexvolumeが選択されています。
容量
作成するPVの容量。 PVの容量は、マウントするNASファイルシステムの容量を超えることはできません。
アクセスモード
デフォルト値: ReadWriteMany。
マウントターゲットドメイン名
NASファイルシステムをクラスターにマウントするために使用されるマウントターゲットのドメイン名。 NASファイルシステムのマウントターゲットを管理する方法の詳細については、「マウントターゲットの管理」をご参照ください。
サブディレクトリ
NASファイルシステムにサブディレクトリを入力します。 サブディレクトリはスラッシュ (/) で始まる必要があります。 このパラメーターが設定されている場合、PVは指定されたサブディレクトリにマウントされます。
指定されたサブディレクトリが存在しない場合、システムは自動的にNASファイルシステムにサブディレクトリを作成し、サブディレクトリをクラスターにマウントします。
このパラメーターを設定しない場合、NASファイルシステムのルートディレクトリがマウントされます。
Extreme NASファイルシステムのサブディレクトリを指定する場合、サブディレクトリは /shareで始まる必要があります。
権限
マウントされたディレクトリのアクセス権限。 たとえば、このパラメーターを 755、644 または 777 に設定できます。
説明アクセス権はサブディレクトリにのみ設定できます。
マウントされたディレクトリに大量のファイルが格納されている場合は、このパラメーターを設定しないことを推奨します。 そうしないと、chmodコマンドを実行するプロセスに過度の時間が必要になる可能性があります。
マウントされたディレクトリがサブディレクトリの場合、このパラメーターはオプションです。
このパラメーターを設定しない場合、マウントされたディレクトリに対する元の権限が使用されます。
権限を設定するときは、次の項目に注意してください。
V1.14.6.15-8d3b7e7-aliyunより前のバージョンのFlexVolumeでは、権限設定を構成するときに再帰モードを使用します。 マウントされたディレクトリの下にあるすべてのファイルとディレクトリに対する権限が変更されます。
FlexVolume V1.14.6.15-8d3b7e7-aliyun以降の場合、chmod (Change Mode) パラメーターを設定して権限設定を構成します。
chmod (変更モード)
アクセス権限の変更モード。 有効な値: 非再帰的および再帰的。
非再帰: アクセス許可の変更は、マウントされたディレクトリにのみ適用されます。 マウントされたディレクトリ内のサブディレクトリおよびファイルは影響を受けません。
再帰モード: アクセス許可の変更は、マウントされたディレクトリ、およびマウントされたディレクトリ内のサブディレクトリとファイルに適用されます。
説明多数のファイルが含まれるマウントディレクトリに対して再帰モードを選択した場合、chmodコマンドの実行に時間がかかりすぎることがあります。 マウントまたはマウント解除操作が失敗する場合があります。 このパラメーターを設定するときは注意してください。
バージョン
NFSプロトコルのバージョン。 NFSv3の使用を推奨します。 Extreme NASファイルシステムはNFSv3のみをサポートします。
ラベル
PVにラベルを追加します。
[作成] をクリックします。
PVCを作成します。
次のnas-pvc.yamlファイルを使用してPVCを作成します。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-nas spec: accessModes: - ReadWriteMany storageClassName: nas resources: requests: storage: 5Gi
ポッドを作成します。
次のnas-pod.yamlファイルを使用してポッドを作成します。
apiVersion: apps/v1 kind: Deployment metadata: name: nas-static labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 volumeMounts: - name: pvc-nas mountPath: /data volumes: - name: pvc-nas persistentVolumeClaim: claimName: pvc-nas