為了能夠在一般 vSphere Kubernetes 環境中佈建 ReadWriteMany 持續性磁碟區,請設定從 Kubernetes 節點到 vSAN 檔案服務網路中的必要網路、交換器和路由器。
設定網路
設定網路時,請遵循下列需求:
- 在每個 Kubernetes 節點上,可以針對 vSAN 檔案共用流量使用專用 vNIC。僅當要對檔案磁碟區使用安全資料流量路徑時,才需要此選項。
- 如果使用專用 vNIC,請確保透過專用 vNIC 的流量可路由到一或多個 vSAN 檔案服務網路。
- 確保只有每個 Kubernetes 節點上的客體作業系統才可以透過檔案共用 IP 位址直接存取 vSAN 檔案共用。節點中的網繭無法透過其 IP 位址執行 ping 動作或存取 vSAN 檔案共用。
CNS CSI 驅動程式可確保只有設定為使用 CNS 檔案磁碟區的網繭,才能透過在客體作業系統中建立掛接點來存取 vSAN 檔案共用。
- 避免在節點虛擬機器與 vSAN 檔案共用之間建立 IP 位址衝突。
下圖是使用 vSAN 檔案共用服務的 CNS 網路組態的範例。
在圖中,範例網路組態遵循下列準則。
- 對於 CNS 環境中的不同項目,此組態會使用不同的網路。
網路 說明 vSphere 管理網路 通常,在一般 Kubernetes 叢集中,每個節點都有權存取此網路。 網繭或節點網路 Kubernetes 會將此網路用於節點至節點或網繭至網繭通訊。 專用檔案共用網路 CNS 檔案磁碟區資料流量使用此網路。 vSAN 檔案共用網路 已啟用 vSAN 檔案共用且檔案共用可用的網路。 - 每個 Kubernetes 節點都有一個專用於檔案流量的 vNIC。此 vNIC 與用於節點至節點或網繭至網繭通訊的 vNIC 不同。此組態僅用作範例,但並不強制。
- 只有設定為使用 CNS 檔案共用的應用程式,才能透過節點客體作業系統中的掛接點存取 vSAN 檔案共用。例如,在圖中,會進行下列操作:
- App-1 和 App-2 網繭設定為使用檔案磁碟區,並且可透過 CSI 驅動程式建立的掛接點存取檔案共用。
- App-3 和 App-4 未設定檔案磁碟區,且無法存取檔案共用。
- vSAN 檔案共用將做為容器部署在 ESXi 主機上的 vSAN 檔案共用應用裝置虛擬機器中。Kubernetes 部署器 (可設定、部署和管理 Kubernetes 叢集的軟體或服務) 會設定必要的路由器和交換器,以便 Kubernetes 節點中的客體作業系統可以存取 vSAN 檔案共用。
安全性限制
雖然專用 vNIC 可防止未經授權的網繭直接存取檔案共用,但存在某些安全性限制:
- CNS 檔案功能假設擁有 CNS 檔案磁碟區識別碼的任何人都是該磁碟區的授權使用者。擁有 CNS 檔案磁碟區識別碼的任何使用者都可以存取儲存在磁碟區中的資料。
- CNS 檔案磁碟區僅支援 AUTH_SYS 驗證,這是以使用者識別碼為基礎的驗證。若要保護對 CNS 檔案磁碟區中資料的存取,您必須針對存取 CNS 檔案磁碟區的容器使用適當的使用者識別碼。
- 參考 CNS 檔案磁碟區的未繫結 ReadWriteMany 持續性磁碟區,可以由任何命名空間下任何 Kubernetes 使用者所建立的持續性磁碟區宣告所繫結。確保只有授權使用者可以存取 Kubernetes,以避免安全性問題。
設定 CSI 驅動程式以存取 vSAN 檔案服務叢集
CSI 驅動程式可以在啟用檔案服務的一或多個 vSAN 叢集上佈建檔案磁碟區,視組態而定。
可以將存取權限制為啟用了檔案服務的特定 vSAN 叢集。部署 Kubernetes 叢集時,為 CSI 驅動程式設定對特定檔案服務 vSAN 叢集的存取權。這樣一來,CSI 驅動程式只能在這些 vSAN 叢集上佈建檔案磁碟區。
在預設組態中,CSI 驅動程式會使用 vCenter Server 中可用的任何檔案服務 vSAN 叢集來佈建檔案磁碟區。CSI 驅動程式不會確認在佈建檔案磁碟區時可存取的檔案服務 vSAN 叢集。