Menyiapkan project dan cluster GKE Anda sendiri

<0x0 Google Cloud Untuk mengetahui informasi selengkapnya, lihat Ringkasan Cloud Service Mesh.

Saat Anda menginstal Cloud Service Mesh menggunakan asmcli, Cloud Service Mesh dapat mengonfigurasi project dan cluster GKE on Google Cloud Anda jika Anda menyertakan tanda --enable_all atau tanda pengaktifan yang lebih terperinci. Jika Anda lebih memilih melakukan penyiapan sendiri daripada membiarkan asmcli membuat perubahan, ikuti langkah-langkah di halaman ini.

Jika sudah menginstal Cloud Service Mesh versi sebelumnya, Anda tidak perlu membuat perubahan apa pun pada project atau cluster sebelum menggunakan asmcli untuk mengupgrade ke versi Cloud Service Mesh terbaru.

Secara default, asmcli tidak menginstal istio-ingressgateway. Sebaiknya Anda men-deploy dan mengelola bidang kontrol dan gateway secara terpisah. Cloud Service Mesh mendukung injeksi otomatis untuk deployment gateway, yang mempermudah upgrade Cloud Service Mesh. Setelah mengupgrade Cloud Service Mesh, Anda memulai ulang gateway seperti layanan Anda untuk mengambil konfigurasi bidang kontrol baru. Untuk mengetahui informasi selengkapnya, lihat Menginstal dan mengupgrade gateway.

Sebelum memulai

Menyiapkan project

  1. Dapatkan project ID dan nomor project untuk project tempat cluster dibuat.

    gcloud

    Jalankan perintah berikut:

    gcloud projects list
    

    Konsol

    1. Buka halaman Dasbor di Google Cloud console.

      Buka halaman Dasbor

    2. Klik menu drop-down di bagian atas halaman. Di jendela Pilih dari yang muncul, pilih project Anda.

      Project ID dan nomor project ditampilkan di kartu Info project pada Dasbor project.

  2. Buat variabel lingkungan berikut:

    • Tetapkan workload pool menggunakan project ID:

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Tetapkan ID mesh menggunakan nomor project:

      export MESH_ID="proj-PROJECT_NUMBER"
      
  3. Tetapkan peran Identity and Access Management (IAM) yang diperlukan. Jika Anda adalah Pemilik Project, Anda memiliki semua izin yang diperlukan untuk menyelesaikan penginstalan. Jika Anda bukan Pemilik Project, Anda memerlukan seseorang yang merupakan Pemilik Project untuk memberi Anda peran IAM spesifik berikut. Dalam perintah berikut, ganti PROJECT_ID dengan project ID dari langkah sebelumnya dan GCP_EMAIL_ADDRESS dengan akun yang Anda gunakan untuk login ke Google Cloud.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    Jika Anda menyertakan tanda --enable_all atau --enable_gcp_iam_roles saat menjalankan asmcli, tanda tersebut akan menetapkan peran IAM yang diperlukan untuk Anda.

  4. Aktifkan Google API yang diperlukan:

    gcloud services enable \
        --project=PROJECT_ID \
        mesh.googleapis.com
    

    Selain mesh.googleapis.com, perintah ini juga mengaktifkan API berikut:

    API Tujuan Dapat Dinonaktifkan
    meshconfig.googleapis.com Cloud Service Mesh menggunakan Mesh Configuration API untuk meneruskan data konfigurasi dari mesh Anda ke Google Cloud. Selain itu, dengan mengaktifkan Mesh Configuration API, Anda dapat mengakses halaman Cloud Service Mesh di konsol Google Cloud dan menggunakan otoritas sertifikat Cloud Service Mesh. Tidak
    meshca.googleapis.com Terkait dengan certificate authority Cloud Service Mesh yang digunakan oleh Cloud Service Mesh terkelola. Tidak
    container.googleapis.com Diperlukan untuk membuat cluster Google Kubernetes Engine (GKE). Tidak
    gkehub.googleapis.com Diperlukan untuk mengelola mesh sebagai kumpulan perangkat. Tidak
    monitoring.googleapis.com Diperlukan untuk merekam telemetri untuk beban kerja mesh. Tidak
    stackdriver.googleapis.com Diperlukan untuk menggunakan UI Layanan. Tidak
    opsconfigmonitoring.googleapis.com Diperlukan untuk menggunakan UI Layanan untuk clusterGoogle Cloud off-cluster. Tidak
    connectgateway.googleapis.com Diperlukan agar bidang kontrol Cloud Service Mesh terkelola dapat mengakses workload mesh. Ya*
    trafficdirector.googleapis.com Mengaktifkan bidang kontrol terkelola yang sangat tersedia dan skalabel. Ya*
    networkservices.googleapis.com Mengaktifkan bidang kontrol terkelola yang sangat tersedia dan skalabel. Ya*
    networksecurity.googleapis.com Mengaktifkan bidang kontrol terkelola yang sangat tersedia dan skalabel. Ya*

    Pengaktifan API dapat memerlukan waktu satu menit atau lebih. Jika API diaktifkan, Anda akan melihat output yang mirip dengan berikut ini:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    Jika Anda menyertakan flag --enable_all atau --enable_apis saat menjalankan asmcli, API yang diperlukan akan diaktifkan untuk Anda.

