Um den Zugriff aus dem öffentlichen Internet auf einen Kubernetes-Dienst zu ermöglichen, der in einem Tanzu Kubernetes Grid Kubernetes-Cluster läuft, veröffentlichen Sie den Dienst intern, geben ihm eine öffentliche IP-Adresse und erstellen eine DNAT-Regel, die den veröffentlichten Dienst unter einer IP-Adresse im Ingress-CIDR zugänglich macht.
Der Internetzugriff auf Clusterdienste wird von einem Lastausgleichsdienst über eine DNATted öffentliche IP-Adresse im Ingress-CIDR-Block verwaltet, den Sie bei der Aktivierung von Tanzu Kubernetes Grid angegeben haben. In VMware Cloud on AWS, wird der Lastausgleichsdienst durch das NSX Container Plug-in implementiert, das automatisch für jeden SDDC Cluster konfiguriert wird, auf dem Sie Tanzu Kubernetes Grid aktivieren. Weitere Informationen finden Sie unter Übersicht über NSX Container Plug-in.
In den folgenden Schritten wird ein typischer Workflow beschrieben, den Sie verwenden können, um den Zugriff auf einen Kubernetes-Dienst über das öffentliche Internet zu ermöglichen. Im VMware Cloud Tech Zone-Artikel Set Up Public Access to Tanzu Kubernetes Clusters in VMware Cloud on AWS wird dieser Workflow detaillierter erläutert.
Prozedur
- Melden Sie sich unter https://vmc.vmware.com bei VMware Cloud Services an.
- Verwenden Sie die VMware Cloud on AWS-API, um den Dienst intern zu veröffentlichen.
Stellen Sie ihn als Dienst vom Typ LoadBalancer bereit und geben Sie den Namespace und die Knotenports an, wie hier gezeigt.
apiversion: v1
kind: service
metadata:
name: example-svc
namespace: ns1
labels:
app: hardtop-example
spec:
ports:
port:80
targetPort: 8080
type: LoadBalancer
selector:
app: example-app
Durch die Bereitstellung eines Kubernetes-Diensts von
type: LoadBalancer
wird dieser veröffentlicht und innerhalb des Clusters unter dem angegebenen Port (
port: 80
in diesem Beispiel) zugänglich gemacht und ein Knotenport für den Dienst einem zufälligen Port über 30000 zugeordnet.
- Erstellen Sie eine Firewallregel für das VMware Cloud on AWS-Computing-Gateway, die den Zugriff auf die VM über die externe IP-Adresse und den zugeordneten Knotenport (in diesem Beispiel 31552) erlaubt.
Verwenden Sie einen
kubectl-Befehl wie diesen, um die Diensteigenschaften zurückzugeben, die Sie für die Firewallregel benötigen.
kubectl get service example-svc -n ns1
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
example-svc LoadBalancer 10.96.249.36 10.130.1.9 80:31552/TCP
Befolgen Sie das Verfahren in
Hinzufügen oder Ändern von Firewallregeln für das Verwaltungs-Gateway im Handbuch
VMware Cloud on AWS – Netzwerk und Sicherheit, um eine Regel mit Parametern wie den folgenden zu erstellen:
Option |
Beschreibung |
Quellen |
Alle |
Ziele |
Die EXTERNAL-IP des Diensts (10.130.1.9 in diesem Beispiel) |
Dienste |
HTTP |
Aktion |
Zulassen |
- Fordern Sie eine öffentliche IP-Adresse für die VM an, die den Dienst bereitstellt.
- Erstellen Sie eine DNAT-Regel für diese öffentliche IP.
Befolgen Sie das Verfahren in
Erstellen oder Ändern von NAT-Regeln im Handbuch
VMware Cloud on AWS – Netzwerk und Sicherheit , um eine DNAT-Regel zu erstellen, die öffentliche IP-Adresse der internen IP-Adresse zuordnet. Wenn Ihre Regel
Interne Adresse abgleichen angibt, müssen Sie auch eine Firewallregel erstellen, die den Zugriff auf die
Öffentliche IP-Adresse auf der Internetschnittstelle ermöglicht.