クラウド ネイティブ ストレージ 環境および Kubernetes クラスタに参加する仮想マシンは、いくつかの要件を満たす必要があります。

クラウド ネイティブ ストレージ の要件

Kubernetes クラスタ仮想マシンの要件

  • ハードウェア バージョン 15 以降の仮想マシン。各ノードの仮想マシンに VMware Tools をインストールします。
  • 仮想マシンのハードウェアに関する推奨事項:
    • ワークロード要件に基づいて、CPU とメモリを適切に設定します。
    • ノード仮想マシンのプライマリ ディスクに VMware 準仮想化 SCSI コントローラを使用します。
  • すべての仮想マシンは、vSAN などの共有データストアにアクセスできる必要があります。
  • 各ノードの仮想マシンで disk.EnableUUID パラメータを設定します。vSphere 仮想マシンでの Kubernetes クラスタの構成を参照してください。
  • エラーや予期しない動作を回避するために、CNS ノード仮想マシンのスナップショットは作成しないでください。

CNS ファイル ボリュームの要件

  • vSphere バージョン 7.0 以降および互換性のある Kubernetes バージョンを使用します。
  • 互換性のあるバージョンの CSI を使用します。詳細については、VMware vSphere コンテナ ストレージ プラグインのドキュメントを参照してください。
  • vSAN ファイル サービスを有効にして、設定します。必要なファイル サービス ドメイン、IP プール、ネットワークなどを構成する必要があります。詳細については、『VMware vSAN の管理』ドキュメントを参照してください。
  • Kubernetes ノードのゲスト OS から vSAN ファイル共有へのネットワーク アクセスを設定するには、特定のガイドラインに従ってください。vSAN ファイル共有へのネットワーク アクセスの構成を参照してください。

vSAN ファイル共有へのネットワーク アクセスの構成

汎用 vSphere Kubernetes 環境内の ReadWriteMany パーシステント ボリュームをプロビジョニングできるようにするには、Kubernetes ノードから vSAN ファイル サービス ネットワークへの間に必要なネットワーク、スイッチ、およびルータを構成します。

ネットワークのセットアップ

ネットワークを設定する場合は、次の要件に従います。
  • すべての Kubernetes ノードで、vSAN ファイル共有トラフィックに専用の vNIC を使用できます。このオプションは、ファイル ボリュームにセキュアなデータ トラフィック パスを使用する場合にのみ必要です。
  • 専用 vNIC を使用している場合は、この専用 vNIC を経由するトラフィックが、1 つまたは複数の vSAN ファイル サービス ネットワークにルーティング可能であることを確認します。
  • ファイル共有の IP アドレスを使用して vSAN ファイル共有に直接アクセスできるのは、各 Kubernetes ノードのゲスト OS のみであることを確認します。ノード内のポッドから vSAN ファイル共有に ping を実行したり、IP アドレスを指定してアクセスしたりすることはできません。

    CNS CSI ドライバは、ゲスト OS でマウント ポイントを作成することにより、CNS ファイル ボリュームを使用するように設定されたポッドのみが vSAN ファイル共有にアクセスできるようにします。

  • ノードの仮想マシンと vSAN のファイル共有の間で IP アドレスが競合しないようにしてください。

次の図に、vSAN ファイル共有サービスを使用する CNS ネットワーク構成の例を示しています。

この図は、vSAN ファイル共有を使用した CNS ネットワーク構成を示しています。

この図のネットワーク構成の例は、次のガイドラインに従っています。
  • この構成では、CNS 環境内のアイテムごとに個別のネットワークを使用します。
    ネットワーク 説明
    vSphere 管理ネットワーク 通常、一般的な Kubernetes クラスタでは、すべてのノードがこのネットワークにアクセスできます。
    ポッドまたはノード ネットワーク Kubernetes は、ノード間またはポッド間の通信にこのネットワークを使用します。
    専用ファイル共有ネットワーク CNS ファイル ボリュームのデータ トラフィックは、このネットワークを使用します。
    vSAN ファイル共有ネットワーク vSAN ファイル共有が有効になっていて、ファイル共有が使用可能なネットワーク。
  • すべての Kubernetes ノードには、ファイル トラフィック専用の vNIC があります。この vNIC は、ノード間またはポッド間の通信に使用される vNIC とは異なります。この構成は一例として使用しています。必須ではありません。
  • CNS ファイル共有を使用するように設定されたアプリケーションのみが、ノードのゲスト OS のマウント ポイントを介して vSAN のファイル共有にアクセスできます。たとえば、この図では次の処理が行われます。
    • アプリケーション 1 とアプリケーション 2 のポッドはファイル ボリュームを使用するように設定されていて、CSI ドライバによって作成されたマウント ポイントを介してファイル共有にアクセスできます。
    • アプリケーション 3 とアプリケーション 4 にはファイル ボリュームが設定されておらず、ファイル共有にアクセスできません。
  • vSAN ファイル共有は、ESXi ホスト上の vSAN ファイル共有アプライアンス仮想マシンにコンテナとして展開されます。Kubernetes デプロイヤは、Kubernetes クラスタを設定、展開、および管理できるソフトウェアまたはサービスのことです。Kubernetes ノードのゲスト OS が vSAN ファイル共有にアクセスできるように、必要なルーターとスイッチを設定できます。

セキュリティの制限

専用の vNIC によって不正なポッドがファイル共有に直接アクセスすることはできなくなりますが、特定のセキュリティ上の制限が課せられます。
  • CNS ファイル機能は、CNS ファイル ボリューム ID を持つユーザーが、ボリュームに対する権限も持っていることを前提としています。CNS ファイル ボリューム ID を持つユーザーは、ボリュームに保存されているデータにアクセスできます。
  • CNS ファイル ボリュームは、ユーザー ID ベース認証である AUTH_SYS 認証のみをサポートします。CNS ファイル ボリューム内のデータへのアクセスを保護するには、CNS ファイル ボリュームにアクセスするコンテナに適切なユーザー ID を使用する必要があります。
  • CNS ファイル ボリュームを参照する、バインドされていない ReadWriteMany パーシステント ボリュームをバインドするには、任意の名前空間で任意の Kubernetes ユーザーによって作成されたパーシステント ボリューム要求を使用します。セキュリティ問題を回避するために、許可されたユーザーのみが Kubernetes にアクセスできるようにしてください。

vSAN ファイル サービス クラスタにアクセスするための CSI ドライバの設定

構成に応じて、CSI ドライバは、ファイル サービスが有効になっている 1 つまたは複数の vSAN クラスタでファイル ボリュームをプロビジョニングできます。

ファイル サービスが有効になっている特定の vSAN クラスタにアクセスを限定することができます。Kubernetes クラスタを展開する場合は、CSI ドライバに特定のファイル サービス vSAN クラスタへのアクセス権を設定します。その結果、CSI ドライバは、これらの vSAN クラスタでのみファイル ボリュームをプロビジョニングできるようになります。

デフォルトの構成では、CSI ドライバは、vCenter Server で使用可能な任意のファイル サービス vSAN クラスタを使用して、ファイル ボリュームのプロビジョニングを行います。CSI ドライバは、ファイル ボリュームのプロビジョニング中にアクセス可能なファイル サービス vSAN クラスタを検証しません。