可以透過將 antrea-nsx-routed
指定為叢集的 CNI,將 Tanzu Kubernetes 叢集設定為使用可路由的網繭網路。
引入可路由網繭網路
Kubernetes 網路模型要求叢集之節點網路中的網繭能夠與同一叢集中所有節點上的所有網繭進行通訊,而無需網路位址轉譯 (NAT)。為了滿足此需求,將為每個 Kubernetes 網繭提供從專用網繭繭網路配置的 IP 位址。
使用 antrea
或 calico
CNI 外掛程式佈建 Tanzu Kubernetes 叢集時,系統會建立預設網繭網路 192.168.0.0/16
。此子網路是私人位址空間,僅在叢集內是唯一的,且無法在網際網路上進行路由。雖然您可以自訂 network.pods.cidrBlocks
,但網繭網路無法使用這些 CNI 外掛程式進行路由。如需詳細資訊,請參閱 用於佈建 Tanzu Kubernetes 叢集的 TKGS v1alpha2 API。
Tanzu Kubernetes Grid 服務 v1alpha2 API 支援可使用 antrea-nsx-routed
CNI 外掛程式進行路由的網繭網路。此網路介面是一個自訂 Antrea 外掛程式,設定為支援 Tanzu Kubernetes 叢集的可路由網繭網路。在叢集規格中,網繭 CIDR 區塊欄位必須明確為 Null,以便 IP 位址管理 (IPAM) 由主管叢集處理。
- 允許同一 vSphere 命名空間中的 Tanzu Kubernetes 叢集網繭與 vSphere 網繭之間的流量。
- 捨棄不同 vSphere 命名空間中的 Tanzu Kubernetes 叢集網繭與 vSphere 網繭之間的流量。
- 主管叢集控制平面節點可連線至 Tanzu Kubernetes 叢集網繭。
- Tanzu Kubernetes 叢集網繭可連線至外部網路。
- 外部網路無法連線至 Tanzu Kubernetes 叢集網繭。Tanzu Kubernetes 叢集節點上的分散式防火牆 (DFW) 隔離規則捨棄流量。
可路由網繭的系統需求
可路由網繭網路要求為主管叢集設定 NSX-T Data Center。無法將可路由網繭與原生 vSphere vDS 網路搭配使用。
可路由網繭需要 Tanzu Kubernetes Grid 服務 v1alpha2 API。請參閱使用 TKGS v1alpha2 API 的需求。
可路由網繭的 NSX-T 組態需求
除了基本需求之外,將可路由網繭網路與 Tanzu Kubernetes 叢集搭配使用時不需要特殊 NSX-T 組態。執行 vSphere U3 和 NSX-T 的 vSphere with Tanzu 環境包含支援可路由網繭網路的 NCP 版本。不需要額外的 NSX-T 組態。
- 如果為工作負載網路設定了命名空間網路,NCP 將從為此命名空間網路指定的 IP 區塊建立一或多個 IP 集區。
- 如果沒有為工作負載網路指定命名空間網路,NCP 將從主管叢集網繭 CIDR 建立一或多個 IP 集區。
可路由網繭的主管叢集組態需求
除了基本需求之外,將可路由網繭網路與 Tanzu Kubernetes 叢集搭配使用時不需要特殊主管叢集組態。
如果已按如下所述啟用可路由網繭網路,則會從透過命名空間網路建立的 IP 集區配置 Tanzu Kubernetes 叢集網繭 CIDR,如果未啟用,則從主管叢集網繭 CIDR 進行配置。
必須確保為叢集節點配置 IP 位址的主管叢集服務 CIDR 不會與命名空間網路 CIDR 或主管叢集網繭 CIDR 重疊。
可路由網繭的叢集組態範例
下列範例 YAML 顯示如何為叢集設定可路由的網繭網路。是用於叫用 Tanzu Kubernetes Grid 服務的自訂組態,可使用 v1alpha2 API 佈建 Tanzu Kubernetes 叢集。
叢集規格會將 antrea-nsx-routed
宣告為 CNI,以啟用可路由的網繭網路。指定 CNI 為 antrea-nsx-routed
時,pods.cidrBlock
欄位必須為空白。如果已指定 antrea-nsx-routed
,則在未使用 NSX-T 網路的情況下,叢集佈建將會失敗。
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-v2-cluster-routable-pods namespace: tkgs-cluster-ns spec: topology: controlPlane: replicas: 3 vmClass: guaranteed-medium storageClass: vwt-storage-policy tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 nodePools: - name: worker-nodepool-a1 replicas: 3 vmClass: guaranteed-large storageClass: vwt-storage-policy tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 settings: storage: defaultClass: vwt-storage-policy network: #`antrea-nsx-routed` is the required CNI #for routable pods cni: name: antrea-nsx-routed services: cidrBlocks: ["10.97.0.0/24"] serviceDomain: tanzukubernetescluster.local #`pods.cidrBlocks` value must be empty #when `antrea-nsx-routed` is the CNI pods: cidrBlocks: