您可以將類型為 LoadBalancer 的 Kubernetes 服務設定為根據傳入請求的來源 IP 位址來允許負載平衡器流量,並僅允許本機網繭流量。
最低需求
externalTrafficPolicy
和
LoadBalancerSourceRanges
功能與滿足下列最低需求的
Tanzu Kubernetes 叢集上類型為 LoadBalancer 的 Kubernetes 服務搭配使用:
元件 | 最低需求 | 更多資訊 |
---|---|---|
vCenter Server 和 ESXi | vSphere 7.0 Update 2 | 請參閱版本說明。 |
主管叢集 | v1.19.1+vmware.2-vsc0.0.8-17610687 |
請參閱透過執行 vSphere 命名空間更新來更新 主管叢集。 |
負載平衡器 | NSX-T Data Center v3.1 |
請參閱vSphere with Tanzu 的網路。 |
Tanzu Kubernetes 版本 | 其中一個最新的 Tanzu Kubernetes 版本。 | 請參閱驗證 Tanzu Kubernetes 叢集的更新相容性。 |
關於支援本機流量原則和來源 IP 範圍
如果您使用的是 NSX-T Data Center 網路,您可以設定類型為 LoadBalancer 的 Kubernetes 服務,以允許外部流量原則和負載平衡器來源 IP 範圍。透過 externalTrafficPolicy
功能,可以將網繭流量限制在本機節點。透過 LoadBalancerSourceRange
功能,可以指定要允許或封鎖的來源 IP 位址。
僅限本機流量的服務範例
下列負載平衡器服務規格會設定負載平衡器執行個體,將 externalTrafficPolicy
參數設定為 Local
。結果就是,網繭流量僅路由至正在執行本機網繭的節點。
apiVersion: v1 kind: Service metadata: name: local-only spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 externalTrafficPolicy: Local type: LoadBalancer
此功能使用 NSX-T 健全狀況檢查監視器進行運作。從 NSX-T 管理觀點來看,請務必瞭解此功能的內部作業。
NSX-T 健全狀況檢查監視器會監視 Kubernetes 健全狀況檢查 NodePort,該服務是 kube-proxy 針對與 LoadBalancer 類型的服務相對應的伺服器集區所配置的。NSX-T 健全狀況檢查監視器會傳送 HTTP GET 要求至目標健全狀況檢查 NodePort。如果沒有執行中的本機網繭,節點上的 kube-proxy 會傳回 HTTP 狀態碼 500。沒有本機網繭的節點將被 NSX-T 標記為 [關閉],並照此顯示在 NSX Manager 中。流量僅路由至正在執行本機網繭的節點。
允許以來源 IP 範圍為基礎的流量的服務範例
下列負載平衡器服務規格為 loadBalancerSourceRanges
參數設定允許的來源 IP CIDR 陣列。將僅允許來自這些來源 IP 範圍的輸入要求;將會捨棄所有其他輸入流量。
apiVersion: v1 kind: Service metadata: name: allow-based-on-source-IPs spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 loadBalancerSourceRanges: - 10.0.0.0/24 - 10.1.0.0/24 type: LoadBalancer