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
gatewaydan config-apiistiodalam fleet yang sama tidak didukung. - Penemuan layanan dan load balancing multi-cluster tidak didukung untuk cluster
gatewayconfig-api. - Jika cluster diaktifkan menggunakan tanda
--management automaticyang ada, cluster akan mulai menggunakanistioAPI konfigurasi dan tidak dapat beralih kegatewayAPI. - 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
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 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
Membuat dan mendaftarkan cluster GKE
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=standarddengan:
- CLUSTER_NAME adalah nama cluster Anda
- LOCATION adalah lokasi cluster Anda
- PROJECT_ID adalah project ID cluster Anda
Aktifkan Workload Identity Federation for GKE:
gcloud container clusters update CLUSTER_NAME \ --location LOCATION \ --workload-pool=PROJECT_ID.svc.id.googJalankan Server Metadata GKE di node Anda:
gcloud container node-pools update default-pool \ --cluster=CLUSTER_NAME \ --location=LOCATION \ --workload-metadata=GKE_METADATADaftarkan cluster Anda ke fleet:
gcloud container hub memberships register CLUSTER_NAME \ --gke-cluster LOCATION/CLUSTER_NAME \ --project=PROJECT_IDVerifikasi bahwa cluster terdaftar ke fleet:
gcloud container hub memberships list --project=PROJECT_IDOutputnya mirip dengan:
NAME EXTERNAL_ID LOCATION my-cluster 91980bb9-593c-4b36-9170-96445c9edd39 us-west1
Menyiapkan izin
Perhatikan bahwa perintah berikut memberikan izin kepada semua pengguna terautentikasi, tetapi Anda dapat menggunakan Federasi Identitas Workload untuk GKE guna memberikan izin hanya kepada 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.iam.gserviceaccount.com" \ --role "roles/container.developer"dengan PROJECT_NUMBER adalah nomor project Anda.
Berikan peran
compute.networkAdmin:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role "roles/compute.networkAdmin"dengan PROJECT_NUMBER adalah nomor project Anda.
Mengaktifkan Cloud Service Mesh
Aktifkan fitur mesh:
gcloud container hub mesh enable --project PROJECT_IDPerbarui mesh untuk menggunakan Gateway API:
gcloud alpha container fleet mesh update \ --config-api gateway \ --memberships CLUSTER_NAME \ --project PROJECT_IDVerifikasi update dengan menjelaskan status resource Cloud Service Mesh:
gcloud alpha container fleet mesh describe
Menginstal definisi resource kustom
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