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 untuk Anda jika Anda menyertakan flag --enable_all atau flag pengaktifan yang lebih terperinci. Jika Anda memilih untuk melakukan penyiapan sendiri daripada meminta asmcli membuat perubahan, ikuti langkah-langkah di halaman ini.

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

Secara default, asmcli tidak menginstal istio-ingressgateway. Sebaiknya deploy serta kelola bidang kontrol dan gateway secara terpisah. Anthos Service Mesh mendukung injeksi otomatis untuk deployment gateway, yang memudahkan upgrade Anthos Service Mesh. Setelah mengupgrade Anthos Service Mesh, Anda akan 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 untuk project tempat cluster dibuat.

    gcloud

    Jalankan perintah berikut:

    gcloud projects list
    

    Konsol

    1. Buka halaman Dasbor 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 ditampilkan di kartu Project info pada Dasbor project.

  2. Buat variabel lingkungan untuk kumpulan workload menggunakan project ID:

    export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
    
  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 dapat 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. 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 Anthos Service Mesh menggunakan Mesh Configuration API untuk menyampaikan data konfigurasi dari mesh Anda ke Google Cloud. Selain itu, dengan mengaktifkan Mesh Configuration API, Anda dapat mengakses halaman Anthos Service Mesh di konsol Google Cloud dan menggunakan certificate authority Anthos Service Mesh (Mesh CA). Tidak
    meshca.googleapis.com Terkait dengan certificate authority Anthos Service Mesh yang digunakan oleh Anthos Service Mesh terkelola. Tidak
    container.googleapis.com Diperlukan untuk membuat cluster Google Kubernetes Engine (GKE). Tidak
    gkehub.googleapis.com Diperlukan untuk mengelola mesh sebagai fleet. Tidak
    monitoring.googleapis.com Diperlukan guna mengambil telemetri untuk workload mesh. Tidak
    stackdriver.googleapis.com Diperlukan untuk menggunakan UI Layanan. Tidak
    opsconfigmonitoring.googleapis.com Diperlukan untuk menggunakan UI Layanan untuk cluster di luar Google Cloud. Tidak
    connectgateway.googleapis.com Diperlukan agar bidang kontrol Anthos 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 untuk diselesaikan. 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.

Menyiapkan cluster

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

  1. Menetapkan 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 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. Aktifkan Workload Identity:

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

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

  3. Daftarkan cluster ke fleet.

  4. Inisialisasi project Anda agar siap untuk diinstal. Di antara hal lainnya, perintah ini membuat akun layanan untuk memungkinkan komponen bidang data, seperti proxy file bantuan, 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 merespons dengan tanda kurung kurawal kosong: {}

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