Menginstal alat dependen dan memverifikasi cluster
Halaman ini menunjukkan cara menyiapkan lingkungan dan cluster untuk menginstal Cloud Service Mesh.
Menginstal alat yang diperlukan
Anda dapat menjalankan asmcli
di Cloud Shell atau di mesin lokal yang menjalankan Linux. Cloud Shell telah menginstal
semua alat yang diperlukan.
Jika menjalankan asmcli
secara lokal, pastikan Anda telah menginstal alat berikut:
- Google Cloud CLI
- Alat command line standar:
awk
,curl
,grep
,sed
, dantr
git
kubectl
jq
- (Opsional, untuk menguji konektivitas) netcat (
nc
)
Mengonfigurasi gcloud
Lakukan langkah-langkah berikut bahkan jika Anda menggunakan Cloud Shell.
Melakukan autentikasi dengan Google Cloud CLI:
gcloud auth login --project PROJECT_ID
Update komponen:
gcloud components update
Jika Anda menginstal Cloud Service Mesh di cluster GKE, konfigurasi
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
.
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
Jadikan skrip sebagai dapat dijalankan:
chmod +x asmcli
Memberikan izin admin cluster
Pastikan Anda telah menetapkan konteks ke cluster pengguna:
kubectl config use-context CONTEXT
Berikan izin admin cluster ke akun pengguna Anda (alamat email login Google Cloud Anda). Anda memerlukan izin ini untuk membuat aturan role based access control (RBAC) yang diperlukan 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 telah disiapkan sesuai kebutuhan untuk menginstal Cloud Service Mesh. Dengan opsi ini, asmcli
tidak membuat perubahan apa pun pada project atau cluster Anda, dan tidak menginstal Cloud Service Mesh.
asmcli
memvalidasi bahwa:
Lingkungan Anda memiliki alat yang diperlukan.
Cluster memenuhi persyaratan minimum.
Anda memiliki izin yang diperlukan pada project yang ditentukan.
Project telah mengaktifkan semua Google API yang diperlukan.
Secara default, asmcli
akan mendownload dan mengekstrak file penginstalan serta
mendownload paket konfigurasi
asm
dari GitHub ke direktori sementara. Sebelum keluar,
asmcli
meng-output pesan yang memberikan nama direktori sementara.
Sebaiknya tentukan direktori untuk download dengan opsi --output_dir DIR_PATH
. Opsi --output_dir
memudahkan Anda menggunakan alat command line istioctl
. (Anda mungkin memerlukan istioctl
untuk memecahkan masalah konfigurasi atau menyiapkan mesh multi-cluster pada cluster GKE pribadi).
Selain itu, file konfigurasi untuk mengaktifkan fitur opsional menggunakan asmcli
disertakan dalam direktori asm/istio/options
.
Jalankan perintah berikut untuk memvalidasi konfigurasi Anda, lalu download file penginstalan dan paket asm
ke direktori OUTPUT_DIR
.
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
Menentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID dari project host perangkat.asmcli validate
akan memeriksa apakah cluster sudah terdaftar di jaringan yang ditentukan.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketasm
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$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.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
Jalankan perintah berikut untuk memvalidasi konfigurasi Anda dan mendownload file penginstalan dan paket
asm
ke direktoriOUTPUT_DIR
:./asmcli validate \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --platform multicloud
--kubeconfig
Jalur kekubeconfig
Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--fleet_id
Project ID dari project host perangkat.asmcli validate
akan memeriksa apakah cluster sudah terdaftar di jaringan yang ditentukan.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketasm
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform tersebut adalah sesuatu yang selain Google Cloud, seperti 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 belum mengaktifkan semua Google API yang diperlukan, 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 pengaktifan,
Anda memiliki opsi berikut:
Sertakan flag khusus dari pesan error atau flag
--enable_all
saat menjalankanasmcli
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 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 melakukan upgrade, Anda harus memeriksa apakah konfigurasi Anda kompatibel dengan Cloud Service Mesh versi baru.
Ubah ke direktori yang Anda tentukan di
--output_dir
.Jalankan perintah berikut untuk memeriksa cluster Kubernetes untuk persyaratan penginstalan dan upgrade. Pastikan Anda menggunakan versi
istioctl
yang didistribusikan dengan versi Cloud Service Mesh baru.istioctl experimental precheck