Menyiapkan project dan cluster GKE Anda sendiri

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

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

Secara default, asmcli tidak menginstal istio-ingressgateway. Sebaiknya deploy dan kelola bidang kontrol dan gateway secara terpisah. Anthos Service Mesh mendukung injeksi otomatis untuk deployment gateway, sehingga upgrade Anthos Service Mesh menjadi lebih mudah. Setelah mengupgrade Anthos 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 Dashboard di Konsol Google Cloud.

      Buka halaman Dasbor

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

      Project ID dan nomor project ditampilkan di kartu Project info Dasbor project.

  2. Buat variabel lingkungan berikut:

    • Tetapkan kumpulan beban kerja 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 Project Owner, Anda memiliki semua izin yang diperlukan untuk menyelesaikan penginstalan. Jika Anda bukan Project Owner, Anda memerlukan seseorang yang memberi Anda peran IAM khusus 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 flag --enable_all atau --enable_gcp_iam_roles saat menjalankan asmcli, flag tersebut akan menetapkan peran IAM yang diperlukan untuk Anda.

  4. Mengaktifkan Google API yang diperlukan.

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

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

    • meshconfig.googleapis.com
    • meshca.googleapis.com
    • container.googleapis.com
    • gkehub.googleapis.com
    • monitoring.googleapis.com
    • stackdriver.googleapis.com
    • opsconfigmonitoring.googleapis.com
    • iam.googleapis.com
    • iamcredentials.googleapis.com
    • bigquery.googleapis.com
    • bigquerystorage.googleapis.com
    • compute.googleapis.com
    • oslogin.googleapis.com
    • containerregistry.googleapis.com
    • pubsub.googleapis.com
    • storage-api.googleapis.com
    • gkeconnect.googleapis.com
    • multiclustermetering.googleapis.com
    • logging.googleapis.com
    • connectgateway.googleapis.com

    Pengaktifan API dapat memerlukan waktu satu menit atau lebih. Saat 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 menetapkan opsi default di sini, pastikan untuk menentukan opsi --zone atau --region dalam perintah gcloud container clusters pada 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 label mesh_id pada cluster. Jika cluster Anda sudah memiliki label yang ingin dipertahankan, Anda harus menyertakan label tersebut saat menambahkan label mesh_id.

    1. Untuk melihat apakah cluster Anda sudah memiliki label:

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

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

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

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

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

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

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
        
      • Jika cluster tidak memiliki label, update cluster hanya dengan 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 untuk diinstal. Di antara hal lainnya, perintah ini membuat akun layanan yang memungkinkan komponen bidang data, seperti proxy sidecar, mengakses data dan resource project Anda dengan aman. Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project host armada:

    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 merespons 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 sekarang siap untuk penginstalan baru menggunakan asmcli.

Langkah selanjutnya