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 gabungan antara cluster config-api gateway dan istio dalam perangkat yang sama tidak didukung.
  • Penemuan layanan multi-cluster dan load balancing tidak didukung untuk gateway cluster config-api.
  • Jika cluster diaktivasi menggunakan tanda --management automatic yang ada maka cluster mulai menggunakan API konfigurasi istio dan tidak dapat mengubah ke gateway API.
  • Hanya FQDN yang didukung. Nama pendek tidak didukung.

Prasyarat

Sebagai titik awal, panduan ini mengasumsikan bahwa Anda sudah membuat project Google Cloud dan menginstal kubectl.

Sebelum memulai

  1. 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.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Aktifkan API Kubernetes Engine, GKE Hub, and Cloud Service Mesh.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Aktifkan API Kubernetes Engine, GKE Hub, and Cloud Service Mesh.

    Mengaktifkan API

  1. Buat entri kubeconfig untuk cluster Anda:
  2. 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

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

    dengan:

    • CLUSTER_NAME adalah nama cluster Anda
    • LOCATION adalah lokasi cluster Anda
    • PROJECT_ID adalah project ID cluster Anda
  2. Aktifkan Workload Identity Federation untuk GKE:

    gcloud container clusters update CLUSTER_NAME \
    --location LOCATION \
    --workload-pool=PROJECT_ID.svc.id.goog
    
  3. Jalankan Server Metadata GKE pada node Anda:

    gcloud container node-pools update default-pool \
    --cluster=CLUSTER_NAME \
    --location=LOCATION \
    --workload-metadata=GKE_METADATA
    
  4. Daftarkan cluster Anda ke fleet:

    gcloud container hub memberships register CLUSTER_NAME \
    --gke-cluster LOCATION/CLUSTER_NAME \
    --project=PROJECT_ID
    
  5. Pastikan cluster sudah terdaftar ke fleet:

    gcloud container hub 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 akses ke semua pengguna yang diotentikasi, tetapi Anda dapat menggunakan Workload Identity Federation for GKE untuk memberikan izin hanya kepada akun tertentu.

  1. Berikan peran trafficdirector.client:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "group:PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/" \
        --role "roles/trafficdirector.client"
    
  2. 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 adalah nomor project Anda.

  3. 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 adalah nomor project Anda.

Mengaktifkan Cloud Service Mesh

  1. Aktifkan fitur mesh:

    gcloud container hub mesh enable --project PROJECT_ID
    
  2. Update mesh untuk menggunakan Gateway API:

    gcloud alpha container fleet mesh update \
    --config-api gateway \
    --memberships CLUSTER_NAME \
    --project PROJECT_ID
    
  3. Verifikasi 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

Langkah selanjutnya