Menyiapkan cluster

Jika Anda menyertakan tanda --enable_all, atau salah satu tanda pengaktifan yang lebih terperinci, asmcli akan menyiapkan cluster untuk Anda.

  1. Tetapkan zona atau region default untuk Google Cloud CLI. Jika Anda tidak menyetel default di sini, pastikan untuk menentukan opsi --zone atau --region dalam perintah gcloud container clusters di halaman ini.

    • Jika Anda memiliki cluster zona tunggal, tetapkan zona default:

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • Jika Anda memiliki cluster regional, tetapkan region default:

      gcloud config set compute/region CLUSTER_LOCATION
      
  2. Tetapkan mesh_id label pada cluster. Jika cluster Anda memiliki label yang ingin dipertahankan, Anda harus menyertakan label tersebut saat menambahkan label mesh_id.

    1. Untuk melihat apakah cluster Anda memiliki label yang ada:

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

      Cari kolom resourceLabels di output. Setiap label disimpan di baris terpisah di bawah kolom resourceLabels, misalnya:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Untuk mempermudah, Anda dapat menambahkan label ke variabel lingkungan. Di bagian berikut, ganti YOUR_EXISTING_LABELS dengan daftar label yang ada di cluster Anda yang dipisahkan koma dalam format KEY=VALUE, misalnya: env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
      
    2. Tetapkan label mesh_id:

      • Jika cluster Anda memiliki label yang ingin dipertahankan, perbarui cluster dengan mesh_id dan label yang ada:

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
        
      • Jika cluster Anda tidak memiliki label yang ada, perbarui cluster dengan hanya label mesh_id:

        gcloud container clusters update CLUSTER_NAME \
            --project=PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID}
        
  3. Aktifkan Workload Identity:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    Mengaktifkan Workload Identity dapat memerlukan waktu hingga 10 hingga 15 menit.

  4. Daftarkan cluster ke fleet.

  5. Lakukan inisialisasi project Anda agar siap diinstal. Selain hal lainnya, perintah ini membuat akun layanan agar komponen bidang data, seperti proxy sidecar, dapat mengakses data dan resource project Anda dengan aman. Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project host fleet:

    curl --request POST  \
     --header "Authorization: Bearer $(gcloud auth print-access-token)" \
     --header "Content-Type: application/json" \
     --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \
     "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
    

    Perintah ini akan direspons dengan tanda kurung kurawal kosong: {}

  6. Aktifkan Cloud Monitoring dan Cloud Logging di GKE:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --enable-stackdriver-kubernetes
    

Project dan cluster Anda kini siap untuk penginstalan baru menggunakan asmcli.

Langkah berikutnya