Menyiapkan project dan cluster GKE Anda sendiri
Saat Anda menginstal Cloud Service Mesh menggunakan
asmcli
, dapat
mengonfigurasi project dan GKE Anda di cluster Google Cloud
jika Anda menyertakan tanda --enable_all
atau versi yang lebih terperinci
flag pengaktifan.
Jika Anda lebih suka melakukan penyiapan sendiri daripada meminta asmcli
melakukan
perubahan, ikuti langkah-langkah di halaman ini.
Jika sudah menginstal Cloud Service Mesh versi sebelumnya, Anda
tidak perlu membuat perubahan apa pun pada project
atau cluster sebelum menggunakan
asmcli
untuk mengupgrade ke versi terbaru
Versi Cloud Service Mesh.
Secara default, asmcli
tidak menginstal istio-ingressgateway
. Rab
sebaiknya deploy dan kelola bidang kontrol dan gateway secara terpisah.
Cloud Service Mesh mendukung injeksi otomatis untuk deployment gateway, yang
mempermudah upgrade Cloud Service Mesh. Setelah melakukan upgrade
di Cloud Service Mesh, Anda dapat memulai ulang gateway
konfigurasi bidang kontrol baru. Untuk informasi selengkapnya, lihat
Menginstal dan mengupgrade gateway.
Sebelum memulai
Menyiapkan project
Mendapatkan project ID dan nomor project untuk project tempat cluster sebelumnya dibuat di
gcloud
Jalankan perintah berikut:
gcloud projects list
Konsol
Buka halaman Dasbor di Konsol Google Cloud Anda.
Klik daftar drop-down di bagian atas halaman. Di kolom Pilih dari yang muncul, lalu pilih project Anda.
Project ID dan nomor project ditampilkan di project Kartu Info project dasbor.
Buat variabel lingkungan berikut:
Tetapkan kumpulan workload menggunakan project ID:
export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
Tetapkan ID mesh 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 menyelesaikannya penginstalan. Jika Anda bukan Pemilik Project, Anda membutuhkan seseorang yang untuk memberi Anda peran IAM spesifik berikut. Di kolom perintah berikut, ganti
PROJECT_ID
dengan project ID dari langkah sebelumnya danGCP_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 Anda menjalankanasmcli
, tindakan ini akan menetapkan peran IAM yang diperlukan untuk Anda.Aktifkan Google API yang diperlukan:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com
Selain
mesh.googleapis.com
, perintah ini juga memungkinkan API berikut:API Tujuan Bisa Dinonaktifkan meshconfig.googleapis.com
Cloud Service Mesh menggunakan Mesh Configuration API untuk merelai data konfigurasi dari mesh Anda ke Google Cloud. Selain itu, mengaktifkan Mesh Configuration API memungkinkan Anda mengakses halaman Cloud Service Mesh di Konsol Google Cloud dan menggunakan certificate authority Cloud Service Mesh. Tidak meshca.googleapis.com
Terkait dengan certificate authority Cloud Service Mesh yang digunakan oleh Cloud 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 untuk mengambil telemetri untuk workload mesh. Tidak stackdriver.googleapis.com
Diperlukan untuk menggunakan UI Services. Tidak opsconfigmonitoring.googleapis.com
Diperlukan untuk menggunakan UI Layanan bagi cluster di luar Google Cloud. Tidak connectgateway.googleapis.com
Diperlukan agar bidang kontrol Cloud 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. Kapan 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 menjalankanasmcli
, API yang diperlukan akan diaktifkan.
Menyiapkan cluster
Jika Anda menyertakan tanda --enable_all
, atau salah satu tag yang lebih terperinci
tanda pengaktifan,
asmcli
menyiapkan cluster untuk Anda.
Tetapkan zona atau region default untuk Google Cloud CLI. Jika Anda tidak menetapkan default di sini, pastikan untuk menentukan
--zone
atau--region
di perintahgcloud 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
Setel
mesh_id
label pada . Jika cluster Anda memiliki label yang ingin dipertahankan, Anda harus menyertakan label tersebut saat menambahkan labelmesh_id
.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 kolomresourceLabels
, misalnya:resourceLabels: csm: '' env: dev release: stable
Untuk memudahkan, Anda dapat menambahkan label ke variabel lingkungan. Di kolom berikut ini, ganti
YOUR_EXISTING_LABELS
dengan daftar yang dipisahkan koma dari label yang ada di cluster Anda dalam formatKEY=VALUE
, misalnya:env=dev,release=stable
export EXISTING_LABELS="YOUR_EXISTING_LABELS"
Tetapkan label
mesh_id
:Jika cluster Anda memiliki label yang ingin dipertahankan, perbarui 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 Anda belum memiliki label, perbarui cluster dengan hanya label
mesh_id
:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
Aktifkan Identitas Beban Kerja:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}
Pengaktifan Workload Identity dapat memerlukan waktu 10 hingga 15 menit.
Inisialisasi project Anda agar siap untuk diinstal. Di antara hal lainnya, perintah ini membuat akun layanan untuk membiarkan komponen bidang data, seperti sebagai proxy file bantuan, akses data dan resource project Anda dengan aman. Pada perintah berikut, ganti
FLEET_PROJECT_ID
dengan tindakan project host perangkat: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 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 diinstal baru menggunakan asmcli
.