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

Sie können die 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