このドキュメントは、Anthos clusters on bare metal を実行するアプリケーション オーナーとプラットフォーム管理者を対象としています。このドキュメントでは、Anthos VM ランタイムを使用する VM のストレージ クラスを作成し、使用する方法を説明します。StorageClass
では、VM のさまざまなニーズに応じて異なるストレージ構成を定義できます。
準備
このドキュメントの内容を最後まで行うには、Anthos clusters on bare metal バージョン 1.12.0(anthosBareMetalVersion: 1.12.0
)以降にアクセスする必要があります。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の Anthos clusters on bare metal を試すか、クラスタ作成の概要をご覧ください。
ストレージ クラスの概要
StorageClass
を使用して、VM で使用可能にするストレージのタイプを定義します。さまざまなストレージ クラスが、異なるタイプのストレージ ハードウェア、ファイル システム、パフォーマンスのものにマッピングされる場合があります。 ストレージ クラスを作成して使用すれば、Anthos VM ランタイムでコンピューティング ワークロードをサポートできます。詳しくは、ストレージ クラスをご覧ください。
デフォルトの StorageClass
は、Anthos VM ランタイムのカスタム リソースで定義できます。VirtualMachineDisks,
の作成時に特定のクラスを定義しない場合、このデフォルト StorageClass
が使用されます。初期の StorageClass
は構成されず、デフォルトに設定されています。次のセクションで、このデフォルトの StorageClass を設定または更新する方法を学習します。
デフォルトの StorageClass を設定または更新する
最初は、Anthos VM ランタイムがある Anthos clusters on bare metal には、デフォルトの StorageClass
が構成されていません。StorageClass
を指定せずに VirtualMachineDisk
を作成するには、まず StorageClass
を作成してから、デフォルトに設定する必要があります。
VirtualMachineDisk
の作成時に Anthos VM ランタイムが使用するデフォルトの StorageClass
を最初に設定または更新する場合は、VMRuntime
カスタム リソースを更新します。
VMRuntime
カスタム リソースを編集します。kubectl edit vmruntime
使用するデフォルトの
StorageClass
を指定するspec.storage
セクションを追加または更新します。apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true storage: defaultStorageClass: STORAGE_CLASS_NAME ...
STORAGE_CLASS_NAME
を、デフォルトで使用するStorageClass
の名前に編集します。まずStorageClass
を作成する必要がある場合は、StorageClass
の作成をご覧ください。VMRuntime
カスタム リソースをエディタに保存して閉じます。指定した
StorageClass
は、StorageClass
を指定せずに仮想マシンディスクを作成するときに使用されます。次のセクションでは、ディスクを作成して特定の StorageClass を使用する方法について説明します。既存の
VirtualMachineDisk
リソースは、新しく指定されたStorageClass
を使用するようには更新されません。
特定の StorageClass を使用する
VirtualMachineDisk
を作成する際にデフォルトの StorageClass
を使用しない場合は、storageClassName
フィールドを使用して別の StorageClass
を指定します。
VirtualMachineDisk
を作成する際に特定の定義済み StorageClass
を使用するには、次の手順を行います。
任意のエディタで、
VirtualMachineDisk
マニフェスト(my-disk.yaml
など)を作成します。nano my-disk.yaml
次の YAML マニフェストをコピーして貼り付けます。
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi storageClassName: STORAGE_CLASS_NAME
次の値を置き換えます。
DISK_NAME
: ディスクの名前。STORAGE_CLASS_NAME
: ディスクに使用するStorageClass
。このStorageClass
はすでに存在している必要があります。まずStorageClass
を作成する必要がある場合は、StorageClass の作成をご覧ください。
ディスク マニフェストをエディタに保存して閉じます。
kubectl
を使用してディスクを作成します。kubectl apply -f my-disk.yaml
ストレージ プロファイルを構成する
ストレージ プロファイルには、各 StorageClass
に関連付けられた追加の構成オプションが用意されています。これらの構成オプションには、StorageClass
を使用する VirtualMachineDisks
に使うアクセスモードとボリューム モードが含まれます。
ストレージ プロファイルが構成されていない場合、ディスクはデフォルトで ReadWriteOnce
アクセスモードに設定されます。ライブ マイグレーションなどの機能が動作しないため、本番環境のワークロードに対してこのアクセスモードは不十分です。ストレージ プロファイルが構成されていないデフォルトのボリューム モードは Filesystem
です。
Anthos VM ランタイムは、クラスタ内の StorageClass
ごとに 1 つのストレージ プロファイルを自動的に生成します。ストレージ プロファイルは、関連付けられている StorageClass
と同じ名前です。次の出力例は、クラスタに 4 つのストレージ クラスと関連するプロファイルが存在することを示しています。
$ kubectl get storageprofiles
NAME AGE
anthos-system 11d
node-disk 11d
standard 11d
nfs 11d
ストレージ プロファイルを編集してアクセスモードまたはボリューム モードを変更するには、次の手順を行います。
StorageProfile
カスタム リソースを編集します。kubectl edit storageprofile STORAGE_PROFILE_NAME
STORAGE_PROFILE_NAME
は、編集するStorageProfile
に置き換えます。StorageProfile
のspec.claimPropertySets
リストにエントリを 1 つ追加します。apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODE
accessMode
とvolumeMode
は、基盤となる Kubernetes コンポーネントを使用します。 設定する値は、使用するストレージ ドライバによって異なります。使用するストレージに応じて、次の値を置き換えます。ACCESS_MODE
: 使用するアクセス モード。関連するStorageClass
でサポートされている場合、優先アクセスモードはReadWriteMany
です。- 有効な値は
ReadWriteOnce
、ReadOnlyMany
、ReadWriteMany
、ReadWriteOncePod
などです。指定しない場合、Anthos VM ランタイムのデフォルトに基づいてReadWriteOnce
が使用されます。詳細については、アクセスモードをご覧ください。
- 有効な値は
VOLUME_MODE
: 使用するボリューム モード。- 有効な値は
Filesystem
、Block
などです。指定しない場合は、Kubernetes のデフォルトに基づいてFilesystem
が使用されます。詳細については、ボリューム モードをご覧ください。
- 有効な値は
StorageProfile
カスタム リソースをエディタに保存して閉じます。定義したストレージ プロファイルの設定は、仮想ディスクの作成時に使用されます。既存の
VirtualMachineDisk
リソースは、定義済みのストレージ プロファイル設定を使用するようには更新されません。