Sie können einen Kubernetes-Dienst des Typs LoadBalancer so konfigurieren, dass der Datenverkehr des Lastausgleichsdiensts basierend auf der Quell-IP-Adresse der eingehenden Anforderung zugelassen wird bzw. dass nur lokaler Pod-Datenverkehr zugelassen wird.
Mindestanforderungen
externalTrafficPolicy
- und
LoadBalancerSourceRanges
-Funktionen mit einem Kubernetes-Dienst vom Typ LoadBalancer in einem
Tanzu Kubernetes-Cluster verwenden, der die folgenden Mindestanforderungen erfüllt:
Komponente | Mindestanforderung | Weitere Informationen |
---|---|---|
vCenter Server und ESXi | vSphere 7.0 Update 2 | Weitere Informationen finden Sie in den Versionshinweisen. |
Supervisor-Cluster | v1.19.1+vmware.2-vsc0.0.8-17610687 |
Weitere Informationen finden Sie unter Aktualisieren des Supervisor-Clusters durch Ausführen eines vSphere-Namespace-Updates. |
Lastausgleichsdienst | NSX-T Data Center v3.1 |
Weitere Informationen finden Sie unter Netzwerk für vSphere with Tanzu. |
Tanzu Kubernetes-Version | Eine der neuesten Tanzu Kubernetes-Versionen. | Weitere Informationen finden Sie unter Überprüfen der Tanzu Kubernetes-Cluster-Kompatibilität für ein Update. |
Informationen zur Unterstützung der lokalen Datenverkehrsrichtlinie und der Quell-IP-Bereiche
Wenn Sie ein NSX-T Data Center-Netzwerk verwenden, können Sie einen Kubernetes-Dienst des Typs LoadBalancer so konfigurieren, dass die externe Datenverkehrsrichtlinie und die Quell-IP-Bereiche für den Lastausgleichsdienst zugelassen werden. Mit der Funktion externalTrafficPolicy
können Sie den Pod-Datenverkehr auf den lokalen Knoten beschränken. Mit der Funktion LoadBalancerSourceRange
können Sie Quell-IP-Adressen angeben, die zugelassen oder blockiert werden sollen.
Dienst für ausschließlich lokalen Datenverkehr – Beispiel
Mit der folgenden Spezifikation des Load Balancer-Diensts wird die Load Balancer-Instanz mit dem Parameter externalTrafficPolicy
konfiguriert, der auf „Local
“ festgelegt ist. Dies führt dazu, dass Pod-Datenverkehr nur an die Knoten weitergeleitet wird, auf denen lokale Pods ausgeführt werden.
apiVersion: v1 kind: Service metadata: name: local-only spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 externalTrafficPolicy: Local type: LoadBalancer
Die Funktion verwendet eine NSX-T-Systemzustandsprüfung. Aus Sicht der NSX-T-Verwaltung ist es wichtig, die internen Vorgänge dieser Funktion zu kennen.
Bei der NSX-T-Systemzustandsprüfung wird der NodePort der Kubernetes-Systemdiagnose überwacht, der von kube-proxy für den Serverpool zugeteilt wurde, der dem Dienst vom Typ LoadBalancer entspricht. Die NSX-T-Systemzustandsprüfung sendet HTTP-GET-Anforderungen an den Ziel-NodePort der Systemdiagnose. Der kube-proxy auf einem Knoten gibt den HTTP-Statuscode 500 zurück, wenn keine lokalen Pods ausgeführt werden. Knoten, die nicht über lokale Pods verfügen, werden von NSX-T als INAKTIV gekennzeichnet und so in NSX Manager angezeigt. Der Datenverkehr wird nur an die Knoten weitergeleitet, auf denen lokale Pods ausgeführt werden.
Dienst zum Zulassen von Datenverkehr auf Basis von Quell-IP-Adressen – Beispiel
Die folgende Spezifikation des Load Balancer-Dienstes konfiguriert den loadBalancerSourceRanges
-Parameter mit einem Array zulässiger Quell-IP-CIDRs. Nur eingehende Anforderungen, die aus diesen Quell-IP-Bereichen stammen, sind zulässig. Jedweder andere eingehende Datenverkehr wird verworfen.
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