Anthos VM ランタイムでストレージ クラスを作成して使用する

このドキュメントは、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 カスタム リソースを更新します。

  1. VMRuntime カスタム リソースを編集します。

    kubectl edit vmruntime
    
  2. 使用するデフォルトの 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 の作成をご覧ください。

  3. VMRuntime カスタム リソースをエディタに保存して閉じます。

    指定した StorageClass は、StorageClass を指定せずに仮想マシンディスクを作成するときに使用されます。次のセクションでは、ディスクを作成して特定の StorageClass を使用する方法について説明します。

    既存の VirtualMachineDisk リソースは、新しく指定された StorageClass を使用するようには更新されません。

特定の StorageClass を使用する

VirtualMachineDisk を作成する際にデフォルトの StorageClass を使用しない場合は、storageClassName フィールドを使用して別の StorageClass を指定します。

VirtualMachineDisk を作成する際に特定の定義済み StorageClass を使用するには、次の手順を行います。

  1. 任意のエディタで、VirtualMachineDisk マニフェスト(my-disk.yaml など)を作成します。

    nano my-disk.yaml
    
  2. 次の 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 の作成をご覧ください。
  3. ディスク マニフェストをエディタに保存して閉じます。

  4. 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

ストレージ プロファイルを編集してアクセスモードまたはボリューム モードを変更するには、次の手順を行います。

  1. StorageProfile カスタム リソースを編集します。

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    STORAGE_PROFILE_NAME は、編集する StorageProfile に置き換えます。

  2. StorageProfilespec.claimPropertySets リストにエントリを 1 つ追加します。

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: nfs
    spec:
      claimPropertySets:
      - accessModes:
        - ACCESS_MODE
        volumeMode: VOLUME_MODE
    

    accessModevolumeMode は、基盤となる Kubernetes コンポーネントを使用します。 設定する値は、使用するストレージ ドライバによって異なります。使用するストレージに応じて、次の値を置き換えます。

    • ACCESS_MODE: 使用するアクセス モード。関連する StorageClass でサポートされている場合、優先アクセスモードは ReadWriteMany です。
      • 有効な値は ReadWriteOnceReadOnlyManyReadWriteManyReadWriteOncePod などです。指定しない場合、Anthos VM ランタイムのデフォルトに基づいて ReadWriteOnce が使用されます。詳細については、アクセスモードをご覧ください。
    • VOLUME_MODE: 使用するボリューム モード。
      • 有効な値は FilesystemBlock などです。指定しない場合は、Kubernetes のデフォルトに基づいて Filesystem が使用されます。詳細については、ボリューム モードをご覧ください。
  3. StorageProfile カスタム リソースをエディタに保存して閉じます。

    定義したストレージ プロファイルの設定は、仮想ディスクの作成時に使用されます。既存の VirtualMachineDisk リソースは、定義済みのストレージ プロファイル設定を使用するようには更新されません。

次のステップ