Untuk mengakses workstation, Anda dapat menentukan domain kustom tepercaya, bukan
menggunakan domain cloudworkstations.dev
.
Arsitektur
Untuk menggunakan Cloud Workstations dengan nama host kustom, siapkan cluster pribadi dan siapkan endpoint Private Service Connect (PSC) untuk traffic masuk HTTP bagi cluster pribadi Anda. Anda juga harus membuat Application Load Balancer dengan backend PSC yang menargetkan endpoint PSC yang dibuat untuk cluster pribadi Anda. Load Balancer Aplikasi ini dapat bersifat eksternal atau internal, dan mengelola sertifikat SSL untuk domain kustom Anda.
Diagram berikut mengilustrasikan cluster dengan domain kustom:
Sebelum memulai
Untuk menyiapkan domain kustom Cloud Workstations, ikuti langkah-langkah berikut:
Buat cluster pribadi dan tentukan domain kustom tepercaya menggunakan perintah
gcloud
CLI atau REST API.Buat Load Balancer Aplikasi eksternal global dengan backend Private Service Connect (PSC) dalam project yang sama dengan yang Anda gunakan untuk project cluster workstation. Perhatikan hal berikut:
Jika Anda ingin workstation bersifat pribadi (tidak dapat diakses melalui internet publik), pastikan Anda membuat load balancer internal. Untuk melakukannya, buat zona DNS pribadi dan tambahkan data yang memetakan domain ke alamat IP internal yang digunakan oleh load balancer. Untuk mengetahui informasi selengkapnya tentang cara membuat load balancer internal, lihat Virtual Private Cloud (VPC).
Lampiran layanan yang perlu Anda referensikan di load balancer dapat diperoleh di resource cluster workstation setelah Anda membuat cluster.
Pastikan Anda mendapatkan sertifikat dan menentukannya di load balancer sebagai sertifikat karakter pengganti untuk domain Anda—misalnya,
*.us-west1-cluster1.example.com
. Lihat Sertifikat dan load balancer Google Cloud untuk mengetahui jenis sertifikat yang didukung untuk load balancer yang Anda pilih.Anda juga dapat membuat load balancer di project lain selama Anda menambahkannya ke daftar
PrivateClusterConfig.allowedProjects
.Jika memiliki beberapa cluster workstation di organisasi, Anda dapat menggunakan satu load balancer dengan layanan backend, sertifikat, dan aturan pemilihan rute yang terpisah.
Siapkan Domain Name System (DNS). Karena ini adalah domain yang Anda kelola, siapkan DNS untuk domain ini dengan memetakan semua subdomain domain yang disediakan ke load balancer. Misalnya, buat zona DNS untuk
us-west1-cluster1.example.com
dan tambahkan pemetaan entri*.us-west1-cluster1.example.com
ke alamat IP eksternal yang digunakan oleh load balancer Anda.Untuk mengakses workstation menggunakan domain kustom, gunakan cluster yang Anda buat untuk membuat konfigurasi workstation, lalu buat workstation menggunakan konfigurasi workstation tersebut.
Mulai workstation dan periksa URL. Saat Anda menentukan domain kustom, URL workstation menggunakan format berikut:
https://PORT-WORKSTATION_NAME.DOMAIN
Bagian URL berikut bergantung pada konfigurasi Anda:
PORT
: nomor port, yang merupakan port80
secara default.WORKSTATION_NAME
: nama workstation Anda.DOMAIN
: nama domain khusus cluster Anda
Membuat cluster pribadi
Buat cluster workstation pribadi dengan endpoint pribadi:
gcloud
Sebelum memulai, pastikan Anda telah melakukan inisialisasi
gcloud
CLI dengan menjalankangcloud init
dan menentukan project default. Contoh berikut mengasumsikan bahwa Anda telah menetapkan project default.Untuk membuat cluster workstation pribadi, jalankan perintah berikut:
gcloud workstations clusters create WORKSTATION_CLUSTER \ --region=REGION \ --domain=DOMAIN \ --network=NETWORK \ --subnetwork=SUBNETWORK \ --enable-private-endpoint
Ganti kode berikut:
WORKSTATION_CLUSTER
: nama cluster workstation yang akan dibuat.REGION
: nama region cluster.DOMAIN
: nama domain yang digunakan oleh Cloud Workstation untuk ingress HTTP. Gunakan subdomain yang unik untuk cluster ini, misalnya,us-west1-cluster1.example.com
.NETWORK
: Nama jaringan VPC. Jika dihilangkan, VPC default akan digunakan.SUBNETOWRK
: nama subnetwork di jaringan VPC. Jika jaringan dan subnetwork dihilangkan, VPC default akan digunakan, dan subnetwork default di REGION yang ditentukan akan digunakan.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi 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
Ganti kode berikut:
DOMAIN
: nama domain yang digunakan oleh Cloud Workstation untuk ingress HTTP. Ini harus berupa subdomain yang unik untuk cluster ini, misalnya,us-west1-cluster1.example.com
.NETWORK
: Nama jaringan VPC. Jika dihilangkan, VPC default akan digunakan.SUBNETOWRK
: nama subnetwork di jaringan VPC. Jika jaringan dan subnetwork dihilangkan, VPC default akan digunakan, dan subnetwork default di REGION yang ditentukan akan digunakan.PROJECT_NAME
: nama project.REGION
: nama region cluster.WORKSTATION_CLUSTER
: nama cluster workstation yang akan dibuat.
Untuk mengetahui informasi selengkapnya tentang metode API ini, lihat dokumentasi referensi
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" }
Ganti kode berikut:
PROJECT_NAME
: nama project.REGION
: nama region cluster.WORKSTATION_CLUSTER
: nama cluster workstation yang akan dibuat.DOMAIN
: nama domain yang digunakan oleh Cloud Workstation untuk ingress HTTP. Ini harus berupa subdomain yang unik untuk cluster ini, misalnya,us-west1-cluster1.example.com
.NETWORK
: Nama jaringan VPC. Jika dihilangkan, VPC default akan digunakan.SUBNETOWRK
: nama subnetwork di jaringan VPC. Jika jaringan dan subnetwork dihilangkan, VPC default akan digunakan, dan subnetwork default di REGION yang ditentukan akan digunakan.
Untuk mengetahui informasi selengkapnya tentang metode API ini, lihat dokumentasi referensi
workstationClusters.create
.
Membuat Load Balancer Aplikasi eksternal global dengan backend PSC
Ikuti langkah-langkah gcloud
CLI dan REST API berikut untuk membuat
Load Balancer Aplikasi eksternal global dengan backend PSC:
- Membuat NEG untuk terhubung ke layanan yang dipublikasikan
- Menambahkan backend ke Load Balancer Aplikasi eksternal global
- Membuat peta URL untuk mengarahkan permintaan masuk ke layanan backend
- Membuat proxy HTTPS target
- Membuat alamat global
- Membuat aturan penerusan
Membuat NEG untuk terhubung ke layanan yang dipublikasikan
Saat membuat NEG yang mengarah ke layanan yang dipublikasikan, Anda memerlukan URI lampiran layanan untuk layanan tersebut. Lampiran layanan memiliki format ini:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
.
Anda dapat menemukan URI di resource cluster workstation.
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
Ganti kode berikut:
NEG_NAME
: nama untuk grup endpoint jaringan.TARGET_SERVICE
: URI lampiran layanan.REGION
: region tempat membuat grup endpoint jaringan. Region harus sama dengan region layanan target.NETWORK
: jaringan untuk membuat grup endpoint jaringan. Jika dihilangkan, jaringan default akan digunakan.SUBNET
: subnet untuk membuat grup endpoint jaringan. Subnet harus berada di region yang sama dengan layanan target. Subnet harus disediakan jika Anda menyediakan jaringan. Jika jaringan dan subnet dihilangkan, jaringan default akan digunakan, dan subnet default diREGION
yang ditentukan akan digunakan.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi 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" }
Ganti kode berikut:
PROJECT_NAME
: nama project.REGION
: region tempat membuat grup endpoint jaringan. Region harus sama dengan region layanan target.NEG_NAME
: nama untuk grup endpoint jaringan.TARGET_SERVICE
: URI lampiran layanan.
Menambahkan backend ke Load Balancer Aplikasi eksternal global
gcloud
Buat layanan backend untuk layanan target:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Ganti
BACKEND_SERVICE_NAME
dengan nama layanan backend.Tambahkan NEG Private Service Connect yang mengarah ke layanan target.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --global
Ganti kode berikut:
BACKEND_SERVICE_NAME
: nama layanan backend.NEG_NAME
: nama grup endpoint jaringan.NEG_REGION
: region grup endpoint jaringan.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi gcloud compute backend-services create
dan gcloud compute backend-services add-backend
.
REST
Buat layanan backend untuk layanan target:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices { "protocol": "HTTPS", "loadBalancingScheme": "EXTERNAL_MANAGED", "name": "BACKEND_SERVICE_NAME" }
Ganti
BACKEND_SERVICE_NAME
dengan nama layanan backend.Tambahkan NEG Private Service Connect yang mengarah ke layanan target.
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 " } ] }
Ganti kode berikut:
PROJECT_NAME
: nama project.BACKEND_SERVICE_NAME
: nama layanan backend.NEG_REGION
: region grup endpoint jaringan.NEG_NAME
: nama grup endpoint jaringan.
Membuat peta URL untuk mengarahkan permintaan masuk ke layanan backend
gcloud
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
Ganti kode berikut:
URL_MAP_NAME
: nama peta URL yang akan dibuat.BACKEND_SERVICE_NAME
: nama layanan backend yang akan digunakan untuk permintaan jika peta URL ini tidak memiliki pemetaan.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi 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 " }
Ganti kode berikut:
PROJECT_NAME
: nama project.URL_MAP_NAME
: nama peta URL yang akan dibuat.BACKEND_SERVICE_NAME
: nama layanan backend yang akan digunakan untuk permintaan jika peta URL ini tidak memiliki pemetaan.
Membuat proxy HTTPS target
Buat proxy HTTPS target untuk merutekan permintaan ke peta URL Anda. Proxy ini merupakan bagian dari load balancer yang menyimpan sertifikat SSL untuk Load Balancing HTTPS, sehingga Anda juga memuat sertifikat pada langkah ini:
gcloud
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --global
Ganti kode berikut:
TARGET_HTTPS_PROXY_NAME
: nama proxy HTTPS target yang akan dibuat.SSL_CERTIFICATE_NAME
: sertifikat SSL yang terkait dengan load balancer.URL_MAP_NAME
: resource peta URL.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi 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" }
Ganti kode berikut:
PROJECT_NAME
: nama project.SSL_CERTIFICATE_NAME
: sertifikat SSL yang terkait dengan load balancer.URL_MAP_NAME
: resource peta URL.TARGET_HTTPS_PROXY_NAME
: nama proxy HTTPS target yang akan dibuat.
Membuat alamat global
Cadangkan alamat IP statis yang akan digunakan oleh load balancer:
gcloud
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --global
Ganti kode berikut:
LB_IP_ADDRESS_NAME
: nama untuk alamat IP eksternal atau internal statis yang dicadangkan dari load balancer.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi gcloud compute addresses create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses { "name": "LB_IP_ADDRESS_NAME" }
Ganti kode berikut:
PROJECT_NAME
: nama project.LB_IP_ADDRESS_NAME
: nama untuk alamat IP eksternal atau internal statis yang dicadangkan dari load balancer.
Membuat aturan penerusan
Buat aturan penerusan untuk mengarahkan permintaan masuk ke proxy:
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
Ganti kode berikut:
HTTPS_FORWARDING_RULE_NAME
: nama aturan penerusan yang akan dibuat.LB_IP_ADDRESS_NAME
: nama untuk alamat IP eksternal atau internal statis yang dicadangkan dari load balancer.TARGET_HTTPS_PROXY_NAME
: proxy HTTPS target yang menerima traffic.
Untuk mengetahui informasi selengkapnya tentang perintah CLI gcloud
ini, lihat dokumentasi referensi 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" }
Ganti kode berikut:
PROJECT_NAME
: nama project.LB_IP_ADDRESS_NAME
: nama untuk alamat IP eksternal atau internal statis yang dicadangkan dari load balancer.TARGET_HTTPS_PROXY_NAME
: proxy HTTPS target yang menerima traffic.HTTPS_FORWARDING_RULE_NAME
: nama aturan penerusan yang akan dibuat.
Menyiapkan DNS
Siapkan DNS dan tambahkan data yang memetakan *.DOMAIN
—misalnya,
*.example.com
—ke alamat IP yang dicadangkan di langkah sebelumnya. Jika Anda menggunakan Cloud DNS untuk mengelola DNS untuk domain Anda, lihat Menambahkan data DNS.
Membuat konfigurasi dan workstation
Untuk mengakses workstation menggunakan domain kustom, lakukan tindakan berikut:
Gunakan cluster dengan domain kustom untuk membuat konfigurasi workstation.
Buat workstation menggunakan konfigurasi workstation dengan domain kustom.
Langkah selanjutnya
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan domain kustom dan cluster pribadi, lihat hal berikut:
- Tutorial: Menyiapkan domain menggunakan Cloud DNS
- Mengonfigurasi Kontrol Layanan VPC dan cluster pribadi