Benutzerdefinierte Domains für Cloud-Arbeitsstationen einrichten

Für den Zugriff auf Ihre Workstations können Sie eine vertrauenswürdige, benutzerdefinierte Domain angeben, als mit der Domain cloudworkstations.dev.

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-Eingangsverkehr für Ihren privaten Cluster ein. Sie müssen auch eine Application Load Balancer mit PSC-Backend, das auf den erstellten PSC-Endpunkt abzielt für Ihren privaten Cluster. 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. Privaten Cluster erstellen und geben Sie eine vertrauenswürdige, benutzerdefinierte Domain über die gcloud-Befehlszeile oder REST API-Befehle.

  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 (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 die VPC-Dokumentation

    2. Den Dienstanhang, auf den Sie im Load-Balancer verweisen müssen können auf der Workstationclusterressource abgerufen werden, nachdem Sie die Cluster.

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

    4. Sie können den Load-Balancer auch in einem anderen Projekt erstellen, fügen Sie es der PrivateClusterConfig.allowedProjects-Liste hinzu.

    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 dies eine Domain ist, die Sie verwalten, richten Sie ein DNS für diese Domain ein, indem Sie Zuordnung aller Subdomains der bereitgestellten Domain zum Load-Balancer. 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 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.

  5. Starten Sie Ihre Workstation und prüfen Sie die URL. Wenn Sie eine benutzerdefinierte Domain angeben, Die Workstation-URL hat folgendes 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: Name Ihrer Workstation.
    • DOMAIN: Ihr clusterspezifischer Domainname

Privaten Cluster erstellen

Erstellen Sie einen privaten Workstationcluster mit einem privaten Endpunkt:

gcloud

  1. Bevor Sie beginnen, müssen Sie die gcloud CLI initialisiert haben, indem Sie gcloud init ausgeführt 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 \
      --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 Eingehender HTTP-Traffic. Verwenden Sie eine Subdomain, die nur für diesen Cluster gilt, z. B. us-west1-cluster1.example.com.

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}}'  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 Eingehender HTTP-Traffic. Dies sollte eine Subdomain sein, die nur für diesen Cluster verwendet wird, z. B. us-west1-cluster1.example.com.
  • 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 workstationClusters.create in der Referenzdokumentation.

REST

POST https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstationClusterId=WORKSTATION_CLUSTER
{
  "domainConfig": {
    "domain": "DOMAIN"
  },
  "privateClusterConfig": {
    "enablePrivateEndpoint": true
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_NAME: der Name des Projekts.
  • REGION: der Name der Region des Clusters.
  • WORKSTATION_CLUSTER: der Name des Workstationclusters zu erstellen.
  • DOMAIN: Der Domainname, der von Cloud Workstations für den HTTP-Ingress verwendet wird. Dies sollte eine Subdomain sein, die für diesen Cluster eindeutig ist Beispiel: us-west1-cluster1.example.com.

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

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:

  1. NEG erstellen, um eine Verbindung zu einem veröffentlichten Dienst herzustellen
  2. Back-End 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 Dienst, Anhangs-URI 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: das Subnetz zum Erstellen des Netzwerkendpunkts gruppieren. 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 angegebenen REGION.

Weitere Informationen zu diesem gcloud-Befehl der Befehlszeile finden Sie in der gcloud compute network-endpoint-groups create in der 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 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

  1. Erstellen Sie einen Back-End-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 ist die Region der Netzwerk-Endpunktgruppe.

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

REST

  1. Erstellen Sie einen Back-End-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 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 der Befehlszeile finden Sie in der gcloud compute url-maps create in der 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 ist der Name der zu erstellenden URL-Zuordnung.
  • BACKEND_SERVICE_NAME: der Name des Back-Ends Dienst, der für Anfragen verwendet werden soll, wenn diese URL-Zuordnung keine Zuordnungen hat.

Ziel-HTTPS-Proxy erstellen

Erstellen Sie einen HTTPS-Zielproxy, um Anfragen an Ihre URL-Zuordnung zu leiten. Der Proxy ist Teil des Load-Balancers, der das SSL-Zertifikat für HTTPS besitzt Load-Balancing. 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 Ziel-HTTPS Proxy erstellt werden soll.
  • 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, 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 der reservierten statischen Datei externe oder interne IP-Adresse des Load-Balancers.

Weitere Informationen zu diesem gcloud-Befehl der Befehlszeile finden Sie in der gcloud compute addresses create in der 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 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 Ziel-HTTPS-Proxy, der den Traffic empfängt.

Weitere Informationen zu diesem gcloud-Befehl der Befehlszeile finden Sie in der gcloud compute forwarding-rules create in der 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 der reservierten statischen externen oder internen IP-Adresse des Load Balancers.
  • TARGET_HTTPS_PROXY_NAME: der Ziel-HTTPS-Proxy, der den Traffic empfängt.
  • HTTPS_FORWARDING_RULE_NAME: der Name des Weiterleitungsregel, die erstellt werden soll.

DNS einrichten

Richten Sie ein DNS ein und fügen Sie einen Eintrag hinzu, der *.DOMAIN zuordnet, z. B. *.example.com für die im vorherigen Schritt reservierte IP-Adresse Wenn Sie wie Sie das DNS für Ihre Domain mit Cloud DNS verwalten, finden Sie unter Fügen Sie einen DNS-Eintrag hinzu.

Workstationkonfiguration und Workstation erstellen

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

  1. Verwenden Sie den Cluster mit der benutzerdefinierten Domain, um eine Workstationkonfiguration zu erstellen.

  2. Workstation erstellen Dabei wird die Workstationkonfiguration mit der benutzerdefinierten Domain verwendet.

Nächste Schritte

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