IP-Adressen aktivieren

Sie können festlegen, dass jede VM-Instanz entweder über das externe Netzwerk oder über eine andere Organisation erreichbar ist. Dies wird als VM-Ingress bezeichnet. Eine VM-Arbeitslast in einem Organisationsprojekt kann entweder das externe Netzwerk oder die aktuelle VM erreichen, die für Dienste in anderen Organisationen verfügbar gemacht wird. Dies wird als VM-Egress bezeichnet.

Mit VirtualMachineExternalAccess (VMEA) können Sie VM-Ingress und VM-Egress gemeinsam steuern. Sie finden sowohl die Ingress- als auch die Egress-IP-Adressen, die Sie für eine VM-Instanz in der VMM API der Air-Gap-Appliance von Google Distributed Cloud (GDC) oder über die GDC-Konsole aktiviert haben.

Hinweise

Wenn Sie die Befehlszeilenbefehle (Command-Line Interface, CLI) von gdcloud verwenden möchten, müssen Sie die gdcloud-CLI heruntergeladen, installiert und konfiguriert haben. Für alle Befehle für die GDC-Air-Gap-Appliance wird die gdcloud- oder kubectl-Befehlszeile verwendet. Außerdem ist eine Betriebssystemumgebung erforderlich.

Pfad der kubeconfig-Datei abrufen

Damit Sie Befehle für den Management API-Server ausführen können, benötigen Sie die folgenden Ressourcen:

  1. Suchen Sie den Namen des Management API-Servers oder fragen Sie Ihren Plattformadministrator danach.

  2. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.

  3. Verwenden Sie den Pfad, um MANAGEMENT_API_SERVER{"</var>"}} in dieser Anleitung zu ersetzen.

Berechtigungen und Zugriff anfordern

Zum Ausführen der auf dieser Seite aufgeführten Aufgaben benötigen Sie die Rolle „ProjectVirtualMachine Admin“. Folgen Sie der Anleitung, um entweder die Rolle „Project VirtualMachine Admin“ (project-vm-admin) im Namespace des Projekts, in dem sich die VM befindet, zu bestätigen oder von Ihrem Projekt-IAM-Administrator zuweisen zu lassen.

Wenn Sie VM-Vorgänge über die GDC-Konsole oder die gdcloud-CLI ausführen möchten, bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Project VirtualMachine Admin“ und die Rolle „Project Viewer“ (project-viewer) zuzuweisen.

Externen VM-Zugriff konfigurieren

VirtualMachineExternalAccess (VMEA) steuert den eingehenden und ausgehenden VM-Traffic. VMEA kann VM-Ingress und VM-Egress nicht separat steuern. Der Ein- und Ausgang einer VM muss gleichzeitig aktiviert oder deaktiviert werden.

Sie können VMEA entweder über die Benutzeroberfläche oder über die VMM API der GDC-Air-Gap-Appliance konfigurieren und steuern. Eine VM kann nur eine einzige VMEA haben. Wenn eine VM keine VMEA hat, sind sowohl der eingehende als auch der ausgehende Traffic standardmäßig deaktiviert.

Externen Zugriff aktivieren

Wenn Sie eine VM mit externem Zugriff für die Datenübertragung ein- und ausrichten möchten, können Sie die VMEA über die GDC-Konsole oder die Virtual Machine Manager API der GDC-Air-Gap-Appliance konfigurieren.

Standardmäßig ist der netzwerkinterne Traffic im Projekt zulässig und Sie können direkt auf Ihre VM im Projekt zugreifen. Eine Netzwerkrichtlinie blockiert den gesamten eingehenden Traffic zur VM von außerhalb des Projekts. Sie müssen manuell eine neue Netzwerkrichtlinie erstellen, damit Ihre Quell-IP-Adresse über die Datenübertragung auf die VM zugreifen kann. Diese Netzwerkrichtlinie kann entweder eine projektübergreifende Netzwerkrichtlinie für Traffic oder eine organisationsübergreifende Netzwerkrichtlinie für Traffic sein. Der Speicherort hängt davon ab, von wo aus Sie auf die VM zugreifen möchten.

Sie können den externen Zugriff auf eine VM aktivieren und deaktivieren, indem Sie true oder false im Feld enabled der VMEA-Spezifikation angeben. Für den VM-Ingress können Sie die Datenübertragung in Ports konfigurieren, indem Sie den Namen, das Protokoll und die Portnummer für jeden Port angeben, den Sie im Feld ports der VMEA-Spezifikation hinzufügen möchten.

So aktivieren Sie den externen Zugriff auf eine VM, indem Sie eine neue VMEA erstellen:

Console

  1. Rufen Sie während der VM-Erstellung in der Console auf der Seite VM-Instanz erstellen die Seite Netzwerkdetails auf.
  2. Suchen Sie im vertikalen Navigationsmenü der Seite nach Netzwerk.
  3. Klicken Sie das Kästchen Externen Zugriff zulassen an, um externen Zugriff auf die VM zu aktivieren.

Externen Zugriff bei der VM-Erstellung aktivieren

API

Führen Sie dazu diesen Befehl aus:

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineExternalAccess
metadata:
   name: VM_NAME
spec:
   enabled: true
   ports:
     - name: PORT_NAME
       protocol: PROTOCOL
       port: PORT_NUMBER
EOF

Ersetzen Sie die folgenden Variablen:

  • MANAGEMENT_API_SERVER: die kubeconfig-Datei für den Management API-Server.
  • VM_NAME ist der Name Ihrer VM.
  • PORT_NAME: der Portname.
  • PROTOCOL: Das Protokoll, das der Ingress-Dienst verwenden soll. Der Protokollname muss in Großbuchstaben geschrieben sein und ein von Kubernetes unterstütztes Protokoll sein, z. B. TCP, UDP oder SCTP.
  • PORT_NUMBER: die Portnummer.

So aktivieren Sie den externen Zugriff auf eine VM, indem Sie eine vorhandene VMEA über die VMM API bearbeiten:

kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT

Externen Zugriff deaktivieren

Wenn eine VM keine entsprechende VMEA hat, sind sowohl der eingehende als auch der ausgehende Traffic deaktiviert. Wenn eine VM eine entsprechende VMEA hat, können Sie die VMEA deaktivieren, indem Sie das Feld enabled auf false setzen oder die VMEA direkt löschen. Sie können diese Vorgänge über die VMM API der GDC-Air-Gap-Appliance ausführen.

So deaktivieren Sie den externen Zugriff:

API

Externen Zugriff deaktivieren, indem Sie eine VMEA löschen:

kubectl --kubeconfig MANAGEMENT_API_SERVER delete virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT

Ersetzen Sie Folgendes:

  • MANAGEMENT_API_SERVER: die kubeconfig-Datei für den Management API-Server.
  • VM_NAME: der Name der VM.
  • PROJECT: Das Projekt der GDC-Air-Gap-Appliance, in dem sich die VM befindet.

Externen Zugriff deaktivieren, indem Sie eine VMEA bearbeiten:

kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT

Aktualisieren Sie das Feld enabled auf false.

Eingehender Traffic

Ingress-IP-Adressen ansehen

Wenn für eine VM Ingress aktiviert ist, wird nach der Erstellung eine Ingress-IP-Adresse in der GDC-Konsole angezeigt. Sie finden diese Ingress-IP-Adresse auch auf der Seite VM-Details in der GDC-Konsole.

Verwenden Sie zum Abrufen der IP-Adresse die VMM API der GDC Air-Gap-Appliance. Führen Sie Folgendes aus:

API

Rufen Sie die IP-Adresse ab:

kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.ingressIP}'

Verwenden Sie für eine VM mit einem anderen Betriebssystem den Befehl ssh, um die VM mit der Ingress-IP-Adresse und dem Port aufzurufen, den Sie mit TCP aktiviert haben.

Eingehenden Traffic bearbeiten

Nachdem Sie VMEA für eine VM aktiviert haben, können Sie den Ingress anpassen, indem Sie die VMEA bearbeiten. Sie können die Spezifikation des VM-Ingress direkt in der GDC-Konsole bearbeiten. Sie können auch die kubectl-CLI verwenden, um den VM-Ingress über die Spezifikation des VMEA zu bearbeiten.

Führen Sie die folgenden Schritte aus, um das VMEA zu bearbeiten und den Ingress anzupassen:

