汎用 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 クラスタを検証しません。