Benutzerdefinierte Domains für Cloud Workstations einrichten

Wenn Sie auf Ihre Workstations zugreifen möchten, können Sie eine vertrauenswürdige benutzerdefinierte Domain angeben, anstatt die Domain cloudworkstations.dev zu verwenden.

Architektur

Wenn Sie Cloud Workstations mit einem benutzerdefinierten Hostnamen verwenden möchten, richten Sie einen privaten Cluster ein und richten Sie den Private Service Connect-Endpunkt (PSC) ein für den HTTP-Ingress für Ihren privaten Cluster. Außerdem müssen Sie einen Application Load Balancer mit PSC-Backend erstellen, der auf den für Ihren privaten Cluster erstellten PSC-Endpunkt verweist. 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:

Abbildung 1 Cluster mit benutzerdefinierter Domain

Hinweis

So richten Sie eine benutzerdefinierte Domain für Cloud Workstations ein:

  1. Erstellen Sie einen privaten Cluster und geben Sie mit der gcloud CLI oder REST API-Befehlen eine vertrauenswürdige benutzerdefinierte Domain an.

  2. 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:

    1. Wenn Ihre Workstations privat sein sollen (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 zuordnet, die vom Load Balancer verwendet wird. Weitere Informationen zum Erstellen eines internen Load Balancers finden Sie unter Virtual Private Cloud (VPC).

    2. Der Dienstanhang, auf den Sie im Load Balancer verweisen müssen, ist nach dem Erstellen des Clusters in der Workstation-Clusterressource verfügbar.

    3. Achten Sie darauf, ein Zertifikat zu erhalten und es im Load Balancer als Platzhalterzertifikat für Ihre Domain anzugeben, z. B. *.us-west1-cluster1.example.com. Unter Zertifikate und Google Cloud Load Balancer finden Sie die Zertifikatstypen, die für den von Ihnen ausgewählten Load Balancer unterstützt werden.

    4. Sie können den Load Balancer auch in einem anderen Projekt erstellen, sofern Sie ihn der Liste PrivateClusterConfig.allowedProjects hinzufügen.

    5. Wenn Sie mehrere Workstation-Cluster in Ihrer Organisation haben, können Sie einen einzelnen Load Balancer mit separaten Backend-Diensten, Zertifikaten und Routingregeln verwenden.

  3. 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.

  4. Wenn Sie über die benutzerdefinierte Domain auf Workstations zugreifen möchten, erstellen Sie mit dem erstellten Cluster eine Workstation-Konfiguration, und dann eine Workstation mit dieser Workstation-Konfiguration.

  5. Starten Sie Ihre 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, die standardmäßig Port 80 ist.
    • WORKSTATION_NAME: der Name Ihrer Workstation.
    • DOMAIN: der clusterspezifische Domainname

Privaten Cluster erstellen

So erstellen Sie einen privaten Workstation-Cluster mit einem privaten Endpunkt:

gcloud

  1. Bevor Sie beginnen, müssen Sie die gcloud CLI mit dem Befehl gcloud init initialisiert und ein Standardprojekt angegeben haben. In den folgenden Beispielen wird davon ausgegangen, dass Sie Ihr Standardprojekt festgelegt haben.

  2. 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 Workstation-Clusters.
    • REGION: der Name der Region des Clusters.
    • DOMAIN: der Domainname, der von Cloud Workstations für den HTTP-Ingress verwendet wird. Verwenden Sie eine für diesen Cluster eindeutige Subdomain, z. B. us-west1-cluster1.example.com.
    • NETWORK: der Name des VPC-Netzwerk. Wenn nichts angegeben ist, wird die Standard-VPC verwendet.
    • SUBNETOWRK: der Name des Subnetzwerks im VPC-Netzwerk. Wenn sowohl Netzwerk als auch Subnetzwerk weggelassen werden, wird die Standard-VPC verwendet und das Standardsubnetzwerk in der angegebenen REGION.

Weitere Informationen zu diesem gcloud CLI-Befehl finden Sie in der gcloud workstations clusters create Referenzdokumentation.

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 für diesen Cluster eindeutige Subdomain sein, z. B. us-west1-cluster1.example.com.
  • NETWORK: der Name des VPC-Netzwerk. Wenn nichts angegeben ist, wird die Standard-VPC verwendet.
  • SUBNETOWRK: der Name des Subnetzwerks im VPC-Netzwerk. Wenn sowohl Netzwerk als auch Subnetzwerk weggelassen werden, wird die Standard-VPC verwendet und das Standardsubnetzwerk in der angegebenen REGION.
  • PROJECT_NAME: der Name des Projekts.
  • REGION: der Name der Region des Clusters.
  • WORKSTATION_CLUSTER: der Name des zu erstellenden Workstation-Clusters.

Weitere Informationen zu dieser API-Methode finden Sie in der workstationClusters.create Referenzdokumentation.

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 Workstation-Clusters.
  • DOMAIN: der Domainname, der von Cloud Workstations für den HTTP-Ingress verwendet wird. Dies sollte eine für diesen Cluster eindeutige Subdomain sein, z. B. us-west1-cluster1.example.com.
  • NETWORK: der Name des VPC-Netzwerk. Wenn nichts angegeben ist, wird die Standard-VPC verwendet.
  • SUBNETOWRK: der Name des Subnetzwerks im VPC-Netzwerk. Wenn sowohl Netzwerk als auch Subnetzwerk weggelassen werden, wird die Standard-VPC verwendet und das Standardsubnetzwerk in der angegebenen REGION.

Weitere Informationen zu dieser API-Methode finden Sie in der workstationClusters.create Referenzdokumentation.

Globalen externen Application Load Balancer mit PSC-Backend erstellen

Führen Sie die folgenden Schritte für die gcloud CLI und die REST API aus, um einen globalen externen Application Load Balancer mit einem PSC-Backend zu erstellen:

  1. NEG zum Herstellen einer Verbindung zu einem veröffentlichten Dienst erstellen
  2. Backend zu einem globalen externen Application Load Balancer hinzufügen
  3. URL-Zuordnung erstellen, um eingehende Anfragen an den Backend-Dienst weiterzuleiten
  4. HTTPS-Zielproxy erstellen
  5. Globale Adresse erstellen
  6. 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 \
  --subnet=SUBNET

Dabei gilt:

  • NEG_NAME ist ein Name für die Netzwerk-Endpunktgruppe.
  • TARGET_SERVICE: der URI des Dienstanhangs.
  • REGION: die Region, in der die Netzwerk-Endpunktgruppe erstellt werden soll. Die Region muss mit der Region des Zieldienstes übereinstimmen.
  • SUBNET: das Subnetz, 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 Subnetzwerk weggelassen werden, wird das Standardnetzwerk verwendet und das Standardsubnetzwerk in der angegebenen REGION.

Weitere Informationen zu diesem gcloud CLI-Befehl finden Sie in der gcloud compute network-endpoint-groups create Referenzdokumentation.

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: die Region, in der die Netzwerk-Endpunktgruppe erstellt werden soll. Die Region muss mit der Region des Zieldienstes übereinstimmen.
  • NEG_NAME: ein Name für die Netzwerk-Endpunktgruppe.
  • TARGET_SERVICE: der URI des Dienstanhangs.

Backend zu einem globalen externen Application Load Balancer hinzufügen

gcloud

  1. 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.

  2. 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: die Region der Netzwerk-Endpunktgruppe.

Weitere Informationen zu diesem gcloud CLI-Befehl finden Sie in der gcloud compute backend-services create und gcloud compute backend-services add-backend Referenzdokumentation.

REST

  1. 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.

  2. 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: der Name des Backend-Dienstes.
    • NEG_REGION: die Region der Netzwerk-Endpunktgruppe.
    • NEG_NAME: 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: 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 CLI-Befehl finden Sie in der gcloud compute url-maps create Referenzdokumentation.

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: 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.

HTTPS-Zielproxy 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 besitzt. 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: der Name des zu erstellenden HTTPS-Zielproxys.
  • SSL_CERTIFICATE_NAME: das SSL-Zertifikat, das dem Load Balancer zugeordnet ist.
  • URL_MAP_NAME: die URL-Zuordnungsressource.

Weitere Informationen zu diesem gcloud CLI-Befehl finden Sie in der gcloud compute target-https-proxies create Referenzdokumentation.

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: der Name des zu erstellenden HTTPS-Zielproxys.

Globale Adresse erstellen

Reservieren Sie eine statische IP-Adresse, die von Ihrem Load Balancer verwendet werden soll:

gcloud

gcloud compute addresses create LB_IP_ADDRESS_NAME \
  --global

Ersetzen Sie Folgendes:

  • LB_IP_ADDRESS_NAME: der Name für die reservierte statische externe oder interne IP-Adresse des Load Balancers.

Weitere Informationen zu diesem gcloud CLI-Befehl finden Sie in der gcloud compute addresses create Referenzdokumentation.

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 für die reservierte statische externe oder interne IP-Adresse des Load Balancers.

Weiterleitungsregel erstellen

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 für die reservierte statische externe oder interne IP-Adresse des Load Balancers.
  • TARGET_HTTPS_PROXY_NAME: der HTTPS-Zielproxy, der den Traffic empfängt.

Weitere Informationen zu diesem gcloud CLI-Befehl finden Sie in der gcloud compute forwarding-rules create Referenzdokumentation.

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 für die reservierte statische externe oder interne 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.

Workstation-Konfiguration und Workstation erstellen

So greifen Sie über die benutzerdefinierte Domain auf Workstations zu:

  1. Erstellen Sie mit dem Cluster mit der benutzerdefinierten Domain eine Workstation-Konfiguration .

  2. Erstellen Sie eine Workstation mit der Workstation-Konfiguration mit der benutzerdefinierten Domain.

Nächste Schritte

Weitere Informationen zum Einrichten benutzerdefinierter Domains und privater Cluster finden Sie unter: