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 Google Distributed Cloud (GDC) Air-Gapped VMM API 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 Distributed Cloud wird die gdcloud
- oder kubectl
-CLI 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:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um
MANAGEMENT_API_SERVER
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“. Prüfen Sie, ob Sie die Rolle „Project VirtualMachine Admin“ (project-vm-admin
) im Namespace des Projekts haben, in dem sich die VM befindet.
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 Distributed Cloud VMM API 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 auswärts aktivieren möchten, können Sie die VMEA über die GDC-Konsole oder die Virtual Machine Manager API von Distributed Cloud 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
- Rufen Sie während der VM-Erstellung in der Console auf der Seite VM-Instanz erstellen die Seite Netzwerkdetails auf.
- Suchen Sie im vertikalen Navigationsmenü der Seite nach Netzwerk.
- Klicken Sie das Kästchen Externen Zugriff zulassen an, um externen Zugriff auf die VM zu 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
oderSCTP
. - 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 Distributed Cloud VMM API 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 Distributed Cloud-Projekt, 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 die Distributed Cloud VMM API, um die IP-Adresse abzurufen. 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:
- Klicken Sie im vertikalen Navigationsmenü auf Instanzen.
- Scrollen Sie auf der Seite zu Netzwerkdetails.
Klicken Sie auf das Bearbeitungssymbol unter Eingangsports, um den Eingangsport zu bearbeiten.
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 Distributed Cloud-Projekt, 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 Distributed Cloud 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. Distributed Cloud 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 Distributed Cloud-Projekt, 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 Distributed Cloud-Versionen mussten Sie die VM neu starten, damit sich Änderungen am ausgehenden Traffic 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.