Mengaktifkan fitur opsional pada bidang kontrol dalam cluster
Halaman ini menjelaskan cara mengaktifkan fitur opsional di Cloud Service Mesh dengan bidang kontrol dalam cluster.
Saat Anda menginstal Cloud Service Mesh dalam cluster,
fitur yang diaktifkan secara default berbeda menurut platform.
Anda dapat mengganti konfigurasi {i>default<i}
dan mengaktifkan fitur opsional dengan
termasuk file overlay saat Anda menginstal (atau mengupgrade) Cloud Service Mesh. Channel
{i>overlay <i}adalah sebuah {i>file<i} YAML yang berisi sebuah
Resource kustom (CR) IstioOperator
yang Anda gunakan untuk
mengkonfigurasi bidang kontrol. Tentukan satu fitur per file overlay. Anda dapat menambahkan lapisan
pada lebih banyak {i>overlay<i},
dan setiap file {i>overlay<i} menimpa
konfigurasi pada lapisan sebelumnya.
Tentang file overlay
File overlay pada halaman ini berada dalam
anthos-service-mesh
paket di GitHub. File ini berisi penyesuaian umum
konfigurasi Anda. Anda dapat menggunakan {i>file<i} ini sebagaimana adanya, atau Anda dapat membuat
perubahan pada
mereka sesuai kebutuhan.
Saat menginstal Cloud Service Mesh menggunakan skrip asmcli
, Anda
dapat menentukan satu atau beberapa file overlay dengan --option
atau
--custom_overlay
opsi. Jika Anda tidak perlu membuat perubahan apa pun pada
di repositori anthos-service-mesh
, Anda dapat menggunakan --option
, dan
skrip akan mengambil file tersebut dari GitHub. Jika tidak, Anda dapat membuat
perubahan pada file overlay, lalu gunakan opsi --custom_overlay
untuk
teruskan ke asmcli
.
Jangan sertakan beberapa CR dalam satu file overlay | Membuat file overlay terpisah untuk setiap CR |
---|---|
Cara mengaktifkan fitur opsional
Contoh berikut disederhanakan agar hanya tampil dengan menggunakan overlay kustom untuk
mengaktifkan fitur opsional. Ganti OTHER_FLAGS
dengan
tanda penginstalan yang diperlukan.
Perintah asmcli install
menyediakan dua cara untuk mengaktifkan fitur opsional. Tujuan
yang digunakan akan bergantung pada apakah Anda perlu melakukan perubahan pada overlay
.
Gunakan
--option
saat Anda tidak perlu membuat perubahan apa pun pada file overlay. Dengan--option
,asmcli
mengambil file dari repositori GitHub untuk Anda, jadi Anda harus memiliki koneksi internet../asmcli install \ OTHER_FLAGS \ --option OPTION_NAME
Ganti
OPTION_NAME
dengan opsi yang ingin Anda aktifkan. Pastikan untuk menghilangkan ekstensi .yaml dan hanya menyertakan nama overlay sepertiiap-operator
danattached-cluster
. Untuk daftar opsi, lihatanthos-service-mesh
paket.Gunakan
--custom_overlay
saat Anda perlu menyesuaikan file overlaynya../asmcli install \ OTHER_FLAGS \ --custom_overlay PATH_TO_FILE
Ganti
PATH_TO_FILE
dengan jalur ke overlay yang ingin Anda gunakan.
YAML untuk fitur opsional
Bagian berikut menyediakan YAML untuk mengaktifkan opsi opsional dan yang didukung baru.
Mode STRICT
mTLS
Konfigurasi global.mtls.enabled
telah dihapus dari IstioOperator
CR untuk menghindari masalah dengan upgrade dan untuk memberikan penginstalan yang lebih fleksibel.
Untuk mengaktifkan STRICT
mTLS,
melakukan konfigurasi
kebijakan autentikasi peer.
Gambar proxy tanpa distro
Sebagai praktik terbaik, Anda harus membatasi konten runtime container hanya ke paket yang diperlukan. Pendekatan ini meningkatkan keamanan dan rasio sinyal terhadap derau dari pemindai Kerentanan dan Eksposur Umum (CVE). Istio menyediakan image proxy berdasarkan image dasar tanpa gangguan.
Konfigurasi berikut memungkinkan image distroless untuk seluruh Cloud Service Mesh. Perubahan jenis image mengharuskan setiap pod dimulai ulang dan dimasukkan ulang agar dapat diterapkan.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
image:
imageType: distroless
Image distroless tidak berisi biner selain proxy. Oleh karena itu, Anda tidak dapat exec
shell atau menggunakan curl
, ping
, atau utilitas debug lainnya di dalam container.
Jika Anda menjalankan perintah curl, Anda akan melihat error berikut:
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "<container-id>"
OCI runtime exec failed: exec failed: unable to start container process: exec: "curl": executable file not found in $PATH: unknown
Jika Anda menjalankan perintah shell, Anda akan melihat error berikut:
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "<container-id>"
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "sh": executable file not found in $PATH: unknown
Jika memerlukan akses ke alat ini untuk pod tertentu, Anda dapat mengganti imageType
menggunakan anotasi pod berikut.
sidecar.istio.io/proxyImageType: debug
Setelah mengubah jenis image deployment melalui anotasi, deployment tersebut harus dimulai ulang.
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
Untuk sebagian besar jenis proses debug proxy, istioctl proxy-cmd
harus digunakan yang tidak memerlukan image dasar debug.
Menggunakan overlay kustom untuk registry kustom
Anda dapat menggunakan overlay kustom untuk registry kustom, seperti jika Anda perlu menginstal Cloud Service Mesh dari container registry kustom. Contoh:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
hub: {private_registry_url}
Berikut adalah daftar gambar untuk Cloud Service Mesh yang perlu Anda cerminkan container registry kustom:
- Install-cni -
gke.gcr.io/asm/install-cni:1.20.4-asm.0
- Paket Data Terkelola -
gke.gcr.io/asm/mdp:1.20.4-asm.0
- Uji coba -
gke.gcr.io/asm/pilot:1.20.4-asm.0
- Proxyv2 -
gke.gcr.io/asm/proxyv2:1.20.4-asm.0
Menambahkan image ke registry pribadi
Untuk mengirim image Cloud Service Mesh ke registry pribadi, selesaikan langkah-langkah berikut langkah.
-
Tarik image Cloud Service Mesh:
docker pull gke.gcr.io/asm/install-cni:1.20.4-asm.0 docker pull gke.gcr.io/asm/mdp:1.20.4-asm.0 docker pull gke.gcr.io/asm/pilot:1.20.4-asm.0 docker pull gke.gcr.io/asm/proxyv2:1.20.4-asm.0
-
Buat variabel untuk URL registry pribadi Anda:
Gantiexport PRIVATE_REGISTRY_URL=PRIVATE_REGISTRY_URL
PRIVATE_REGISTRY_URL
dengan registry pribadi Anda . -
Beri tag pada gambar dengan URL registry pribadi Anda:
docker tag gke.gcr.io/asm/install-cni:1.20.4-asm.0 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.20.4-asm.0 docker tag gke.gcr.io/asm/mdp:1.20.4-asm.0 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/mdp:1.20.4-asm.0 docker tag gke.gcr.io/asm/pilot:1.20.4-asm.0 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.20.4-asm.0 docker tag gke.gcr.io/asm/proxyv2:1.20.4-asm.0 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.20.4-asm.0
- Mengirim image yang diberi tag ke registry pribadi Anda:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.20.4-asm.0 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/mdp:1.20.4-asm.0 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.20.4-asm.0 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.20.4-asm.0
- (Opsional) Jika Anda menggunakan
layanan kanonis, lalu tambahkan
image layanan kanonis ke registry pribadi.
- Ambil image layanan kanonis Cloud Service Mesh:
docker pull gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker pull gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16
- Beri tag pada gambar dengan URL registry pribadi Anda:
docker tag gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 \ ${PRIVATE_REGISTRY_URL}/gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker tag gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16
- Mengirim image yang diberi tag ke registry pribadi Anda:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/kube-rbac-proxy:v0.13.1 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16
- Ambil image layanan kanonis Cloud Service Mesh:
Jika Anda dapat menarik image yang diberi tag dari registry pribadi Anda, maka prosedurnya berhasil.
Meningkatkan durasi penghentian penghentian
Secara default, Envoy akan menunggu lima detik (5s
) hingga koneksi yang ada selesai saat pod dihentikan.
Pod terminationGracePeriodSeconds
harus lebih besar dari nilai terminationDrainDuration
.
Untuk mengetahui informasi selengkapnya, lihat Opsi Mesh Global.
---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
terminationDrainDuration: 30s
Aktifkan Log akses
Untuk informasi selengkapnya, lihat Aktifkan logging akses Envoy.
Cloud Trace
Cloud Trace tersedia dengan penginstalan Cloud Service Mesh untuk hal berikut platform:
- GKE di Google Cloud
- GKE Enterprise clusters lokal jika Anda menginstal Certificate authority Cloud Service Mesh
Untuk mengetahui informasi selengkapnya, lihat Mengakses rekaman aktivitas.
Traffic keluar melalui gateway keluar
Sebaiknya Anda menginstal gateway yang dimasukkan seperti yang dijelaskan dalam Menginstal dan mengupgrade gateway.
Antarmuka Jaringan Container Istio
Cara Anda mengaktifkan Istio Container Network Interface (CNI) bergantung pada lingkungan tempat Cloud Service Mesh diinstal.
Pilih file overlay yang cocok dengan platform Anda.
Mengaktifkan CNI di GKE
Aktifkan CNI lokal
Aktifkan Log traffic untuk off-Google Cloud
Menginstal Cloud Service Mesh dengan Istio CA di luar laporan Google Cloud metrik ke Prometheus secara {i>default<i}. Gunakan opsi ini untuk mengaktifkan pelaporan Traffic log saja, atau keduanya, Prometheus dan Stackdriver, sehingga Anda dapat menggunakan Dasbor Cloud Service Mesh.
Hanya Stackdriver
Stackdriver dan Prometheus
Mengaktifkan load balancer internal
Sebaiknya Anda menginstal
gateway yang dimasukkan seperti yang dijelaskan dalam
Instal dan upgrade gateway untuk menyiapkan gateway
load balancer di GKE. Saat mengkonfigurasi layanan gateway,
Anda menyertakan anotasi: networking.gke.io/load-balancer-type: "Internal"
Pengelolaan sertifikat eksternal di gateway masuk
Untuk mengetahui informasi tentang cara mengaktifkan pengelolaan sertifikat eksternal saat traffic masuk menggunakan Envoy SDS, lihat Gateway Aman.