Verwenden Sie beispielsweise die folgenden Befehle, um Port PORT_NUMBER für den eingehenden Traffic einer vorhandenen VM über das TCP-Protokoll hinzuzufügen:

Console

Bearbeiten Sie die Ports direkt im VM-Ingress-Dienst über die GDC-Konsole:

  1. Klicken Sie im vertikalen Navigationsmenü auf Instanzen.
  2. Scrollen Sie auf der Seite zu Netzwerkdetails.
  3. Klicken Sie auf das Bearbeitungssymbol unter Eingangsports, um den Eingangsport zu bearbeiten.

    Console-Benutzeroberfläche mit der Liste der Netzwerkdetails und dem Bearbeitungssymbol für Ingress-Ports

API

kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT --type "json" -p '[{"op":"add","path":"/spec/ports/-","value": {"name":"PORT_NAME","port":PORT_NUMBER, "Protocol":"TCP"}}]'

Ersetzen Sie Folgendes:

  • MANAGEMENT_API_SERVER: die kubeconfig-Datei für den Management API-Server.
  • VM_NAME: der Name der VM.
  • PROJECT: Das Projekt der GDC-Air-Gap-Appliance, in dem sich die VM befindet.
  • PORT_NAME: der Name des Ports, der hinzugefügt werden soll.
  • PORT_NUMBER: die Portnummer.

Ingress mit einem Nicht-TCP-Protokoll aktivieren

Mit der GDC-Appliance ohne Internetverbindung können Sie den VM-Ingress mit verschiedenen Protokollen aktivieren. Standardmäßig verwendet ein VM-Ingress-Dienst das TCP-Protokoll. Sie können Ihrer VM eigene Nicht-TCP-Protokolle für eingehenden Traffic hinzufügen. Die GDC-Appliance für Air-Gap-Umgebungen unterstützt die folgenden Protokolle:

  • Transmission Control Protocol (TCP).
  • User Datagram Protocol (UDP).
  • Stream Control Transmission Protocol (SCTP)

Sie können die Datenübertragung mit einem Nicht-TCP-Protokoll aktivieren, indem Sie beim Erstellen von VMEA andere Protokollnamen angeben.

Ausgehender Traffic

Eine VM-Arbeitslast in einem Organisationsprojekt kann das externe Netzwerk erreichen oder für Dienste in anderen Organisationen verfügbar gemacht werden. Wenn Sie die Datenübertragung nach außen für die VM aktivieren, wird eine Egress-IP-Adresse generiert. Die VM stellt mit dieser IP-Adresse eine Verbindung zu den externen Diensten her.

Damit diese IP-Adressdaten aus dem externen Netzwerk übertragen werden, müssen Sie möglicherweise Projektnetzwerkrichtlinien anwenden. Weitere Informationen finden Sie unter Netzwerkrichtlinie für organisationsübergreifenden Traffic.

Ausgangs-IP-Adresse ansehen

Wenn für eine VM ausgehender Traffic aktiviert ist, wird nach der Erstellung eine IP-Adresse für ausgehenden Traffic in der GDC-Konsole angezeigt. Sie finden diese Egress-IP-Adresse auch auf der Seite VM-Details.

So rufen Sie die Egress-IP-Adresse auf:

API

Rufen Sie die IP-Adresse ab:

kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.egressIP}'

Ersetzen Sie Folgendes:

  • MANAGEMENT_API_SERVER: die kubeconfig-Datei für den Management API-Server.
  • VM_NAME: der Name der VM.
  • PROJECT: Das Projekt der GDC-Air-Gap-Appliance, in dem sich die VM befindet.

Der ausgehende Traffic von VMs basiert auf einem Projekt. VMs im selben Projekt haben dieselbe ausgehende IP-Adresse.

Ausgehenden Traffic steuern

In früheren Versionen der GDC-Air-Gap-Appliance mussten Sie die VM neu starten, damit sich Änderungen am Egress auf eine laufende VM auswirken. In Version 1.11 können Sie den VM-Ausgang aktivieren und deaktivieren, ohne die VM neu zu starten. Diese Änderung wird sofort nach der Aktualisierung der VMEA wirksam.