AKS ハイブリッドを使った Windows コンテナー ストレージ

完了

Azure Kubernetes Service (AKS) ハイブリッド デプロイ オプション ("AKS ハイブリッド") は、Azure Kubernetes Service オーケストレーターのオンプレミス実装です。 オーケストレーターは、コンテナ化されたアプリケーションの大規模な実行を自動化し、どこでも一貫したクラウド ネイティブ アプリケーションを運用できるようにします。 オンプレミスのインフラストラクチャを使って、Azure サービスと統合します。

ハードウェア クラス、コンピューティングの可用性、Kubernetes 導入プロセスに応じて、次の AKS ハイブリッド デプロイ オプションを使用できます。

  • Windows Server 上の AKS
  • AKS on Azure Stack HCI (ハイパー コンバージド インフラストラクチャ)
  • Azure からの AKS クラスターのプロビジョニング (プレビュー)
  • AKS Edge Essentials

AKS ハイブリッドのストレージ

AKS ハイブリッドは AKS の実装であるため、ストレージ概念のほとんどは同じです。 AKS ハイブリッド クラスターには、コアの Kubernetes サービスとオーケストレーションを提供する AKS によって管理されるコントロール プレーンが含まれており、ユーザーはアプリケーション ワークロードでポッドを含むノードを管理します。 次の図は、AKS ハイブリッド デプロイ オプションの AKS on Azure Stack HCI を使う AKS ハイブリッド クラスターのアーキテクチャを示しています。

Diagram showing the architecture of an AKS hybrid cluster that is using the AKS hybrid deployment option AKS on Azure Stack HCI.

AKS と同様、従来のボリュームは Azure Storage によってサポートされる Kubernetes リソースです。 データ ボリュームを手動で作成してポッドに直接割り当てることも、Kubernetes で自動的に作成することもできます。 これらのボリュームを Azure Storage に関連付けるために、AKS ハイブリッドは Container Storage Interface (CSI) を使います。 AKS ハイブリッドは、AKS と同じ CSI ドライバーを使って Windows コンテナーと永続ストレージをサポートします。

永続ストレージを作成するとき、AKS ハイブリッドは AKS と同じ Kubernetes 概念を使いますが、いくつかのバリエーションがあります。 永続ボリュームは静的または動的に作成されます。 これらを動的に作成する場合は、ストレージ クラスを使ってその種類とライフ サイクルを定義し、永続ボリューム要求 (PVC) を使って永続ボリューム (PV) にバインドします。

AKS ハイブリッド ストレージが AKS と異なる点は、オンプレミス ストレージを永続ストレージとして使うためのサポートです。

永続ボリューム

永続ボリュームは、Kubernetes API によって作成および管理されるストレージ リソースであり、個々のポッドの有効期間が終了しても存在できます。 たとえば、AKS ハイブリッド デプロイ オプションの AKS on Azure Stack HCI を使う場合、ReadWriteOnce としてマウントされ、一度に 1 つのノードにアクセスできる、VHDX (仮想ハード ディスク ファイルの種類) によってサポートされる AKS ディスク ボリュームを使用できます。 または、SMB (サーバー メッセージ ブロック) または NFS (ネットワーク ファイル システム) ファイル共有によってサポートされる AKS ファイル ボリュームを使うこともできます。 これらは ReadWriteMany としてマウントされ、複数のノードで同時に使用できます。

クラスター管理者は永続ボリュームを静的に作成することも、Kubernetes API サーバーによって動的に作成することもできます。 ポッドがスケジュールされており、現在使用できないストレージを要求する場合、Kubernetes は基になる VHDX ファイルを作成し、それをポッドにアタッチできます。 動的プロビジョニングでは、StorageClass を使って、作成する必要があるストレージの種類を特定します。

ストレージ クラス

ストレージ クラスは、基になるストレージ リソースのストレージ層、場所、reclaimPolicy を定義します。

AKS ハイブリッドでは、既定のストレージ クラスが自動的に作成され、CSV を使って VHDX バックアップ ボリュームが作成されます。 解放ポリシーにより、基になる VHDX は、それを使っていた永続ボリュームが削除されると、確実に削除されます。 ストレージ クラスによって永続ボリュームを拡張可能にする構成も行われるため、必要なのは、永続ボリューム要求を新しいサイズを使用して編集することだけです。

永続ボリュームに StorageClass を指定しない場合は、既定の StorageClass が使われます。 永続ボリュームを要求するときは、必要とする適切なストレージが使用されていることを確認します。 より多くのニーズに対応する StorageClass を作成できます。

永続ボリューム要求

PersistentVolumeClaim は、特定の StorageClass とサイズの ReadWriteOnce または ReadWriteMany ストレージを要求します。 定義された StorageClass に基づいて要求を満たすための既存のリソースがない場合、Kubernetes API サーバーは、AKS ハイブリッドで基になるストレージ リソースを動的にプロビジョニングできます。 ボリュームがポッドに接続されると、ポッドの定義にボリューム マウントが含まれます。

使用できるストレージ リソースがそれを要求しているポッドに割り当てられると、PersistentVolumePersistentVolumeClaim にバインドされます。 永続ボリュームと要求は 1 対 1 でマッピングされます。

永続ストレージとしてローカル ディスクを使う

AKS ハイブリッドを使う利点の 1 つは、ローカル ディスクを Windows コンテナーの永続ストレージとして使用できることです。 ローカル ディスクは、オンプレミス ノードにアタッチされている物理ディスクです。 ローカル ディスクは、コンテナ化されたアプリケーションでのハイ パフォーマンスと低待機時間を実現します。

AKS ハイブリッド上の Windows コンテナーでローカル ディスクを使うには、local-volume-provisioner プラグインを使う必要があります。 このプラグインは、ノード上のローカル ディスクの永続ボリューム (PV) を自動的に検出して作成します。 次に、ノード アフィニティとストレージ クラスに基づいて PV と一致する永続ボリューム要求 (PVC) を作成する必要があります。 最後に、ボリューム定義を使って PVC をポッドまたはコンテナーにマウントする必要があります。