Menyiapkan project dan cluster GKE Anda sendiri
Saat Anda menginstal Cloud Service Mesh menggunakan
asmcli, layanan ini dapat
mengonfigurasi project dan cluster GKE Anda jika Anda menyertakan flag --enable_all atau flag
aktivasi yang lebih terperinci. Google Cloud
Jika Anda lebih suka melakukan penyiapan sendiri daripada membiarkan asmcli melakukan perubahan, ikuti langkah-langkah di halaman ini.
Jika Anda sudah menginstal Cloud Service Mesh versi sebelumnya, Anda
tidak perlu melakukan perubahan apa pun pada project atau cluster sebelum menggunakan
asmcli untuk mengupgrade ke Cloud Service Mesh versi 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
- Meninjau prasyarat dan persyaratan
- Merencanakan penginstalan atau upgrade
- Menginstal alat yang diperlukan
Menyiapkan project
Dapatkan project ID dan nomor project untuk project tempat cluster dibuat.
gcloud
Jalankan perintah berikut:
gcloud projects listKonsol
Buka halaman Dashboard di Google Cloud konsol.
Klik daftar 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.
Buat variabel lingkungan berikut:
Tetapkan kumpulan workload menggunakan project ID:
export WORKLOAD_POOL=PROJECT_ID.svc.id.googTetapkan mesh ID menggunakan nomor project:
export MESH_ID="proj-PROJECT_NUMBER"
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 memiliki peran tersebut untuk memberi Anda peran IAM spesifik berikut. Dalam perintah berikut, ganti
PROJECT_IDdengan project ID dari langkah sebelumnya danGCP_EMAIL_ADDRESSdengan 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" doneJika Anda menyertakan flag
--enable_allatau--enable_gcp_iam_rolessaat menjalankanasmcli, flag tersebut akan menetapkan peran IAM yang diperlukan untuk Anda.Aktifkan Google API yang diperlukan:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.comSelain
mesh.googleapis.com, perintah ini juga mengaktifkan API berikut:API Tujuan Dapat Dinonaktifkan meshconfig.googleapis.comCloud Service Mesh menggunakan Mesh Configuration API untuk menyampaikan data konfigurasi dari mesh Anda ke Google Cloud. Selain itu, mengaktifkan Mesh Configuration API memungkinkan Anda mengakses halaman Cloud Service Mesh di Google Cloud konsol dan menggunakan certificate authority Cloud Service Mesh. Tidak meshca.googleapis.comTerkait dengan certificate authority Cloud Service Mesh yang digunakan oleh Cloud Service Mesh terkelola. Tidak container.googleapis.comDiperlukan untuk membuat cluster Google Kubernetes Engine (GKE). Tidak gkehub.googleapis.comDiperlukan untuk mengelola mesh sebagai fleet. Tidak monitoring.googleapis.comDiperlukan untuk mengambil telemetri untuk workload mesh. Tidak stackdriver.googleapis.comDiperlukan untuk menggunakan UI Layanan. Tidak opsconfigmonitoring.googleapis.comDiperlukan untuk menggunakan UI Layanan untuk non-Google Cloud cluster. Tidak connectgateway.googleapis.comDiperlukan agar bidang kontrol Cloud Service Mesh terkelola dapat mengakses workload mesh. Ya* trafficdirector.googleapis.comMengaktifkan bidang kontrol terkelola yang sangat tersedia dan skalabel. Ya* networkservices.googleapis.comMengaktifkan bidang kontrol terkelola yang sangat tersedia dan skalabel. Ya* networksecurity.googleapis.comMengaktifkan 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_allatau--enable_apissaat menjalankanasmcli, flag tersebut akan mengaktifkan API yang diperlukan untuk Anda.
Menyiapkan cluster
Jika Anda menyertakan flag --enable_all, atau salah satu flag aktivasi
yang lebih terperinci,
asmcli akan menyiapkan cluster untuk Anda.
Tetapkan zona atau region default untuk Google Cloud CLI. Jika Anda tidak menetapkan default di sini, pastikan untuk menentukan opsi
--zoneatau--regiondalam perintahgcloud container clustersdi halaman ini.Jika Anda memiliki cluster zona tunggal, tetapkan zona default:
gcloud config set compute/zone CLUSTER_LOCATIONJika Anda memiliki cluster regional, tetapkan region default:
gcloud config set compute/region CLUSTER_LOCATION
Tetapkan
mesh_idlabel pada cluster. Jika cluster Anda memiliki label yang ada dan ingin Anda pertahankan, Anda harus menyertakan label tersebut saat menambahkan labelmesh_id.Untuk melihat apakah cluster Anda memiliki label yang ada:
gcloud container clusters describe CLUSTER_NAME \ --project PROJECT_IDCari kolom
resourceLabelsdalam output. Setiap label disimpan di baris terpisah di bagian kolomresourceLabels, misalnya:resourceLabels: csm: '' env: dev release: stable
Untuk memudahkan, Anda dapat menambahkan label ke variabel lingkungan. Pada langkah berikut, ganti
YOUR_EXISTING_LABELSdengan daftar label yang ada di cluster Anda yang dipisahkan koma dalam formatKEY=VALUE, misalnya:env=dev,release=stableexport EXISTING_LABELS="YOUR_EXISTING_LABELS"Tetapkan label
mesh_id:Jika cluster Anda memiliki label yang ada dan ingin Anda pertahankan, perbarui cluster dengan
mesh_iddan 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 hanya dengan label
mesh_id:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
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.
Lakukan inisialisasi project Anda untuk mempersiapkannya untuk penginstalan. Selain hal lainnya, perintah ini membuat akun layanan untuk memungkinkan komponen bidang data, seperti proxy sidecar, mengakses data dan resource project Anda dengan aman. Dalam perintah berikut, ganti
FLEET_PROJECT_IDdengan 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 akan merespons dengan tanda kurung kurawal kosong:
{}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.