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

  1. Melden Sie sich unter https://vmc.vmware.com bei VMware Cloud Services an.
  2. 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.
  3. 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
  4. Fordern Sie eine öffentliche IP-Adresse für die VM an, die den Dienst bereitstellt.
    Befolgen Sie das Verfahren unter Anfordern oder Freigeben einer öffentlichen IP-Adresse im Handbuch VMware Cloud on AWS – Netzwerk und Sicherheit:
  5. 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.