Menginstal Cloud Service Mesh dalam cluster di GKE
Halaman ini menjelaskan cara menginstal Cloud Service Mesh dalam cluster yang tidak dikelola di GKE:
- Jalankan
asmcli
untuk melakukan penginstalan baru Cloud Service Mesh 1.20.4-asm.0. - Secara opsional, deploy gateway masuk.
- Deploy atau deploy ulang workload Anda untuk memasukkan proxy file bantuan.
Perlu diperhatikan bahwa untuk workload Kubernetes di Google Cloud, sebaiknya menyediakan bidang kontrol terkelola
Untuk petunjuk cara menyiapkan penginstalan offline Cloud Service Mesh,
lihat
Menyiapkan penginstalan offline Cloud Service Mesh
Anda harus menentukan opsi --offline
dan --output_dir
saat menjalankan
asmcli install
.
Batasan
Perhatikan batasan berikut:
Semua cluster Cloud Service Mesh untuk satu mesh harus didaftarkan ke kolom perangkat Anda setiap saat untuk menggunakan Cloud Service Mesh. Cluster lain dalam project cluster Cloud Service Mesh tidak boleh didaftarkan ke perangkat yang berbeda.
Untuk cluster Autopilot GKE, hanya Cloud Layanan Cloud terkelola didukung. Dukungan Cloud Service Mesh untuk GKE Autopilot hanya tersedia dengan versi 1.21.3+.
Alat
asmcli
harus memiliki akses ke Google Kubernetes Engine (GKE) endpoint. Anda dapat mengonfigurasi akses melalui "lompat" server web, seperti VM Compute Engine dalam Virtual Private Cloud (VPC) yang memberikan akses.
Sebelum memulai
Sebelum memulai, pastikan Anda:
- Tinjau prasyarat.
- Tinjau informasi di Rencanakan penginstalan.
- Instal alat yang diperlukan.
- Download
asmcli
. - Memberikan izin admin cluster.
- Validasi project dan cluster.
Peran yang diperlukan untuk menginstal Cloud Service Mesh dalam cluster
Tabel berikut menjelaskan peran yang diperlukan untuk menginstal dalam cluster dan Cloud Service Mesh.
Nama peran | ID Peran | Berikan lokasi | Deskripsi |
---|---|---|---|
GKE Hub Admin | roles/gkehub.admin | Project fleet | Akses penuh ke GKE Hubs dan resource terkait. |
Kubernetes Engine Admin | roles/container.admin | Project cluster. Perhatikan bahwa peran ini harus diberikan di Armada dan project cluster untuk binding lintas project. | Memberikan akses ke pengelolaan penuh Cluster Container dan Objek Kubernetes API. |
Admin Konfigurasi Mesh | roles/meshconfig.admin | Project fleet dan cluster | Memberikan izin yang diperlukan untuk menginisialisasi komponen terkelola Cloud Service Mesh, seperti bidang kontrol terkelola dan izin backend yang memungkinkan workload berkomunikasi dengan Stackdriver diizinkan satu per satu (untuk bidang kontrol terkelola dan dalam cluster). |
Project IAM Admin | roles/resourcemanager.projectIamAdmin | Project cluster | Memberikan izin untuk mengelola kebijakan IAM di project secara terprogram. |
Service Account Admin | roles/iam.serviceAccountAdmin | Project fleet | Autentikasi sebagai akun layanan. |
Admin Pengelolaan Layanan | roles/servicemanagement.admin | Project fleet | Kontrol penuh atas resource Google Service Management. |
Service Usage Admin | roles/serviceusage.serviceUsageAdmin | Project fleet | Kemampuan untuk mengaktifkan, menonaktifkan, dan memeriksa status layanan, memeriksa operasional, dan menghabiskan kuota serta penagihan untuk konsumen project.(Catatan 1) |
Admin Layanan CA Beta | roles/privateca.admin | Project fleet | Akses penuh ke semua resource CA Service. (Catatan 2) |
Catatan:
- Service Usage Admin - Peran ini diperlukan
sebagai prasyarat untuk mengaktifkan
mesh.googleapis.com
API saat awalnya menyediakan Cloud Service Mesh yang terkelola. - CA Service Admin - Peran ini hanya diperlukan jika Anda berintegrasi dengan CA Service.
Menginstal Cloud Service Mesh
Berikut adalah penjelasan cara menginstal Cloud Service Mesh:
Jalankan
asmcli install
untuk menginstal bidang kontrol dalam cluster pada satu . Lihat bagian berikut untuk mengetahui contoh command line. Contoh berisi argumen wajib dan argumen opsional yang mungkin Anda temukan berguna Sebaiknya Anda selalu menentukan argumenoutput_dir
agar Anda dapat menemukan gateway dan alat contoh sepertiistioctl
. Lihat menu navigasi di sebelah kanan untuk melihat daftar contoh.Cluster GKE pribadi memerlukan langkah konfigurasi firewall untuk izinkan lalu lintas ke
istiod
.Atau, instal gateway masuk. Secara {i>default<i},
asmcli
tidak menginstalistio-ingressgateway
. Sebaiknya Anda men-deploy dan mengelola gateway dan bidang kontrol secara terpisah. Jika Anda memerlukanistio-ingressgateway
default yang diinstal dengan bidang kontrol dalam cluster, menyertakan argumen--option legacy-default-ingressgateway
.Untuk menyelesaikan penyiapan Cloud Service Mesh, Anda harus mengaktifkan injeksi file bantuan dan men-deploy atau men-deploy ulang workload.
Jika Anda menginstal Cloud Service Mesh di lebih dari satu cluster, jalankan
asmcli install
pada setiap cluster. Saat Anda menjalankanasmcli install
, pastikan pastikan untuk menggunakanFLEET_PROJECT_ID
yang sama untuk setiap . Setelah Cloud Service Mesh diinstal, lihat petunjuk untuk menyiapkan mesh multi-cluster di GKE.Jika cluster Anda berada di jaringan yang berbeda (seperti dalam mode pulau Anda harus meneruskan nama jaringan yang unik ke
asmcli
menggunakan tanda--network_id
.
Menginstal fitur default dan Mesh CA
Bagian ini menunjukkan cara menjalankan asmcli
untuk menginstal Cloud Service Mesh dengan
fitur yang didukung default untuk platform Anda dan aktifkan
Certificate authority Cloud Service Mesh sebagai certificate authority.
Jalankan perintah berikut untuk menginstal bidang kontrol dengan default dan certificate authority Cloud Service Mesh. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Berikan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan certificate authority Cloud Service Mesh sebagai {i>certificate authority<i}.asmcli
mengonfigurasi Certificate authority Cloud Service Mesh yang akan digunakan fleet workload identity
Instal fitur default dan Layanan Certificate Authority (CA)
Bagian ini menunjukkan cara menjalankan asmcli
untuk menginstal Cloud Service Mesh dengan
fitur yang didukung untuk platform Anda dan
mengaktifkan CA Service
sebagai otoritas sertifikat.
Selain certificate authority Cloud Service Mesh, Anda dapat mengonfigurasi Cloud Service Mesh agar Certificate Authority Service. Ini ini memberi Anda peluang untuk berintegrasi dengan CA Service, yang direkomendasikan untuk kasus penggunaan berikut:
- Jika Anda memerlukan certificate authority lain untuk menandatangani sertifikat workload pada cluster yang berbeda.
- Jika Anda perlu mendukung kunci penandatanganan di HSM terkelola.
- Jika Anda berada di industri yang diatur dengan regulasi ketat dan harus mematuhi kebijakan.
- Jika Anda ingin menggabungkan Cloud Service Mesh CA ke root perusahaan kustom untuk menandatangani sertifikat workload.
Biaya certificate authority Cloud Service Mesh disertakan dalam Harga Cloud Service Mesh. Tujuan CA Service tidak termasuk dalam harga dasar Cloud Service Mesh dan diisi daya secara terpisah. Selain itu, CA Service dilengkapi dengan SLA eksplisit, tetapi certificate authority Cloud Service Mesh tidak.
Mengonfigurasi CA Service
- Membuat kumpulan CA
di tingkat
DevOps
dan di region yang sama dengan cluster yang dilayaninya untuk menghindari masalah latensi atau potensi pemadaman layanan lintas region. Untuk informasi selengkapnya, lihat Tingkatan yang dioptimalkan untuk beban kerja. - Membuat CA memiliki setidaknya satu otoritas sertifikat aktif dalam kumpulan CA di project yang sama dengan cluster GKE. Menggunakan CA subordinate untuk menandatangani Sertifikat workload Cloud Service Mesh. Catat kumpulan CA yang sesuai dengan subordinate CA.
Jika layanan itu hanya ditujukan untuk menyervis sertifikat untuk workload Cloud Service Mesh, tetapkan kebijakan penerbitan berikut untuk kumpulan CA:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
Untuk memperbarui kebijakan penerbitan kumpulan CA, gunakan perintah berikut:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Untuk informasi tentang cara menetapkan kebijakan pada kumpulan, lihat Menggunakan kebijakan penerbitan sertifikat.
Jika Anda menggunakan template sertifikat, konfigurasi sekarang. Untuk informasi selengkapnya, ikuti panduan Layanan CA untuk sertifikat workload identity. Pastikan template sertifikat dibuat di region yang sama dengan kumpulan CA. Jika ada beberapa region untuk kumpulan CA, buat sertifikat template per wilayah.
Mengonfigurasi Cloud Service Mesh untuk menggunakan CA Service
Jalankan perintah berikut di Google Distributed Cloud (khusus software) untuk VMware atau Google Distributed Cloud (khusus software) untuk bare metal guna menginstal bidang kontrol dengan fitur default dan Certificate Authority Service. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
Jalankan
asmcli install
:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_id
Project ID project host fleet.--kubeconfig
Jalur lengkap menuju Filekubeconfig
. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Berikan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca gcp_cas
Gunakan Certificate Authority Service sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif.asmcli
konfigurasi Certificate Authority Service yang akan digunakan fleet workload identity--ca_pool
ID lengkap untuk {i>Certificate Authority Service<i} Kumpulan CA. Jika Anda menggunakan template sertifikat, tambahkan ID template yang dipisahkan dengan:
. Contoh:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
Untuk melihat metrik SLO dan infrastruktur di UI Cloud Service Mesh, Anda harus lakukan juga tiga langkah pertama dalam Aktifkan logging dan pemantauan aplikasi. Jika {i>logging<i} dan pemantauan tidak diaktifkan dan tidak menerima log khusus dan dasbor Cloud Service Mesh tidak akan menampilkan SLO, log error, atau CPU dan metrik memori.
Menginstal fitur default dengan Istio CA
Bagian ini menjelaskan cara:
- Membuat sertifikat dan kunci untuk Istio CA yang digunakan Cloud Service Mesh untuk menandatangani workload Anda.
- Jalankan
asmcli
untuk menginstal Cloud Service Mesh dengan fitur default dan aktifkan Istio CA.
Secara default lingkungan yang menginstal Cloud Service Mesh dengan metrik laporan Istio CA ke Prometheus. Jika ingin menggunakan dasbor Cloud Service Mesh, Anda harus mengaktifkan oleh Stackdriver. Untuk mengetahui informasi selengkapnya, lihat Menginstal dengan fitur opsional.
Untuk keamanan terbaik, sebaiknya Anda mempertahankan root CA offline dan menggunakan CA subordinate untuk menerbitkan sertifikat bagi setiap cluster. Untuk selengkapnya informasi selengkapnya, lihat Colokkan Sertifikat CA. Dalam konfigurasi ini, semua workload dalam mesh layanan menggunakan root yang sama {i>certificate authority<i} (CA). Setiap Cloud Service Mesh CA menggunakan CA perantara kunci penandatanganan dan sertifikat, yang ditandatangani oleh CA {i>root<i}. Jika terdapat beberapa CA dalam jala, hal ini membangun hierarki kepercayaan di antara CA. Anda dapat ulangi langkah-langkah ini untuk menyediakan sertifikat dan kunci untuk sejumlah {i>certificate authority<i}.
Makefile untuk membuat sertifikat terletak di
Subdirektori istio-1.20.4-asm.0
di direktori --output_dir
yang Anda
yang ditentukan dalam perintah asmcli validate
. Jika Anda tidak menjalankan asmcli validate
,
atau Anda tidak memiliki direktori yang diunduh
secara lokal, Anda bisa mendapatkan {i>Makefile<i} dengan
mendownload file penginstalan Cloud Service Mesh
dan mengekstrak isinya.
Ubah ke direktori
istio-1.20.4-asm.0
.Buat direktori untuk sertifikat dan kunci:
mkdir -p certs && \ pushd certs
Buat kunci dan root certificate:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Tindakan ini akan menghasilkan file berikut:
- root-cert.pem: root certificate
- root-key.pem: kunci root
- root-ca.conf: konfigurasi untuk openssl guna membuat root certificate
- root-cert.csr: CSR untuk root certificate
Buat intermediate certificate dan kunci:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Tindakan ini akan menghasilkan file ini di direktori bernama
cluster1
:- ca-cert.pem: sertifikat perantara
- ca-key.pem: kunci perantara
- cert-chain.pem: rantai sertifikat yang digunakan
istiod
- root-cert.pem: root certificate
Jika Anda melakukan langkah-langkah ini menggunakan komputer {i>offline<i}, salin kode yang dibuat ke komputer dengan akses ke cluster.
Kembali ke direktori sebelumnya:
popd
Jalankan perintah berikut untuk menginstal bidang kontrol dengan default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca citadel \
--ca_cert CA_CERT_FILE_PATH \
--ca_key CA_KEY_FILE_PATH \
--root_cert ROOT_CERT_FILE_PATH \
--cert_chain CERT_CHAIN_FILE_PATH
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Berikan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
-ca citadel
Gunakan Istio CA sebagai certificate authority.--ca_cert
Intermediate certificate--ca_key
Kunci untuk intermediate certificate--root_cert
Root certificate--cert_chain
Rantai sertifikat
Menginstal dengan Istio CA dengan Google Cloud Observability diaktifkan
Jika ingin menggunakan dasbor Cloud Service Mesh, Anda harus mengaktifkan Stackdriver.
Jalankan perintah berikut untuk menginstal bidang kontrol dengan default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca citadel \
--ca_cert CA_CERT_FILE_PATH \
--ca_key CA_KEY_FILE_PATH \
--root_cert ROOT_CERT_FILE_PATH \
--cert_chain CERT_CHAIN_FILE_PATH
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Berikan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
-ca citadel
Gunakan Istio CA sebagai certificate authority.--ca_cert
Intermediate certificate--ca_key
Kunci untuk intermediate certificate--root_cert
Root certificate--cert_chain
Rantai sertifikat--option stackdriver
Mengaktifkan opsi Stackdriver. Perlu diketahui bahwa Anda juga dapat mengaktifkan Stackdriver dan Prometheus menggunakan--option prometheus-and-stackdriver
.
Instal dengan fitur opsional
File overlay adalah file YAML yang berisi resource kustom IstioOperator
(CR) yang Anda teruskan ke asmcli
untuk mengonfigurasi bidang kontrol. Anda dapat
mengganti konfigurasi bidang
kontrol {i>default<i} dan
mengaktifkan fitur opsional dengan meneruskan
file YAML menjadi asmcli
. Anda dapat menambahkan lapisan di lebih banyak overlay, dan setiap overlay
mengganti konfigurasi pada lapisan sebelumnya. Sebagai praktik terbaik,
sebaiknya simpan file overlay di sistem kontrol versi Anda.
Ada dua opsi untuk mengaktifkan fitur opsional:
--option
dan
--custom_overlay
Gunakan --option
untuk jika Anda tidak perlu mengubah overlay
. Dengan metode ini, asmcli
mengambil file dari
Repositori GitHub
keamanan untuk Anda.
Gunakan --custom_overlay
saat Anda perlu menyesuaikan file overlay.
Untuk informasi selengkapnya, lihat Mengaktifkan fitur opsional pada bidang kontrol dalam cluster.
Jalankan perintah berikut untuk menginstal bidang kontrol dengan kolom
aplikasi baru. Untuk menambahkan beberapa file, tentukan --custom_overlay
dan nama file,
misalnya: --custom_overlay overlay_file1.yaml
--custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml
Masukkan nilai Anda di placeholder yang disediakan.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca \
--custom_overlay OVERLAY_FILE
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Berikan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan certificate authority Cloud Service Mesh sebagai {i>certificate authority<i}. Perhatikan bahwaasmcli
mengonfigurasi Certificate authority Cloud Service Mesh yang akan digunakan fleet workload identity--custom_overlay
Tetapkan nama file overlay.
Instal gateway
Cloud Service Mesh memberi Anda opsi untuk men-deploy dan mengelola gateway sebagai bagian dari jaringan layanan. Gateway menjelaskan load balancer yang beroperasi di tepi yang menerima koneksi HTTP/TCP masuk atau keluar. Gateway adalah Envoy {i>proxy<i} yang memberi Anda kontrol mendetail atas lalu lintas yang masuk dan meninggalkan {i>mesh<i}.
Buat namespace untuk gateway masuk jika Anda belum memilikinya. Gateway adalah beban kerja pengguna, dan sebagai praktik terbaik, mereka tidak boleh yang di-deploy di namespace bidang kontrol. Ganti
GATEWAY_NAMESPACE
dengan nama namespace Anda.kubectl create namespace GATEWAY_NAMESPACE
Output yang diharapkan:
namespace/GATEWAY_NAMESPACE created
Aktifkan injeksi otomatis di gateway. Langkah-langkah yang diperlukan bergantung pada apakah yang ingin Anda gunakan label injeksi default (misalnya,
istio-injection=enabled
) atau label revisi di gateway namespace. Tag revisi dan label revisi default digunakan oleh webhook injektor file bantuan untuk mengaitkan proxy yang diinjeksikan dengan revisi bidang kontrol.Label injeksi default
Terapkan label injeksi default ke namespace.
kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
Label revisi
Gunakan perintah berikut untuk menemukan label revisi di
istiod
:kubectl get deploy -n istio-system -l app=istiod -o \ "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
Perintah tersebut menghasilkan label revisi yang sesuai dengan Versi Cloud Service Mesh, misalnya:
asm-1204-0
Terapkan label revisi ke namespace. Dalam perintah berikut ini,
REVISION
adalah nilai revisiistiod
label yang Anda catat pada langkah sebelumnya.kubectl label namespace GATEWAY_NAMESPACE \ istio.io/rev=REVISION --overwrite
Output yang diharapkan:
namespace/GATEWAY_NAMESPACE labeled
Anda dapat mengabaikan pesan
"istio.io/rev" not found
di {i>output<i} tersebut. Itu berarti bahwa namespace sebelumnya tidak memiliki Labelistio.io/rev
, yang akan Anda dapatkan dalam penginstalan baru Cloud Service Mesh atau deployment baru. Karena injeksi otomatis akan gagal jika namespace memilikiistio.io/rev
danistio-injection
label, semua perintahkubectl label
di Cloud Service Mesh dokumentasi secara eksplisit menentukan kedua label.Jika namespace gateway tidak diberi label, pod
istio-ingressgateway
akan gagal dengan pesan errorImagePullBackOff
saat gateway mencoba menarik dan gambarauto
. Gambar ini harus diganti dengan webhook.Download contoh file konfigurasi .yaml gateway masuk dari Repositori
anthos-service-mesh-packages
.Terapkan contoh konfigurasi .yaml gateway masuk apa adanya, atau modifikasi sesuai diperlukan.
kubectl apply -n GATEWAY_NAMESPACE \ -f CONFIG_PATH/istio-ingressgateway
Output yang diharapkan:
deployment.apps/istio-ingressgateway created poddisruptionbudget.policy/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created service/istio-ingressgateway created serviceaccount/istio-ingressgateway created
Pelajari lebih lanjut praktik terbaik untuk gateway.
Men-deploy dan men-deploy ulang workload
Cloud Service Mesh menggunakan proxy file bantuan untuk meningkatkan keamanan, keandalan, dan kemampuan observasi. Dengan Cloud Service Mesh, fungsi-fungsi ini diabstraksi dari container utama aplikasi dan diimplementasikan dalam proxy di luar proses umum dikirimkan sebagai container terpisah dalam Pod yang sama.
Penginstalan belum selesai hingga Anda mengaktifkan proxy file bantuan otomatis injeksi (injeksi otomatis) dan memulai ulang Pod untuk workload apa pun yang yang berjalan di cluster Anda sebelum Anda menginstal Cloud Service Mesh.
Untuk mengaktifkan injeksi otomatis, beri label namespace Anda dengan
label injeksi default
jika tag default sudah disiapkan, atau label revisi
yang ditetapkan pada istiod
saat Anda menginstal Cloud Service Mesh. Revisi default
dan label revisi digunakan oleh webhook injektor file sespan untuk mengaitkan
memasukkan file bantuan dengan revisi istiod
. Setelah menambahkan label, setiap
Pod yang ada dalam namespace harus dimulai ulang agar file bantuan dapat diinjeksi.
Sebelum men-deploy workload baru di namespace baru, pastikan untuk mengonfigurasi injeksi otomatis sehingga Cloud Service Mesh dapat memantau dan mengamankan traffic.
Langkah-langkah yang diperlukan untuk mengaktifkan injeksi otomatis bergantung pada apakah Anda ingin menggunakan label injeksi default atau label revisi:
Default (Direkomendasikan)
Jika Anda menggunakan revisi tag default untuk mengaktifkan injeksi otomatis pada , pastikan tag default ada di direktori yang Anda yang ditentukan dalam
--output_dir
dan mengarah ke aplikasi yang baru diinstal revisi.DIR_PATH/istioctl tag list
Jalankan perintah berikut.
NAMESPACE
adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis.kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
Label injeksi default memasukkan revisi yang dituju tag default.
Label revisi
Gunakan perintah berikut untuk menemukan label revisi di
istiod
:kubectl -n istio-system get pods -l app=istiod --show-labels
Outputnya terlihat mirip dengan yang berikut ini:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1204-0-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1204-0,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1204-0-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1204-0,istio=istiod,pod-template-hash=5788d57586
Pada output, di bawah kolom
LABELS
, perhatikan nilaiistiod
label revisi, yang mengikuti awalanistio.io/rev=
. Dalam contoh ini, nilainya adalahasm-1204-0
.Terapkan label revisi dan hapus label
istio-injection
jika sudah ada. Dalam perintah berikut,NAMESPACE
adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis, danREVISION
adalah label revisi yang Anda catat di langkah sebelumnya.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Anda dapat mengabaikan pesan
"istio-injection not found"
di {i>output<i} tersebut. Itu berarti bahwa namespace sebelumnya tidak memiliki Labelistio-injection
, yang akan Anda dapatkan di jendela baru penginstalan Cloud Service Mesh atau deployment baru. Karena injeksi otomatis perilaku tidak ditentukan jika namespace memilikiistio-injection
dan label revisi, semua perintahkubectl label
di Dokumentasi Cloud Service Mesh secara eksplisit memastikan bahwa hanya satu yang ditetapkan.
Jika workload berjalan di cluster sebelum Anda menginstal Cloud Service Mesh, mulai ulang Pod untuk memicu injeksi ulang.
Cara Anda memulai ulang Pod bergantung pada aplikasi dan lingkungan yang digunakan cluster sudah masuk. Misalnya, di lingkungan staging, Anda mungkin hanya menghapus semua Pod, sehingga Pod akan dimulai ulang. Namun dalam produksi Anda mungkin memiliki proses yang mengimplementasikan sebuah blue-green deployment sehingga Anda dapat memulai ulang Pod dengan aman untuk menghindari gangguan traffic.
Anda dapat menggunakan
kubectl
untuk melakukan mulai ulang berkelanjutan:kubectl rollout restart deployment -n NAMESPACE
Apa langkah selanjutnya?
Jika mesh Anda seluruhnya terdiri dari cluster GKE, lihat Menyiapkan mesh multi-cluster di GKE.