5.10. Azure Disk CSI Driver Operator
5.10.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、Microsoft Azure Disk Storage の Container Storage Interface (CSI) ドライバーを使用して永続ボリューム (PV) をプロビジョニングできます。
CSI Operator およびドライバーを使用する場合は、永続ストレージ および CSI ボリュームの設定 を理解しておくことが推奨されます。
Azure Disk ストレージアセットにマウントする CSI でプロビジョニングされた永続ボリューム (PV) を作成するには、OpenShift Container Platform は、デフォルトで Azure Disk CSI Driver Operator および Azure Disk CSI ドライバーを openshift-cluster-csi-drivers
namespace にインストールします。
-
Azure Disk CSI Driver Operator: 永続ボリューム要求 (PVC) の作成に使用できる
managed-csi
というストレージクラスを提供します。Azure Disk CSI Driver Operator は、ストレージボリュームをオンデマンドで作成できるようにし、クラスター管理者がストレージを事前にプロビジョニングする必要がなくすことで、動的ボリュームのプロビジョニングをサポートします。必要に応じて、このデフォルトのストレージクラスを無効にできます (デフォルトストレージクラスの管理 を参照)。 - Azure Disk CSI ドライバー を使用すると、Azure Disk PV を作成し、マウントできます。
5.10.2. CSI について リンクのコピーリンクがクリップボードにコピーされました!
ストレージベンダーはこれまで Kubernetes の一部としてストレージドライバーを提供してきました。Container Storage Interface (CSI) の実装では、サードパーティーのプロバイダーは、コア Kubernetes コードを変更せずに標準のインターフェイスを使用してストレージプラグインを提供できます。
CSI Operator は、インツリーボリュームプラグインでは不可能なボリュームスナップショットなどのストレージオプションを OpenShift Container Platform ユーザーに付与します。
OpenShift Container Platform は、Azure Disk インツリーボリュームプラグインを同等の CSI ドライバーに自動的に移行します。詳細は、CSI の自動移行 を参照してください。
5.10.3. ストレージアカウントタイプを使用したストレージクラスの作成 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスを使用すると、ストレージのレベルや使用状況を区別し、記述することができます。ストレージクラスを定義することで、動的にプロビジョニングされた永続ボリュームを取得できます。
ストレージクラスを作成するときに、ストレージアカウントの種類を指定できます。これは、Azure ストレージアカウントの SKU の層に対応します。有効なオプションは、Standard_LRS
、Premium_LRS
、StandardSSD_LRS
、UltraSSD_LRS
、Premium_ZRS
、StandardSSD_ZRS
、および PremiumV2_LRS
です。Azure SKU レベルを見つける方法は、SKU Types を参照してください。
ZRS と PremiumV2_LRS の両方に、いくつかのリージョン制限があります。これらの制限は、ZRS の制限 および Premium_LRS の制限 を参照してください。
前提条件
- 管理者権限を持つ OpenShift Container Platform クラスターへのアクセス
手順
次の手順を使用して、ストレージアカウントの種類でストレージクラスを作成します。
次のような YAML ファイルを使用して、ストレージアカウントの種類を指定するストレージクラスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記PremiumV2_LRS の場合、
storageclass.parameters
でcachingMode: None
を指定します。ストレージクラスを一覧表示して、ストレージクラスが作成されたことを確認します。
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
oc get storageclass
$ oc get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE azurefile-csi file.csi.azure.com Delete Immediate true 68m managed-csi (default) disk.csi.azure.com Delete WaitForFirstConsumer true 68m sc-prem-zrs disk.csi.azure.com Delete WaitForFirstConsumer true 4m25s
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ストレージアカウントタイプを使用する新しいストレージクラス。
5.10.4. ユーザー管理型の暗号化 リンクのコピーリンクがクリップボードにコピーされました!
ユーザー管理型の暗号化機能を使用すると、インストール時に OpenShift Container Platform ノードのルートボリュームを暗号化するキーを指定でき、すべてのマネージドストレージクラスはこれらのキーを使用してプロビジョニングされたストレージボリュームを暗号化できます。install-config YAML ファイルの platform.<cloud_type>.defaultMachinePlatform
フィールドにカスタムキーを指定する必要があります。
この機能は、次のストレージタイプをサポートします。
- Amazon Web Services (AWS) Elastic Block storage (EBS)
- Microsoft Azure Disk ストレージ
- Google Cloud Platform (GCP) 永続ディスク (PD) ストレージ
- IBM Virtual Private Cloud (VPC) Block ストレージ
OS (ルート) ディスクが暗号化されており、ストレージクラスに暗号化キーが定義されていない場合、Azure Disk CSI ドライバーは、デフォルトで OS ディスク暗号化キーを使用して、プロビジョニングされたストレージボリュームを暗号化します。
Azure のユーザー管理型の暗号化を使用してインストールする方法の詳細は、Azure のユーザー管理型の暗号化を有効にする を参照してください。
5.10.5. PVC を使用して Ultra ディスクと共にマシンをデプロイするマシンセット リンクのコピーリンクがクリップボードにコピーされました!
Ultra ディスクと共にマシンをデプロイする Azure で実行されるマシンセットを作成できます。Ultra ディスクは、最も要求の厳しいデータワークロードでの使用を目的とした高性能ストレージです。
in-tree プラグインおよび CSI ドライバーの両方が、Ultra ディスクを有効にするための PVC の使用をサポートします。PVC を作成せずに、データディスクとしての Ultra デイスクと共にマシンをデプロイすることもできます。
5.10.5.1. マシンセットを使用した Ultra ディスクを持つマシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
マシンセットの YAML ファイルを編集することで、Azure 上に Ultra ディスクと共にマシンをデプロイできます。
前提条件
- 既存の Microsoft Azure クラスターがある。
手順
既存の Azure
MachineSet
カスタムリソース (CR) をコピーし、次のコマンドを実行して編集します。oc edit machineset <machine_set_name>
$ oc edit machineset <machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <machine_set_name>
は、Ultra ディスクを使用してマシンをプロビジョニングするマシンセットです。示された位置に次の行を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、更新された設定を使用してマシンセットを作成します。
oc create -f <machine_set_name>.yaml
$ oc create -f <machine_set_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML 定義が含まれるストレージクラスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML 定義が含まれる、
ultra-disk-sc
ストレージクラスを参照する永続ボリューム要求 (PVC) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML 定義が含まれる Pod を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、マシンが作成されていることを確認します。
oc get machines
$ oc get machines
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マシンは
Running
状態になっているはずです。実行中でノードが接続されているマシンの場合、次のコマンドを実行してパーティションを検証します。
oc debug node/<node_name> -- chroot /host lsblk
$ oc debug node/<node_name> -- chroot /host lsblk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドでは、
oc debug node/<node_name>
によりノード<node_name>
上でデバッグシェルを起動し、--
を指定してコマンドを渡します。渡されたコマンドchroot /host
は、基盤となるホスト OS バイナリーへのアクセスを提供し、lsblk
は、ホスト OS マシンに接続されているブロックデバイスを表示します。
次のステップ
Pod 内から Ultra ディスクを使用するには、マウントポイントを使用するワークロードを作成します。次の例のような YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.10.5.2. Ultra ディスクを有効にするマシンセットのリソースに関するトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
このセクションの情報を使用して、発生する可能性のある問題を理解し、回復してください。
5.10.5.2.1. Ultra ディスクがサポートする永続ボリューム要求をマウントできない リンクのコピーリンクがクリップボードにコピーされました!
Ultra ディスクでサポートされる永続ボリューム要求のマウントに問題がある場合、Pod は ContainerCreating
状態のままになり、アラートがトリガーされます。
たとえば、additionalCapabilities.ultraSSDEnabled
パラメーターが Pod をホストするノードをサポートするマシンで設定されていない場合、以下のエラーメッセージが表示されます。
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
この問題を解決するには、以下のコマンドを実行して Pod を記述します。
oc -n <stuck_pod_namespace> describe pod <stuck_pod_name>
$ oc -n <stuck_pod_namespace> describe pod <stuck_pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow