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 jika Anda menyertakan flag --enable_all
atau tanda pengaktifan yang lebih terperinci.
Jika Anda memilih untuk melakukan penyiapan sendiri daripada meminta asmcli
yang membuat
perubahan, ikuti langkah-langkah di halaman ini.
Jika sudah menginstal Anthos Service Mesh versi sebelumnya, Anda tidak perlu melakukan perubahan apa pun pada project atau cluster sebelum menggunakan asmcli
untuk melakukan upgrade ke versi Anthos Service Mesh terbaru.
Secara default, asmcli
tidak menginstal istio-ingressgateway
. Sebaiknya
deploy dan kelola bidang kontrol dan gateway secara terpisah.
Anthos Service Mesh mendukung injeksi otomatis untuk deployment gateway, sehingga upgrade Anthos Service Mesh menjadi lebih mudah. Setelah mengupgrade Anthos 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
Menyiapkan project
Dapatkan project ID dan nomor project untuk project tempat cluster dibuat.
gcloud
Jalankan perintah berikut:
gcloud projects list
Konsol
Buka halaman Dashboard di Konsol Google Cloud.
Klik menu 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 beban kerja 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 Project Owner, Anda memiliki semua izin yang diperlukan untuk menyelesaikan penginstalan. Jika Anda bukan Project Owner, Anda memerlukan seseorang yang memberi Anda peran IAM khusus berikut. Dalam 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 menjalankanasmcli
, flag tersebut akan menetapkan peran IAM yang diperlukan untuk Anda.Mengaktifkan Google API yang diperlukan.
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com
Selain
mesh.googleapis.com
, perintah ini juga mengaktifkan API berikut:meshconfig.googleapis.com
meshca.googleapis.com
container.googleapis.com
gkehub.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
opsconfigmonitoring.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
bigquery.googleapis.com
bigquerystorage.googleapis.com
compute.googleapis.com
oslogin.googleapis.com
containerregistry.googleapis.com
pubsub.googleapis.com
storage-api.googleapis.com
gkeconnect.googleapis.com
multiclustermetering.googleapis.com
logging.googleapis.com
connectgateway.googleapis.com
Pengaktifan API dapat memerlukan waktu satu menit atau lebih. 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 menjalankanasmcli
, API yang diperlukan akan diaktifkan untuk Anda.
Menyiapkan cluster
Jika Anda menyertakan tanda --enable_all
, atau salah satu
tanda pengaktifan yang lebih terperinci,
asmcli
akan menyiapkan cluster untuk Anda.
Tetapkan zona atau region default untuk Google Cloud CLI. Jika Anda tidak menetapkan opsi default di sini, pastikan untuk menentukan opsi
--zone
atau--region
dalam perintahgcloud container clusters
pada 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
Tetapkan label
mesh_id
pada cluster. Jika cluster Anda sudah 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. Dalam hal berikut, 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 sudah memiliki label yang ingin dipertahankan, update 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 cluster tidak memiliki label, update 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}
Mengaktifkan Workload Identity dapat memerlukan waktu hingga 10 hingga 15 menit.
Lakukan inisialisasi project Anda agar siap untuk diinstal. Di antara hal lainnya, perintah ini membuat akun layanan yang memungkinkan komponen bidang data, seperti proxy sidecar, mengakses data dan resource project Anda dengan aman. Dalam perintah berikut, ganti
FLEET_PROJECT_ID
dengan project host armada: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:
{}
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
.