Menginstal alat dependen dan memverifikasi cluster

Halaman ini menunjukkan cara menyiapkan lingkungan dan cluster yang akan diinstal dan Cloud Service Mesh.

Menginstal alat yang diperlukan

Anda dapat menjalankan asmcli di Cloud Shell atau di komputer lokal Anda yang menjalankan Linux. Cloud Shell telah menginstal semua alat yang dibutuhkan.

Jika menjalankan asmcli secara lokal, pastikan Anda memiliki alat berikut diinstal:

  • Google Cloud CLI
  • Alat command line standar: awk, curl, grep, sed, dan tr
  • git
  • kubectl
  • jq
  • (Opsional, untuk menguji konektivitas) netcat (nc)

Mengonfigurasi gcloud

Lakukan langkah-langkah berikut bahkan jika Anda menggunakan Cloud Shell.

  1. Melakukan autentikasi dengan Google Cloud CLI:

    gcloud auth login --project PROJECT_ID
    
  2. Update komponen:

    gcloud components update
    
  3. Jika Anda menginstal Cloud Service Mesh pada cluster GKE, mengonfigurasi kubectl agar mengarah ke cluster.

    gcloud container clusters get-credentials CLUSTER_NAME \
         --location CLUSTER_LOCATION \
         --project PROJECT_ID
    

Download asmcli

Bagian ini menjelaskan cara mendownload asmcli.

  1. Download versi yang menginstal Cloud Service Mesh 1.20.4 ke direktori kerja saat ini:

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.20 > asmcli
    

    Output yang diharapkan:

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
    100  167k  100  167k    0     0   701k      0 --:--:-- --:--:-- --:--:--  701k
    
  2. Jadikan skrip sebagai dapat dijalankan:

    chmod +x asmcli
    

Memberikan izin admin cluster

  1. Pastikan Anda telah menetapkan konteks ke cluster pengguna:

    kubectl config use-context CONTEXT
  2. Memberikan izin admin cluster ke akun pengguna Anda (login Google Cloud Anda alamat email Anda). Anda memerlukan izin ini untuk membuat kontrol akses berbasis peran (RBAC) aturan untuk Cloud Service Mesh:

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user=USER_ACCOUNT

Memvalidasi project dan cluster

Anda dapat menjalankan asmcli validate untuk memastikan bahwa project dan cluster Anda penyiapan yang diperlukan untuk menginstal Cloud Service Mesh. Dengan opsi ini, asmcli tidak membuat perubahan apa pun pada project atau cluster, dan tidak menginstal dan Cloud Service Mesh.

asmcli memvalidasi bahwa:

Secara default, asmcli akan mendownload dan mengekstrak file penginstalan, serta mengunduh asm paket konfigurasi dari GitHub ke direktori {i>temp<i}. Sebelum keluar, asmcli menghasilkan pesan yang memberikan nama direktori sementara. Sebaiknya tentukan direktori untuk download dengan --output_dir DIR_PATH. --output_dir akan memudahkan Anda saat menggunakan alat command line istioctl. (Anda mungkin perlu istioctl untuk memecahkan masalah konfigurasi atau menyiapkan mesh multi-cluster pada cluster GKE pribadi). Selain itu, file konfigurasi untuk mengaktifkan fitur opsional menggunakan asmcli akan disertakan dalam direktori asm/istio/options.

Jalankan perintah berikut untuk memvalidasi konfigurasi Anda dan download file penginstalan dan paket asm ke OUTPUT_DIR saat ini.

GKE

./asmcli validate \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH
  • --project_id, --cluster_name, dan --cluster_location Tentukan ID project tempat cluster berada, nama cluster, dan zona cluster atau region.

  • --fleet_id Project ID project host perangkat. asmcli validate akan memeriksa apakah cluster terdaftar di cluster yang ditentukan perangkat seluler.

  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket asm dan mengekstrak file penginstalan, yang berisi istioctl, contoh, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.

Di luar Google Cloud

Gunakan perintah berikut untuk menjalankan asmcli validate di platform berikut: Google Distributed Cloud, Google Distributed Cloud, GKE di AWS, Amazon EKS, dan Microsoft AKS.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan perintah berikut untuk memvalidasi konfigurasi Anda dan download file penginstalan dan paket asm ke OUTPUT_DIR direktori:

    ./asmcli validate \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --platform multicloud
    
    • --kubeconfig Jalur ke kubeconfig Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.

    • --fleet_id Project ID project host perangkat. asmcli validate akan memeriksa apakah cluster terdaftar di cluster yang ditentukan perangkat seluler.

    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload paket asm dan mengekstrak file penginstalan, yang berisi istioctl, contoh, dan manifes. Jika tidak, asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.

    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.

Jika berhasil, asmcli akan menghasilkan output berikut:

asmcli: Setting up necessary files...
asmcli: Using asm_kubeconfig as the kubeconfig...
asmcli: Checking installation tool dependencies...
asmcli: Fetching/writing GCP credentials to kubeconfig file...
asmcli: Verifying connectivity (10s)...
asmcli: kubeconfig set to asm_kubeconfig
asmcli: using context gke_example-project-12345_us-central1_cluster-2
asmcli: Getting account information...
asmcli: Downloading ASM..
asmcli: Downloading ASM kpt package...
fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm"
asmcli: Checking required APIs...
asmcli: Checking for project example-project-12345...
asmcli: Reading labels for us-central1/cluster-2...
asmcli: Checking for istio-system namespace...
asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2...
asmcli: Checking Istio installations...
asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized.
asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized
asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components
asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh
asmcli: [WARNING]: will not function correctly.
asmcli: Successfully validated all requirements to install ASM.

Jika salah satu pengujian gagal dalam validasi, asmcli akan menghasilkan pesan error. Misalnya, jika project Anda tidak memiliki semua Google API yang diperlukan sudah aktif, Anda akan melihat error berikut:

ERROR: One or more APIs are not enabled. Please enable them and retry, or run
`asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them
on your behalf.

Jika Anda mendapatkan pesan error tentang perlunya menjalankan asmcli dengan flag pengaktif, Anda memiliki opsi berikut:

  • Sertakan tanda spesifik dari pesan error atau --enable_all flag saat menjalankan asmcli untuk melakukan penginstalan sebenarnya.

  • Jika ingin, Anda dapat mengupdate project dan cluster sendiri sebelum menjalankan asmcli seperti yang dijelaskan dalam Menyiapkan project dan cluster GKE Anda sendiri.

Perhatikan bahwa asmcli validate tidak mengizinkan flag pengaktifan karena hanya memvalidasi bahwa project dan cluster Anda siap untuk diinstal.

Memeriksa persyaratan penginstalan dan upgrade cluster

Sebelum mengupgrade, Anda harus memeriksa apakah konfigurasi kompatibel dengan Cloud Service Mesh versi baru.

  1. Ubah ke direktori yang Anda tentukan di --output_dir.

  2. Jalankan perintah berikut guna memeriksa cluster Kubernetes untuk diinstal dan persyaratan upgrade. Pastikan Anda menggunakan versi istioctl yang didistribusikan dengan versi Cloud Service Mesh baru.

    istioctl experimental precheck
    

Apa langkah selanjutnya?