CRD ASMReconcileNSLabels, yang tersedia mulai dari ASM versi 1.28 dan seterusnya, memungkinkan Anda mengonfigurasi kebijakan sinkronisasi label namespace. Referensi ini menyediakan contoh YAML dan deskripsi bidang.
Kasus penggunaan
Dalam instans ASM multi-kluster, namespace di lapisan kontrol (instans ASM) dan bidang data (kluster Kubernetes) dikelola secara independen. Saat Anda menerapkan label terkait Istio ke namespace pada lapisan kontrol—misalnya, untuk mengaktifkan injeksi otomatis Sidecar atau mode Ambient—label tersebut secara default disinkronkan ke kluster bidang data. Anda dapat menggunakan CRD ASMReconcileNSLabels untuk mengubah perilaku ini.
Batasan
Instans ASM Anda harus menggunakan versi 1.28 atau lebih baru. Untuk instruksi peningkatan, lihat Upgrade an ASM instance.
ASMReconcileNSLabelsadalah resource dengan cakupan kluster. Hanya satu resource bernamadefaultyang dapat dibuat dalam satu instans ASM.Hanya label terkait Istio berikut yang disinkronkan. Label kustom tidak terpengaruh:
istio.io/dataplane-mode: Mengaktifkan mode Ambient untuk namespace.istio-injection: Mengaktifkan atau menonaktifkan injeksi otomatis Sidecar untuk namespace.istio.io/rev: Menetapkan namespace ke revisi Istio tertentu.
Contoh YAML
Contoh 1: aktifkan sinkronisasi label namespace secara global
Sinkronkan label namespace dari lapisan kontrol ke semua kluster bidang data.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default # Harus bernama default
spec:
syncPolicy:
enabled: trueContoh 2: nonaktifkan sinkronisasi label namespace secara global
Hentikan sinkronisasi semua label namespace ke kluster bidang data.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: falseContoh 3: sinkronkan ke kluster tertentu (allowlist)
Sinkronkan label namespace hanya ke kluster bidang data yang ditentukan. Saat enabled bernilai true, daftar clusters (ID kluster) berfungsi sebagai allowlist.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
clusters:
- c-xxxx1 # ID kluster bidang data
- c-xxxx2Contoh 4: kecualikan kluster tertentu (denylist)
Sinkronkan label namespace ke semua kluster bidang data kecuali yang ditentukan. Saat enabled bernilai false, daftar clusters (ID kluster) berfungsi sebagai denylist.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false
clusters:
- c-xxxx3 # ID kluster bidang dataContoh 5: tentukan kluster sumber
Gunakan bidang cardinal untuk menentukan ID kluster sumber.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
cardinal: c-xxxx4 # ID kluster sumber untuk sinkronisasiContoh 6: gabungkan allowlist dan kluster sumber
Baca label namespace dari kluster sumber yang ditentukan dan sinkronkan hanya ke kluster dalam allowlist.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
cardinal: c-xxxx4 # ID kluster sumber untuk sinkronisasi
clusters:
- c-xxxx1
- c-xxxx2Bidang
Spec
Bidang | Tipe | Wajib | Deskripsi |
syncPolicy | SyncPolicy | Tidak | Mengonfigurasi kebijakan global untuk sinkronisasi label namespace ke kluster bidang data. Secara default, jika bidang ini dihilangkan, label akan disinkronkan ke semua kluster bidang data. |
SyncPolicy
Objek SyncPolicy menentukan perilaku sinkronisasi untuk label namespace. Bidang enabled dan clusters bekerja bersama untuk menentukan cakupan sinkronisasi berdasarkan aturan berikut:
enabled | clusters | Perilaku sinkronisasi |
| Kosong | Sinkronkan ke semua kluster bidang data. |
|
| Sinkronkan hanya ke kluster A dan B (allowlist). |
| Kosong | Tidak menyinkronkan ke kluster mana pun. |
|
| Sinkronkan ke semua kluster kecuali kluster A dan B (denylist). |
Bidang | Tipe | Wajib | Deskripsi |
enabled | bool | Tidak | Mengontrol status aktif kebijakan sinkronisasi. Nilai default-nya adalah |
cardinal | string | Tidak | Menentukan ID kluster sumber untuk sinkronisasi label. Jika tidak ditentukan, label disinkronkan dari kluster lapisan kontrol secara default. Jika kluster yang ditentukan tidak ada, sistem akan kembali menggunakan kluster lapisan kontrol. |
clusters | string[] | Tidak | Daftar ID kluster bidang data. Parameter ini digunakan dengan bidang enabled. Daftar ini berfungsi sebagai daftar izin saat |