Sie können generische Gruppen mit Kubernetes-Mitgliedstypen in dynamischen Mitgliedschaftskriterien erstellen, um den eingehenden oder ausgehenden Datenverkehr von Antrea-Kubernetes-Clustern abzugleichen.
Sie können diese generischen Gruppen dann in Regeln für verteilte Firewalls oder in Gateway-Firewallregeln verwenden, um den Datenverkehr zwischen VMs in der NSX-Umgebung und Pods in Antrea-Kubernetes-Clustern zu schützen.
Voraussetzungen
- Antrea-Kubernetes-Cluster sind in NSX registriert.
- Wenden Sie eine geeignete Sicherheitslizenz in Ihrer NSX-Bereitstellung an, die das System berechtigt, Sicherheitsrichtlinien für verteilte Firewalls zu konfigurieren.
Schützen des Datenverkehrs von Antrea-Kubernetes-Clustern zu VMs in NSX
- Kubernetes-Knoten
- Antrea-Egress
- Antrea-IP-Pool
Das folgende Diagramm zeigt die typischen Datenverkehrsflüsse vom Antrea-Kubernetes-Cluster zu den VMs im logischen NSX-Netzwerk.
Wie in diesem Datenverkehrsflussdiagramm dargestellt, sind für den Abgleich des Datenverkehrs, der den Antrea-Kubernetes-Cluster verlässt, folgende Szenarien möglich:
- Szenario 1: SNAT über Egress (Gateway-Knoten)
-
Sie können eine Egress-Ressource in Ihrem Antrea-Kubernetes-Cluster bereitstellen. Wählen Sie in der Manifestdatei der Egress-Ressource die Gruppierungskriterien von Pods aus, für die die Egress-Ressource gilt. Sie können die Egress-IP entweder manuell in der Manifestdatei angeben oder die Antrea-CNI kann eine Egress-IP aus einer benutzerdefinierten ExternalIPPool-Ressource zuteilen.
Wichtig: Die Egress-IP-Adressen müssen im physischen Netzwerk geroutet werden können und von allen Knoten im Kubernetes-Cluster erreichbar sein.Die Antrea-CNI sendet den ausgehenden Datenverkehr der ausgewählten Pods an die Gateway-Knoten. Die Gateway-Knoten führen eine Quelladressübersetzung (Source Address Translation, SNAT) durch, um die Quell-IP (Pod-IP) in die Egress-IP zu übersetzen.
Im vorherigen Datenverkehrsflussdiagramm wird beispielsweise der ausgehende Datenverkehr von pod1 und pod2, die auf node1 ausgeführt werden, an die Gateway-Knoten gesendet. Der Gateway-Knoten übersetzt die Pod-IP-Adressen in egress1-IP-Adressen.
Weitere Informationen zur Egress-Ressource finden Sie im Egress-Handbuch im Antrea-Dokumentationsportal.
Welche Clusterknoten als Gateway-Knoten verwendet werden können, hängt von der Knotennetzwerktopologie ab, die von Ihrem physischen Netzwerkadministrator oder dem IaaS-Netzwerkadministrator gesteuert wird. Die Gateway-Knoten weisen die beiden folgenden Merkmale auf:- Das physische Netzwerk erlaubt den Knoten den Zugriff auf das externe Netzwerk über eine routingfähige IP als Quell-IP.
- Optional wird auf dem physischen Gateway eine physische Firewall so konfiguriert, dass ausgehender Datenverkehr von den Gateway-Knoten gefiltert wird.
- Beispiel 1: Angenommen, Ihr Antrea-Kubernetes-Cluster verfügt über drei Knoten: node1, node2 und node3. Angenommen, node1 und node2 im Cluster sind spezielle Knoten, da ihnen zwei Netzwerkschnittstellen zugewiesen sind. Eine Schnittstelle für die K8s-Clusterkommunikation und eine weitere Schnittstelle für die Verbindung mit dem externen Netzwerk. node3 wird nur eine Netzwerkschnittstelle für die Cluster-Kommunikation zugewiesen. In diesem Szenario können nur Knoten1 und Knoten2 als Gateway-Knoten verwendet werden.
- Beispiel 2: Angenommen, allen drei Knoten im K8s-Cluster ist nur eine Netzwerkschnittstelle zugewiesen und der Netzwerkadministrator hat die physische Firewall so konfiguriert, dass nur node1- und node2-MAC-Adressen auf das Internet zugreifen können. In diesem Szenario können Knoten1 und Knoten2 als Gateway-Knoten verwendet werden.
- Beispiel 3: Angenommen, alle drei Knoten können auf das Internet zugreifen. Der Netzwerkadministrator hat eine physische Firewall auf dem physischen Gateway konfiguriert, und die Firewall möchte Datenverkehr von einer bestimmten Egress-IP filtern. In diesem Szenario können alle drei Knoten als Gateway-Knoten verwendet werden.
Der folgende Absatz erläutert eine implementierungsspezifische Einschränkung:
Alle physischen Hosts oder eine VM, der sich außerhalb des Antrea-Kubernetes-Clusters befindet, können nicht als Gateway-Knoten für das Tunneln des ausgehenden Datenverkehrs des Pods verwendet werden. Der Grund ist, dass Antrea-Agent die Egress-IP-Adressen beibehält und dieser Agent auf allen Knoten des K8s-Clusters als Pod ausgeführt wird. Daher müssen der physische Host oder eine VM, die Sie als Gateway-Knoten verwenden möchten, Teil des K8s-Clusters sein.
- Szenario 2: SNAT über Knoten
-
In diesem Szenario werden Pods nicht explizit in der Manifestdatei einer Egress-Ressource ausgewählt.
Der ausgehende Datenverkehr des Pods wird für die Knoten-IP maskiert. Anschließend wird der Datenverkehr an das IaaS-Netzwerk gesendet. Beispiel: Im vorherigen Datenverkehrsflussdiagramm übersetzt eine SNAT-Regel die Quell-IP (pod3-IP, pod4-IP) in die node2-IP-Adresse. Anschließend wird der ausgehende Datenverkehr des Pods an das IaaS-Netzwerk gesendet.
- Szenario 3: Routingfähige Pods, die direkt mit dem IaaS-Netzwerk überbrückt werden
-
Pods sind routingfähig, wenn ihnen im Underlay-Netzwerk routingfähige IP-Adressen zugewiesen werden. In der Regel werden Pods private IP-Adressen aus der Eigenschaft „PodCIDR“ zugewiesen, die auf dem Knoten konfiguriert ist. Wenn Pods auf ein Netzwerk zugreifen möchten, das sich außerhalb des K8s-Clusters befindet, ist für den Datenverkehr ein SNAT-Vorgang erforderlich, der die Quell-IP (Pod-IP) in eine routingfähige IP übersetzt.
Wenn Ihr Antrea-Kubernetes-Cluster auf dem NSX-Overlay-Netzwerk mit dem Tanzu Kubernetes Grid-Dienst (TKGS) bereitgestellt wird, gibt es einen Mechanismus, mit dem die Tanzu Kubernetes-Clusterknoten (TKC-Knoten) routingfähige Subnetze von NSX anfordern und dann ein routingfähiges Subnetz als PodCIDR-Eigenschaft des Knotens verwenden können. Anschließend können die Pods routingfähige IP-Adressen abrufen. Weitere Informationen zum Konfigurieren des TKC mit einem Netzwerk mit routingfähigen Pods finden Sie in der Dokumentation zu VMware vSphere with Tanzu.
Wenn Ihr Antrea-Kubernetes-Cluster nicht im NSX-Overlay-Netzwerk bereitgestellt ist, kann der Kubernetes-Administrator sicherstellen, dass im Underlay-Netzwerk ein routingfähiges Subnetz oder ein routingfähiger IP-Bereich reserviert sind. Der Administrator kann das Subnetz oder einen IP-Bereich in der Manifestdatei der benutzerdefinierten IPPool-Ressource konfigurieren. Anschließend kann die Antrea-CNI den Pods routingfähige IP-Adressen zuteilen.
Im vorherigen Datenverkehrsflussdiagramm erhält beispielsweise pod5, der auf node5 ausgeführt wird, eine routingfähige IP-Adresse aus einer benutzerdefinierten IPPool-Ressource.
Weitere Informationen zur benutzerdefinierten IPPool-Ressource finden Sie im Antrea IPAM-Handbuch im Antrea-Dokumentationsportal.
Schützen des Datenverkehrs von VMs in NSX zu Antrea-Kubernetes-Clustern
- Kubernetes-Dienst
- Kubernetes-Ingress
- Kubernetes-Gateway
- Antrea-IP-Pool
Das folgende Diagramm zeigt die typischen Datenverkehrsflüsse von VMs im logischen NSX-Netzwerk zum Antrea-Kubernetes-Cluster.
Wie in diesem Datenverkehrsflussdiagramm dargestellt, sind für den Abgleich des Datenverkehrs, der im Antrea-Kubernetes-Cluster eingeht, folgende Szenarien möglich:
- Szenario 1: Pods für externen Datenverkehr werden über virtuelle IP und Ports verfügbar gemacht
-
Sie können Pods für externen Datenverkehr verfügbar machen, indem Sie eine Load Balancer-Lösung eines Drittanbieters mit folgenden nativen Kubernetes-Ressourcen implementieren:
- Ingress: Er funktioniert als Load Balancer der Schicht 7. Eine Ingress-Ressource stellt eine virtuelle IP-Adresse (VIP) bereit und macht einige Ports (TCP/UDP) verfügbar.
- Gateway: Er funktioniert als Load Balancer der Schichten 4 und 7. Eine Gateway-Ressource stellt eine VIP bereit und macht einige Ports (TCP/UDP) verfügbar.
- Dienst vom Typ „LoadBalancer“: Er funktioniert wie ein Load Balancer der Schicht 4. Der Dienst stellt eine VIP bereit und macht einige Ports (TCP/UDP) verfügbar.
Hinweis: Obwohl Ingress- und Gateway-Ressourcen als Load Balancer auf Schicht 7 funktionieren können, werden sie für Regeln für verteilte Firewalls und für Gateway-Firewallregeln in NSX als Load Balancer der Schichten 3 oder 4 angezeigt, indem IP-Adressen und Ports verwendet werden, die dem eingehenden Datenverkehr entsprechen. - Szenario 2: Pods für externen Datenverkehr werden über Knoten-IP und Ports verfügbar gemacht
-
- Kubernetes-Dienst vom Typ „NodePort“: Er löst auf allen Knoten im K8s-Cluster aus, dass auf dem Knoten ein Port für jeden Dienstport geöffnet wird. Der Dienst ist über die Knoten-IP und den Port erreichbar. Der Knoten führt für den Datenverkehr SNAT und DNAT aus.
- Kubernetes-Dienst vom Typ „ClusterIP“ mit aktivierter NodePortLocal-Funktion: Sie müssen die NodePortLocal-Funktion auf dem Antrea-Agent aktivieren und in der Manifestdatei des Kubernetes-Diensts eine Anmerkung hinzufügen. Die Antrea-CNI erkennt die Anmerkung und öffnet einen Port für jeden Pod auf dem Knoten, auf dem der Pod ausgeführt wird. NodePortlLocal vermeidet, dass auf allen Knoten des K8s-Clusters ein Port geöffnet wird, und spart dadurch verfügbare Portbereiche ein. Außerdem wird ein SNAT-Vorgang vermieden und die ursprüngliche Client-IP wird beibehalten.
Weitere Informationen zur Funktion „NodePortLocal“ finden Sie im NodePortLocal-Handbuch im Antrea-Dokumentationsportal.
- Szenario 3: Pods für externen Datenverkehr werden über routingfähige Pod-IP-Adressen verfügbar gemacht
-
Antrea unterstützt die Zuweisung routingfähiger IP-Adressen zu Pods durch Bereitstellung der benutzerdefinierten IPPool-Ressource in Ihrem Antrea-Kubernetes-Cluster. Den Pods werden IP-Adressen aus diesem Pool zugewiesen und sie werden direkt zum IaaS-Netzwerk überbrückt.
Unterstützte IaaS-Netzwerke
- vSphere-basiertes lokales Datencenter: Wie Tanzu Kubernetes-Cluster, die mit dem Tanzu Kubernetes Grid-Dienst erstellt werden. Die Cluster werden von Tanzu Kubernetes Grid (TKG) 2.0 und vSphere verwaltet.
- VMware Cloud: Als Tanzu Kubernetes-Cluster, die von TKG 2.0 und VMC-SDDC verwaltet werden.
- Public Clouds: als verwaltete Kubernetes-Cluster auf den Public Cloud-Plattformen.
- Physische Server: Als Kubernetes-Cluster auf Bare Metal-Servern.
- OpenShift:
- Die in OpenShift-Clustern bereitgestellte Antrea-CNI und OpenShift werden im IPI-Modus (Installer Provisioned Infrastructure) oder im UPI-Modus (User Provisioned Infrastructure) bereitgestellt.
- Folgende Infrastrukturanbieter sind möglich: vSphere, Amazon Web Services (AWS), Azure, OpenStack, Google Cloud Platform (GCP), Bare Metal.
Empfohlene Vorgehensweisen zum Anwenden von Firewallrichtlinien
Sowohl die verteilte Firewall als auch die Gateway-Firewall ermöglichen in den Quellen und Zielen der Firewallregeln die Angabe generischer Gruppen mit Kubernetes-Mitgliedstypen. Sie können daher flexibel entscheiden, ob Sie die Gruppen in der verteilten Firewall oder in der Gateway-Firewall referenzieren möchten.
- Verwenden Sie die NSX-Gateway-Firewall, um Datenverkehr von Antrea-Kubernetes-Clustern zu VMs in einem NSX-Netzwerk zuzulassen oder zu blockieren.
Mit diesem Ansatz können Sie den Datenverkehr zum frühestmöglichen Zeitpunkt zu filtern, wenn er in das NSX-Overlay-Netzwerk eingeht.
- Verwenden Sie die verteilte NSX-Firewall, um in einem NSX-Netzwerk Datenverkehr von VMs zu Antrea-Kubernetes-Clustern zuzulassen oder zu blockieren.
Mit diesem Ansatz können Sie den Datenverkehr zum frühestmöglichen Zeitpunkt zu filtern, wenn er die VMs in einem NSX-Overlay-Netzwerk verlässt.
Übersicht der Kubernetes-Mitgliedstypen für die Nutzung in Firewallrichtlinien
Die folgende Tabelle enthält die Kubernetes-Mitgliedstypen, die Sie in generischen NSX-Gruppen für den Abgleich des Datenverkehrs in Firewallregeln verwenden können.
Mitgliedstyp | Geltungsbereich | Verwendung in Firewallrichtlinie |
---|---|---|
Kubernetes-Cluster |
Cluster |
Wird als UND-Bedingung in dynamischen Gruppenkriterien eingesetzt, um Ressourcen von bestimmten Clustern abzugleichen. |
Kubernetes-Namespace |
Namespace |
Wird als UND-Bedingung in den dynamischen Gruppenkriterien eingesetzt, um Ressourcen aus bestimmten Namespaces abzugleichen. |
Antrea-Egress |
Cluster |
Abgleichen des ausgehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen Quell-IP = Egress-IP |
Antrea-IP-Pool | Cluster |
Abgleichen des ausgehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen sich die Quell-IP in IP-Bereichen befindet. Abgleichen des eingehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen sich die Ziel-IP in IP-Bereichen befindet. |
Kubernetes-Knoten |
Cluster |
Abgleichen des ausgehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen die Quell-IP zu den IP-Adressen des Clusterknotens gehört. |
Kubernetes-Ingress |
Namespace |
Abgleichen des eingehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen die Ziel-IP zu den Ingress-IP-Adressen gehört. |
Kubernetes-Gateway |
Namespace |
Abgleichen des eingehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen die Ziel-IP zu den Gateway-IP-Adressen gehört. |
Kubernetes-Dienst (type=LoadBalancer) |
Namespace |
Abgleichen des eingehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen die Ziel-IP zu den LoadBalancer-IP-Adressen gehört. |
Kubernetes-Dienst (type=NodePort) |
Namespace |
Abgleichen des eingehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen Ziel-IP + Port zu Knoten-IP-Adressen + NodePort-Bereich gehört. |
Kubernetes-Dienst (type=ClusterIP) |
Namespace |
Keine |
Kubernetes-Dienst (type=ClusterIP) und NodePortLocal-Funktion aktiviert |
Namespace |
Abgleichen des eingehenden Datenverkehrs von Antrea-Kubernetes-Clustern, bei denen Ziel-IP + Port zu Knoten-IP-Adressen + NodePortLocal-Bereich gehört. |