Sie können für den Zugriff auf Ihre Workstations eine vertrauenswürdige, benutzerdefinierte Domain angeben, anstatt die cloudworkstations.dev
-Domain zu verwenden.
Architektur
Wenn Sie Cloud Workstations mit einem benutzerdefinierten Hostnamen verwenden möchten, richten Sie einen privaten Cluster ein und den Private Service Connect-Endpunkt (PSC) für den HTTP-Eintrag für Ihren privaten Cluster ein. Außerdem müssen Sie einen Application Load Balancer mit PSC-Backend erstellen, der auf den PSC-Endpunkt ausgerichtet ist, der für Ihren privaten Cluster erstellt wurde. Dieser Application Load Balancer kann extern oder intern sein und verwaltet das SSL-Zertifikat für Ihre benutzerdefinierte Domain.
Das folgende Diagramm zeigt einen Cluster mit einer benutzerdefinierten Domain:
Hinweise
So richten Sie eine benutzerdefinierte Cloud Workstations-Domain ein:
Erstellen Sie einen privaten Cluster und geben Sie mit der
gcloud
CLI oder den REST API-Befehlen eine vertrauenswürdige, benutzerdefinierte Domain an.Erstellen Sie einen globalen externen Application Load Balancer mit einem Private Service Connect-Backend (PSC) im selben Projekt, das Sie für das Workstation-Clusterprojekt verwendet haben. Wichtige Hinweise:
Wenn Ihre Workstations privat sein sollen (d. h. nicht über das öffentliche Internet zugänglich), müssen Sie einen internen Load Balancer erstellen. Erstellen Sie dazu eine private DNS-Zone und fügen Sie einen Eintrag hinzu, der die Domain der internen IP-Adresse des Load Balancers zuordnet. Weitere Informationen zum Erstellen eines internen Load Balancers finden Sie unter Virtual Private Cloud (VPC).
Die Dienstanhänge, auf die Sie im Load Balancer verweisen müssen, können Sie nach dem Erstellen des Clusters über die Clusterressource der Workstation abrufen.
Sie müssen ein Zertifikat erwerben und es auf dem Load Balancer als Platzhalterzertifikat für Ihre Domain angeben, z. B.
*.us-west1-cluster1.example.com
. Informationen zu den Zertifikatstypen, die für den ausgewählten Load Balancer unterstützt werden, finden Sie unter Zertifikate und Google Cloud-Load Balancer.Sie können den Load Balancer auch in einem anderen Projekt erstellen, sofern Sie ihn der Liste
PrivateClusterConfig.allowedProjects
hinzufügen.Wenn Sie mehrere Workstation-Cluster in Ihrer Organisation haben, können Sie einen einzelnen Load Balancer mit separaten Backend-Diensten, Zertifikaten und Routingregeln verwenden.
Richten Sie ein Domain Name System (DNS) ein. Da es sich um eine von Ihnen verwaltete Domain handelt, richten Sie ein DNS für diese Domain ein, indem Sie alle Subdomains der angegebenen Domain dem Load Balancer zuordnen. Erstellen Sie beispielsweise eine DNS-Zone für
us-west1-cluster1.example.com
und fügen Sie einen Eintrag hinzu, der*.us-west1-cluster1.example.com
der externen IP-Adresse zuordnet, die von Ihrem Load Balancer verwendet wird.Wenn Sie mit der benutzerdefinierten Domain auf Workstations zugreifen möchten, verwenden Sie den von Ihnen erstellten Cluster, um eine Workstationkonfiguration zu erstellen, und erstellen Sie dann mit dieser Workstationkonfiguration eine Workstation.
Starten Sie die Workstation und prüfen Sie die URL. Wenn Sie eine benutzerdefinierte Domain angeben, hat die Workstation-URL das folgende Format:
https://PORT-WORKSTATION_NAME.DOMAIN
Die folgenden Teile der URL hängen von Ihrer Konfiguration ab:
PORT
: die Portnummer, standardmäßig Port80
.WORKSTATION_NAME
: Name Ihrer Workstation.DOMAIN
: Ihr clusterspezifischer Domainname
Privaten Cluster erstellen
So erstellen Sie einen privaten Workstation-Cluster mit einem privaten Endpunkt:
gcloud
Bevor Sie beginnen, müssen Sie die
gcloud
CLI initialisiert haben, indem Siegcloud init
ausgeführt und ein Standardprojekt angegeben haben. In den folgenden Beispielen wird davon ausgegangen, dass Sie ein Standardprojekt festgelegt haben.Führen Sie den folgenden Befehl aus, um einen privaten Workstation-Cluster zu erstellen:
gcloud workstations clusters create WORKSTATION_CLUSTER \ --region=REGION \ --domain=DOMAIN \ --network=NETWORK \ --subnetwork=SUBNETWORK \ --enable-private-endpoint
Ersetzen Sie Folgendes:
WORKSTATION_CLUSTER
: Der Name des zu erstellenden Workstationclusters.REGION
: der Name der Region des Clusters.DOMAIN
: Der Domainname, der von Cloud Workstations für den HTTP-Ingress verwendet wird. Verwenden Sie eine Subdomain, die nur für diesen Cluster gilt, z. B.us-west1-cluster1.example.com
.NETWORK
: der Name des VPC-Netzwerks. Wenn nichts angegeben ist, wird die Standard-VPC verwendet.SUBNETOWRK
: der Name des Subnetzes im VPC-Netzwerk. Wenn sowohl Netzwerk als auch Subnetz weggelassen werden, wird das Standard-VPC und das Standard-Subnetz in der angegebenen REGION verwendet.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud workstations clusters create
.
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{"domain_config": {"domain": "DOMAIN"}, "private_cluster_config": {"enable_private_endpoint":true}, "network": "NETWORK", "subnetwork": "SUBNETWORK"}' https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstation_cluster_id=WORKSTATION_CLUSTER
Ersetzen Sie Folgendes:
DOMAIN
: Der Domainname, der von Cloud Workstations für den HTTP-Ingress verwendet wird. Dies sollte eine Subdomain sein, die nur für diesen Cluster verwendet wird, z. B.us-west1-cluster1.example.com
.NETWORK
: der Name des VPC-Netzwerks. Wenn nichts angegeben ist, wird die Standard-VPC verwendet.SUBNETOWRK
: der Name des Subnetzes im VPC-Netzwerk. Wenn sowohl Netzwerk als auch Subnetz weggelassen werden, wird das Standard-VPC und das Standard-Subnetz in der angegebenen REGION verwendet.PROJECT_NAME
: der Name des Projekts.REGION
: der Name der Region des Clusters.WORKSTATION_CLUSTER
: Der Name des zu erstellenden Workstationclusters.
Weitere Informationen zu dieser API-Methode finden Sie in der Referenzdokumentation zu workstationClusters.create
.
REST
POST https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstationClusterId=WORKSTATION_CLUSTER { "domainConfig": { "domain": "DOMAIN" }, "privateClusterConfig": { "enablePrivateEndpoint": true } "network": "NETWORK" "subnetwork": "SUBNETWORK" }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.REGION
: der Name der Region des Clusters.WORKSTATION_CLUSTER
: Der Name des zu erstellenden Workstationclusters.DOMAIN
: Der Domainname, der von Cloud Workstations für den HTTP-Ingress verwendet wird. Dies sollte eine Subdomain sein, die nur für diesen Cluster verwendet wird, z. B.us-west1-cluster1.example.com
.NETWORK
: der Name des VPC-Netzwerks. Wenn nichts angegeben ist, wird die Standard-VPC verwendet.SUBNETOWRK
: der Name des Subnetzes im VPC-Netzwerk. Wenn sowohl Netzwerk als auch Subnetz weggelassen werden, wird das Standard-VPC und das Standard-Subnetz in der angegebenen REGION verwendet.
Weitere Informationen zu dieser API-Methode finden Sie in der Referenzdokumentation zu workstationClusters.create
.
Globalen externen Application Load Balancer mit PSC-Backend erstellen
Führen Sie die folgenden gcloud
Schritte für die Befehlszeile und die REST API aus, um einen globalen externen Application Load Balancer mit einem PSC-Backend zu erstellen:
- NEG zum Herstellen einer Verbindung zu einem veröffentlichten Dienst erstellen
- Globalem externen Application Load Balancer ein Backend hinzufügen
- URL-Zuordnung erstellen, um eingehende Anfragen an den Backend-Dienst weiterzuleiten
- Ziel-HTTPS-Proxy erstellen
- Globale Adresse erstellen
- Weiterleitungsregel erstellen
NEG zum Herstellen einer Verbindung zu einem veröffentlichten Dienst erstellen
Wenn Sie eine NEG erstellen, die auf einen veröffentlichten Dienst verweist, benötigen Sie den URI des Dienstanhangs für den Dienst. Der Dienstanhang hat folgendes Format: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
.
Sie finden den URI in der Workstation-Clusterressource.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET
Dabei gilt:
NEG_NAME
ist ein Name für die Netzwerk-Endpunktgruppe.TARGET_SERVICE
ist der URI des Dienstanhangs.REGION
ist die Region, in der die Netzwerk-Endpunktgruppe erstellt werden soll. Die Region muss mit der Region des Zieldienstes übereinstimmen.NETWORK
ist die Region, in der die Netzwerk-Endpunktgruppe erstellt werden soll. Wenn nichts angegeben ist, wird das Standardnetzwerk verwendet.SUBNET
ist das Subnetzwerk, in dem die Netzwerk-Endpunktgruppe erstellt werden soll. Das Subnetz muss sich in derselben Region wie der Zieldienst befinden. Ein Subnetz muss angegeben werden, wenn Sie das Netzwerk angeben. Wenn sowohl Netzwerk als auch Subnetz weggelassen werden, wird das Standardnetzwerk verwendet und das Standardsubnetz in der angegebenenREGION
.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud compute network-endpoint-groups create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups { "pscTargetService": "TARGET_SERVICE", "networkEndpointType": "PRIVATE_SERVICE_CONNECT", "name": "NEG_NAME" }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.REGION
ist die Region, in der die Netzwerk-Endpunktgruppe erstellt werden soll. Die Region muss mit der Region des Zieldienstes übereinstimmen.NEG_NAME
ist ein Name für die Netzwerk-Endpunktgruppe.TARGET_SERVICE
ist der URI des Dienstanhangs.
Globalem externen Application Load Balancer ein Backend hinzufügen
gcloud
Erstellen Sie einen Backend-Dienst für den Zieldienst:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Ersetzen Sie
BACKEND_SERVICE_NAME
durch den Namen des Backend-Dienstes.Fügen Sie die Private Service Connect NEG hinzu, die auf den Zieldienst verweist.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --global
Ersetzen Sie dabei Folgendes:
BACKEND_SERVICE_NAME
ist der Name des Backend-Dienstes.NEG_NAME
ist der Name der Netzwerk-Endpunktgruppe.NEG_REGION
ist die Region der Netzwerk-Endpunktgruppe.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud compute backend-services create
und gcloud compute backend-services add-backend
.
REST
Erstellen Sie einen Backend-Dienst für den Zieldienst:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices { "protocol": "HTTPS", "loadBalancingScheme": "EXTERNAL_MANAGED", "name": "BACKEND_SERVICE_NAME" }
Ersetzen Sie
BACKEND_SERVICE_NAME
durch den Namen des Backend-Dienstes.Fügen Sie die Private Service Connect NEG hinzu, die auf den Zieldienst verweist.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/NEG_REGION/networkEndpointGroups/NEG_NAME " } ] }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.BACKEND_SERVICE_NAME
ist der Name des Backend-Dienstes.NEG_REGION
ist die Region der Netzwerk-Endpunktgruppe.NEG_NAME
ist der Name der Netzwerk-Endpunktgruppe.
URL-Zuordnung erstellen, um eingehende Anfragen an den Backend-Dienst weiterzuleiten
gcloud
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
Ersetzen Sie Folgendes:
URL_MAP_NAME
ist der Name der zu erstellenden URL-Zuordnung.BACKEND_SERVICE_NAME
: Der Name des Backend-Dienstes, der für Anfragen verwendet werden soll, wenn diese URL-Zuordnung keine Zuordnungen enthält.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud compute url-maps create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps { "name": "URL_MAP_NAME", "defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME " }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.URL_MAP_NAME
ist der Name der zu erstellenden URL-Zuordnung.BACKEND_SERVICE_NAME
: Der Name des Backend-Dienstes, der für Anfragen verwendet werden soll, wenn diese URL-Zuordnung keine Zuordnungen enthält.
Ziel-HTTPS-Proxy erstellen
Erstellen Sie einen HTTPS-Zielproxy, um Anfragen an Ihre URL-Zuordnung zu leiten. Der Proxy ist der Teil des Load Balancers, der das SSL-Zertifikat für das HTTPS-Load Balancing enthält. Daher laden Sie in diesem Schritt auch Ihr Zertifikat:
gcloud
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --global
Ersetzen Sie Folgendes:
TARGET_HTTPS_PROXY_NAME
ist der Name des zu erstellenden HTTPS-Ziel-Proxys.SSL_CERTIFICATE_NAME
: das SSL-Zertifikat, das dem Load Balancer zugeordnet ist.URL_MAP_NAME
: die URL-Zuordnungsressource.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud compute target-https-proxies create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies { "sslCertificates": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/sslCertificates/SSL_CERTIFICATE_NAME" ], "urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps/URL_MAP_NAME", "name": "TARGET_HTTPS_PROXY_NAME" }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.SSL_CERTIFICATE_NAME
: das SSL-Zertifikat, das dem Load Balancer zugeordnet ist.URL_MAP_NAME
: die URL-Zuordnungsressource.TARGET_HTTPS_PROXY_NAME
ist der Name des zu erstellenden HTTPS-Ziel-Proxys.
Globale Adresse erstellen
Reservieren Sie eine statische IP-Adresse für den Load Balancer:
gcloud
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --global
Ersetzen Sie Folgendes:
LB_IP_ADDRESS_NAME
: der Name der reservierten statischen externen oder internen IP-Adresse des Load Balancers.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud compute addresses create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses { "name": "LB_IP_ADDRESS_NAME" }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.LB_IP_ADDRESS_NAME
: der Name der reservierten statischen externen oder internen IP-Adresse des Load Balancers.
Erstellen Sie eine Weiterleitungsregel.
Erstellen Sie eine Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten:
gcloud
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=LB_IP_ADDRESS_NAME \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --global \ --ports=443
Ersetzen Sie Folgendes:
HTTPS_FORWARDING_RULE_NAME
: der Name der zu erstellenden Weiterleitungsregel.LB_IP_ADDRESS_NAME
: der Name der reservierten statischen externen oder internen IP-Adresse des Load Balancers.TARGET_HTTPS_PROXY_NAME
: der HTTPS-Zielproxy, der den Traffic empfängt.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie in der Referenzdokumentation zu gcloud compute forwarding-rules create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/forwardingRules { "loadBalancingScheme": "EXTERNAL_MANAGED", "networkTier": "PREMIUM", "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/LB_IP_ADDRESS_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME", "name": "HTTPS_FORWARDING_RULE_NAME", "portRange": "443-443" }
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts.LB_IP_ADDRESS_NAME
: der Name der reservierten statischen externen oder internen IP-Adresse des Load Balancers.TARGET_HTTPS_PROXY_NAME
: der HTTPS-Zielproxy, der den Traffic empfängt.HTTPS_FORWARDING_RULE_NAME
: der Name der zu erstellenden Weiterleitungsregel.
DNS einrichten
Richten Sie ein DNS ein und fügen Sie einen Eintrag hinzu, der *.DOMAIN
(z. B. *.example.com
) der im vorherigen Schritt reservierten IP-Adresse zuordnet. Wenn Sie DNS für Ihre Domain mit Cloud DNS verwalten, finden Sie weitere Informationen unter DNS-Eintrag hinzufügen.
Workstationkonfiguration und Workstation erstellen
So greifen Sie über die benutzerdefinierte Domain auf Workstations zu:
Verwenden Sie den Cluster mit der benutzerdefinierten Domain, um eine Workstationkonfiguration zu erstellen.
Erstellen Sie eine Workstation mit der Workstationkonfiguration mit der benutzerdefinierten Domain.
Nächste Schritte
Weitere Informationen zum Einrichten benutzerdefinierter Domains und privater Cluster finden Sie hier: