Halaman ini menjelaskan cara:
- Jalankan
asmcli
untuk melakukan penginstalan baru Anthos Service Mesh 1.10.6-asm.2. - Deploy atau deploy ulang workload untuk memasukkan proxy file bantuan.
Sebelum memulai
Sebelum memulai, pastikan Anda:
- Tinjau prasyarat.
- Tinjau informasi di Merencanakan penginstalan.
- Instal alat yang diperlukan
- Download
asmcli
- Memberikan izin admin cluster
- Memvalidasi project dan cluster
Menginstal Anthos Service Mesh
Berikut adalah penjelasan cara menginstal Anthos Service Mesh:
Jalankan
asmcli install
untuk menginstal bidang kontrol dalam cluster di satu cluster. Lihat bagian berikut untuk contoh command line. Contoh tersebut berisi argumen yang diperlukan dan argumen opsional yang mungkin berguna bagi Anda. Sebaiknya selalu tentukan argumenoutput_dir
sehingga Anda dapat menemukan gateway contoh dan alat sepertiistioctl
dengan mudah. Lihat menu navigasi di sebelah kanan untuk melihat daftar contoh.Jika ingin, instal gateway masuk.
Untuk menyelesaikan penyiapan Anthos Service Mesh, Anda perlu mengaktifkan injeksi bantuan otomatis dan men-deploy atau men-deploy ulang workload.
Jika Anda menginstal Anthos Service Mesh di lebih dari satu cluster, jalankan
asmcli install
di setiap cluster. Setelah Anthos Service Mesh diinstal di semua cluster, lihat Menyiapkan mesh multi-cluster secara lokalJika cluster Anda berada di jaringan yang berbeda (karena berada dalam mode pulau), Anda harus meneruskan nama jaringan yang unik ke
asmcli
menggunakan flag--network_id
.
Instal fitur default dan Mesh CA
Bagian ini menunjukkan cara menjalankan asmcli
untuk menginstal Anthos Service Mesh dengan fitur default yang didukung untuk platform Anda dan mengaktifkan certificate authority Anthos Service Mesh (Mesh CA) sebagai certificate authority.
GKE
Jalankan perintah berikut untuk menginstal bidang kontrol baru dengan fitur default. 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
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika opsi ini tidak disertakan,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
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.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Mengaktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Mesh CA sebagai certificate authority.asmcli
mengonfigurasi Mesh CA untuk menggunakan identitas workload fleet
Lokal
Setel konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
Jalankan perintah berikut untuk menginstal bidang kontrol baru dengan fitur default. Masukkan nilai Anda di placeholder yang disediakan.
./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
Project ID project host fleet.--kubeconfig
Jalur ke filekubeconfig
Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
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 infrastruktur lokal adalah platformnya.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Mengaktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Mesh CA sebagai certificate authority.asmcli
mengonfigurasi Mesh CA untuk menggunakan identitas workload fleet
Menginstal fitur default dengan Istio CA
Bagian ini menjelaskan cara:
- Buat sertifikat dan kunci untuk Istio CA yang digunakan Anthos Service Mesh untuk menandatangani workload Anda.
- Jalankan
asmcli
untuk menginstal Anthos Service Mesh dengan fitur default dan mengaktifkan Istio CA.
Untuk keamanan terbaik, sebaiknya Anda mempertahankan root CA offline dan menggunakan CA subordinat untuk menerbitkan sertifikat bagi setiap cluster. Untuk informasi selengkapnya, lihat Mencolokkan Sertifikat CA. Dalam konfigurasi ini, semua beban kerja di mesh layanan menggunakan root certificate authority (CA) yang sama. Setiap CA Anthos Service Mesh menggunakan kunci dan sertifikat penandatanganan CA perantara, yang ditandatangani oleh root CA. Jika beberapa CA ada dalam sebuah mesh, hal ini akan menetapkan hierarki kepercayaan di antara CA. Anda dapat mengulangi langkah-langkah ini untuk menyediakan sertifikat dan kunci untuk sejumlah certificate authority.
Buat direktori untuk sertifikat dan kunci:
mkdir -p certs && \ pushd certs
Buat root certificate dan kunci:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Tindakan ini 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 kunci dan sertifikat perantara:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Tindakan ini menghasilkan file ini dalam 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 offline, salin direktori yang dihasilkan ke komputer yang memiliki akses ke cluster.
Kembali ke direktori sebelumnya:
popd
Jalankan
asmcli
untuk menginstal mesh menggunakan Istio CA:GKE
./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 tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika opsi ini tidak disertakan,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
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.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Mengaktifkan Google API yang diperlukan.
- Tetapkan 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
Lokal
Setel konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
Jalankan perintah berikut untuk menginstal Anthos Service Mesh dengan fitur default dan Istio CA:
./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --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
--fleet_id
Project ID project host fleet.--kubeconfig
Jalur ke filekubeconfig
Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
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 infrastruktur lokal adalah platformnya.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Mengaktifkan Google API yang diperlukan.
- Tetapkan 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
Instal dengan fitur opsional
File overlay adalah file YAML yang berisi resource kustom (CR) IstioOperator
yang Anda teruskan ke asmcli
untuk mengonfigurasi bidang kontrol. Anda dapat mengganti konfigurasi bidang kontrol default dan mengaktifkan fitur opsional dengan meneruskan file YAML ke asmcli
. Anda dapat menambahkan lapisan pada lebih banyak overlay, dan setiap file overlay akan menggantikan konfigurasi pada lapisan sebelumnya.
GKE
Jalankan perintah berikut untuk menginstal bidang kontrol baru dengan fitur default. 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 tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika opsi ini tidak disertakan,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
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.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Mengaktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Mesh CA sebagai certificate authority. Perhatikan bahwaasmcli
mengonfigurasi Mesh CA untuk menggunakan identitas workload fleet--custom_overlay
Tentukan nama file overlay.
Lokal
Setel konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
Jalankan perintah berikut untuk menginstal bidang kontrol baru dengan fitur default. Masukkan nilai Anda di placeholder yang disediakan.
./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca \ --custom_overlay OVERLAY_FILE
--fleet_id
Project ID project host fleet.--kubeconfig
Jalur ke filekubeconfig
Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
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 infrastruktur lokal adalah platformnya.-
--enable_all
Mengizinkan skrip untuk:- Memberikan izin IAM yang diperlukan.
- Mengaktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Mesh CA sebagai certificate authority. Perhatikan bahwaasmcli
mengonfigurasi Mesh CA untuk menggunakan identitas workload fleet--custom_overlay
Tentukan nama file overlay.
Menginstal gateway
Anthos Service Mesh memberi Anda opsi untuk men-deploy dan mengelola gateway sebagai bagian dari mesh layanan. Gateway menjelaskan load balancer yang beroperasi di edge mesh yang menerima koneksi HTTP/TCP masuk atau keluar. Gateway adalah proxy Envoy yang memberi Anda kontrol terperinci atas traffic yang masuk dan keluar dari mesh.
Buat namespace untuk gateway masuk jika Anda belum memilikinya. Gateway adalah beban kerja pengguna, dan sebagai praktik terbaik, gateway tidak boleh di-deploy di namespace bidang kontrol. Ganti
GATEWAY_NAMESPACE
dengan nama namespace Anda.kubectl create namespace GATEWAY_NAMESPACE
Aktifkan injeksi otomatis di gateway dengan menerapkan label revisi pada namespace gateway. Label revisi digunakan oleh webhook injektor file bantuan untuk mengaitkan proxy yang dimasukkan dengan revisi bidang kontrol tertentu. Label revisi yang digunakan bergantung pada apakah Anda men-deploy Anthos Service Mesh terkelola atau bidang kontrol dalam cluster.
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-1106-2-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1106-2-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
Pada output, di kolom
LABELS
, catat nilai label revisiistiod
, yang mengikuti awalanistio.io/rev=
. Dalam contoh ini, nilainya adalahasm-1106-2
.Terapkan label revisi ke namespace. Dalam perintah berikut,
REVISION
adalah nilai label revisiistiod
yang Anda catat di langkah sebelumnya.kubectl label namespace GATEWAY_NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Anda dapat mengabaikan pesan
"istio-injection not found"
di output. Artinya, namespace sebelumnya tidak memiliki labelistio-injection
, yang akan Anda harapkan dalam penginstalan baru Anthos Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memilikiistio-injection
dan label revisi, semua perintahkubectl label
dalam dokumentasi Anthos Service Mesh mencakup penghapusan labelistio-injection
.Ubah ke direktori yang Anda tentukan di
--output_dir
.Anda dapat men-deploy contoh konfigurasi gateway masuk yang terletak di direktori
samples/gateways/istio-ingressgateway/
sebagaimana adanya, atau mengubahnya sesuai kebutuhan.kubectl apply -n GATEWAY_NAMESPACE -f samples/gateways/istio-ingressgateway
Pelajari praktik terbaik untuk gateway lebih lanjut.
Men-deploy dan men-deploy ulang workload
Anthos Service Mesh menggunakan proxy file bantuan untuk meningkatkan keamanan, keandalan, dan kemampuan observasi jaringan. Dengan Anthos Service Mesh, fungsi-fungsi ini diabstraksikan dari container utama aplikasi dan diimplementasikan dalam proxy di luar proses umum yang dikirimkan sebagai container terpisah dalam Pod yang sama.
Penginstalan belum selesai sampai Anda mengaktifkan injeksi proxy sidecar otomatis (injeksi otomatis) dan memulai ulang Pod untuk semua workload yang sedang berjalan di cluster sebelum Anda menginstal Anthos Service Mesh.
Untuk mengaktifkan injeksi otomatis, beri label namespace dengan label revisi
yang ditetapkan pada istiod
saat Anda menginstal Anthos Service Mesh. Label revisi
digunakan oleh webhook injektor file bantuan untuk mengaitkan file bantuan yang dimasukkan dengan
revisi istiod
tertentu. Setelah menambahkan label, semua Pod yang ada di
namespace harus dimulai ulang agar sidecar dapat dimasukkan.
Sebelum men-deploy workload baru di namespace baru, pastikan untuk mengonfigurasi injeksi otomatis agar Anthos Service Mesh dapat memantau dan mengamankan traffic.
Untuk mengaktifkan injeksi otomatis:
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-1106-2-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1106-2-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
Pada output, di kolom
LABELS
, catat nilai label revisiistiod
, yang mengikuti awalanistio.io/rev=
. Dalam contoh ini, nilainya adalahasm-1106-2
.Terapkan label revisi dan hapus label
istio-injection
jika ada. Dalam perintah berikut,NAMESPACE
adalah nama namespace tempat Anda ingin mengaktifkan injeksi otomatis, danREVISION
adalah label revisi yang Anda catat pada langkah sebelumnya.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Anda dapat mengabaikan pesan
"istio-injection not found"
di output. Artinya, namespace sebelumnya tidak memiliki labelistio-injection
, yang akan Anda harapkan dalam penginstalan baru Anthos Service Mesh atau deployment baru. Karena injeksi otomatis gagal jika namespace memilikiistio-injection
dan label revisi, semua perintahkubectl label
dalam dokumentasi Anthos Service Mesh mencakup penghapusan labelistio-injection
.Jika beban kerja berjalan di cluster sebelum Anda menginstal Anthos Service Mesh, mulai ulang Pod untuk memicu injeksi ulang.
Cara memulai ulang Pod bergantung pada aplikasi dan lingkungan cluster tersebut. Misalnya, di lingkungan staging, Anda dapat menghapus semua Pod, yang menyebabkannya dimulai ulang. Namun, di lingkungan produksi, Anda mungkin memiliki proses yang menerapkan deployment berwarna biru-hijau, 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
Pastikan bahwa Pod Anda telah dikonfigurasi untuk mengarah ke versi baru
istiod
.kubectl get pods -n NAMESPACE -l istio.io/rev=REVISION