Bersiap untuk menyiapkan Gateway API untuk Cloud Service Mesh
Halaman ini menjelaskan cara menginstal definisi resource kustom yang diperlukan untuk gateway ke cluster Anda.
Batasan
- Memiliki campuran cluster config-api
gateway
dan config-apiistio
dalam fleet yang sama tidak didukung. - Penemuan layanan dan load balancing multi-cluster tidak didukung untuk
cluster config-api
gateway
. - Jika cluster diaktifkan menggunakan tanda
--management automatic
yang ada, cluster akan mulai menggunakan API konfigurasiistio
dan tidak dapat berubah menjadigateway
API. - Hanya FQDN yang didukung. Nama pendek tidak didukung.
Prasyarat
Sebagai titik awal, panduan ini mengasumsikan bahwa Anda telah
membuat project Google Cloud dan
menginstal kubectl
.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Kubernetes Engine, GKE Hub, and Cloud Service Mesh.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Kubernetes Engine, GKE Hub, and Cloud Service Mesh.
Membuat dan mendaftarkan cluster GKE
gcloud
Buat cluster GKE:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--enable-ip-alias \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--release-channel=regular \
--project=PROJECT_ID \
--gateway-api=standard
--workload-pool=PROJECT_ID.svc.id.goog
dengan:
- CLUSTER_NAME adalah nama cluster Anda
- LOCATION adalah lokasi cluster Anda
- PROJECT_ID adalah project ID cluster Anda
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Create.
Di bagian Standard, klik Configure.
Di bagian Cluster basics, selesaikan langkah-langkah berikut:
- Masukkan Name untuk cluster Anda.
- Untuk Location type, pilih Compute Engine region untuk cluster Anda.
Di panel navigasi, klik default-pool di bagian Node Pools, lalu pilih Security.
Dalam daftar Access scopes, pilih Set access for each API, dan tetapkan Cloud Platform sebagai Enabled.
Di panel navigasi, klik Networking di bagian Cluster.
Dalam daftar Cluster Networking, pilih Enable Gateway API.
Di panel navigasi, klik Security di bagian Cluster.
Dalam daftar Security, pilih Enable Workload Identity.
Klik Create.
Setelah cluster dibuat,
Jalankan Server Metadata GKE di node Anda:
gcloud container node-pools update default-pool \ --cluster=CLUSTER_NAME \ --location=LOCATION \ --workload-metadata=GKE_METADATA
Daftarkan cluster Anda ke fleet:
gcloud container fleet memberships register CLUSTER_NAME \ --gke-cluster LOCATION/CLUSTER_NAME \ --project=PROJECT_ID
Pastikan cluster terdaftar ke fleet:
gcloud container fleet memberships list --project=PROJECT_ID
Outputnya mirip dengan:
NAME EXTERNAL_ID LOCATION my-cluster 91980bb9-593c-4b36-9170-96445c9edd39 us-west1
Siapkan izin
Perhatikan bahwa perintah berikut memberikan izin kepada semua pengguna yang diautentikasi, tetapi Anda dapat menggunakan Workload Identity Federation untuk GKE guna memberikan izin hanya ke akun tertentu.
Berikan peran
trafficdirector.client
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "group:PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/" \ --role "roles/trafficdirector.client"
Berikan peran
container.developer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot." \ --role "roles/container.developer"
dengan PROJECT_NUMBER sebagai nomor project Anda.
Berikan peran
compute.networkAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot." \ --role "roles/compute.networkAdmin"
dengan PROJECT_NUMBER sebagai nomor project Anda.
Mengaktifkan Cloud Service Mesh
Aktifkan fitur mesh:
gcloud container fleet mesh enable --project PROJECT_ID
Perbarui mesh untuk menggunakan Gateway API:
gcloud alpha container fleet mesh update \ --config-api gateway \ --memberships CLUSTER_NAME \ --project PROJECT_ID
Verifikasi update dengan mendeskripsikan status resource Cloud Service Mesh:
gcloud alpha container fleet mesh describe
Menetapkan langganan baru armada Anda untuk menggunakan Gateway API secara default (opsional)
Atau, Anda dapat membuat setelan default tingkat fleet untuk cluster GKE baru yang terdaftar ke fleet selama pembuatan cluster agar dikonfigurasi secara otomatis dengan Gateway API.
Buat file YAML yang menentukan menggunakan Gateway API:
echo "configapi: gateway" > mesh.yaml
Perbarui mesh Anda:
gcloud alpha container fleet mesh update --project FLEET_PROJECT_ID \ --fleet-default-member-config mesh.yaml
Buat cluster dan daftarkan ke fleet dalam satu langkah untuk menggunakan konfigurasi default:
gcloud container clusters create CLUSTER_NAME \ --project PROJECT_ID \ --fleet-project FLEET_PROJECT_ID \ --location=LOCATION \
Aktifkan Workload Identity Federation for GKE dan jalankan Server Metadata GKE di node Anda.
Menginstal definisi resource kustom
Buat entri kubeconfig untuk cluster Anda:
gcloud container clusters get-credentials CLUSTER_NAME --location LOCATION --project PROJECT_ID
dengan:
- CLUSTER_NAME adalah nama cluster Anda
- LOCATION adalah lokasi cluster Anda
- PROJECT_ID adalah project ID cluster Anda
Instal definisi resource kustom (CRD) GRPCRoute:
curl https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml \
| kubectl apply -f -
Outputnya mirip dengan:
customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io created