Halaman ini menjelaskan cara menambahkan dan mengatur konfigurasi yang disimpan dalam sumber kebenaran.
Tentang konfigurasi
Sinkronisasi Konfigurasi dirancang untuk operator cluster yang mengelola banyak cluster. Anda dapat memastikan cluster memenuhi standar bisnis dan kepatuhan dengan mengizinkan Config Sync mengelola namespace, Peran, RoleBinding, ResourceQuotas, dan objek Kubernetes penting lainnya, di seluruh fleet Anda.
Jika Config Sync mengelola resource ini, cluster yang terdaftar Anda
tetap sinkron menggunakan konfigurasi. Konfigurasi adalah file YAML atau JSON yang disimpan dalam sumber tepercaya. Config Sync mendukung repositori Git, image OCI, dan diagram Helm
sebagai sumber kebenaran. Konfigurasi berisi jenis detail konfigurasi yang sama yang dapat Anda terapkan secara manual ke cluster menggunakan perintah kubectl apply
. Anda dapat membuat konfigurasi untuk setiap objek Kubernetes yang mungkin ada di cluster. Namun, beberapa objek Kubernetes, seperti Secrets, berisi informasi sensitif yang mungkin tidak tepat untuk disimpan dalam sumber tepercaya. Pertimbangkan apakah akan mengelola jenis objek ini menggunakan Config Sync.
Anda juga dapat menggunakan Config Sync dengan Config Connector untuk menyinkronkan konfigurasi resource Google Cloud. Untuk mempelajari lebih lanjut cara menggunakan Config Connector, baca artikel mengelola resource Google Cloud menggunakan Config Connector. Anda juga dapat menyederhanakan penginstalan Config Sync dan Config Connector dengan menyiapkan Pengontrol Konfigurasi.
Batasan
Anda tidak dapat mengubah kolom yang tidak dapat diubah dalam konfigurasi dengan mengubah nilai di sumber kebenaran. Jika Anda perlu memperbarui kolom yang tidak dapat diubah, hapus objek di cluster secara manual. Kemudian, Config Sync dapat membuat ulang objek dengan nilai kolom baru.
Pilih cara mengatur konfigurasi Anda
Config Sync menggunakan sumber tepercaya untuk penyimpanan konfigurasi dan kontrol versi. Ada dua format berbeda yang dapat dipilih sebagai sumber tepercaya; tidak terstruktur dan hierarkis.
Format sumber yang tidak terstruktur memungkinkan Anda mengatur konfigurasi dengan cara apa pun yang paling mudah. Format ini dapat sangat berguna jika Anda mengatur atau membuat konfigurasi menggunakan alat seperti Kustomize, kpt, atau Helm. Untuk contoh cara mengatur konfigurasi, lihat Contoh format untuk repositori tidak terstruktur.
Format sumber yang hierarkis atau terstruktur memisahkan konfigurasi ke dalam kategori yang berbeda untuk membantu Anda mengatur konfigurasi. Kategorinya adalah konfigurasi sistem, metadata cluster, konfigurasi tingkat cluster, dan konfigurasi namespace. Untuk mengetahui informasi selengkapnya tentang format sumber hierarkis, lihat Struktur repositori hierarkis.
Format tidak terstruktur adalah format yang direkomendasikan untuk sebagian besar pengguna. Selain itu, saat mengonfigurasi objek RepoSync, Anda harus menggunakan format sumber yang tidak terstruktur.
Fitur yang didukung untuk format yang tidak terstruktur dan hierarkis
Tabel berikut menyoroti perbedaan antara format tidak terstruktur dan hierarkis:
Fitur | Format tidak terstruktur (direkomendasikan) | Format hierarkis |
---|---|---|
Digunakan sebagai format untuk objek RootSync atau sumber tepercaya utama | Didukung | Didukung |
Digunakan sebagai format untuk objek RepoSync | Didukung | Tidak didukung |
ClusterSelector |
Didukung | Didukung |
NamespaceSelector |
Didukung | Didukung |
Perintah nomos hydrate |
Didukung dengan flag --source-format=unstructured |
Didukung |
Perintah nomos init |
Tidak didukung | Didukung |
Perintah nomos vet |
Didukung dengan flag --source-format=unstructured |
Didukung |
Semua perintah nomos lainnya |
Didukung | Didukung |
Namespace abstrak | Tidak didukung | Didukung |
Repo objek |
Tidak didukung | Didukung |
Objek HierarchyConfig |
Tidak didukung | Didukung |
Kapan harus menambahkan konfigurasi ke sumber
Jika membuat format yang tidak terstruktur, Anda dapat mulai menambahkan konfigurasi ke format tersebut segera setelah dibuat. Jika Anda membuat format hierarkis, gunakan
perintah nomos init
untuk
melakukan inisialisasi sumber tepercaya, atau buat struktur direktori secara manual.
Direktori kosong tidak dapat di-commit ke repositori Git. Jadi, sebelum mengonfigurasi Config Sync, Anda harus membuat konfigurasi dan menambahkannya ke repositori.
Setelah Anda membuat sumber tepercaya dan menambahkan konfigurasi ke sumber tepercaya, gunakan
perintah nomos vet
untuk memverifikasi
struktur sumber kebenaran dan memeriksa sintaksis serta validitas konfigurasi
Anda.
Mengonfigurasi Config Sync untuk membaca dari sumber tepercaya
Setelah membuat sumber tepercaya dan menempatkan konfigurasi ke dalamnya, Anda dapat mengonfigurasi Config Sync untuk membaca dari sumber. Setelah Anda menyelesaikan langkah ini, Config Sync akan menyinkronkan konfigurasi dari sumber tepercaya ke cluster Anda.
Anda mengonfigurasi lokasi sumber tepercaya saat menginstal Config Sync, dan Anda dapat mengedit konfigurasi Config Sync nanti. Selain lokasi sumber tepercaya, Anda dapat menentukan cabang atau subdirektori untuk diawasi, jika sumber tersebut memiliki konten selain konfigurasi.
Jika Anda menggunakan format hierarkis, dan menginstal Config Sync secara manual dengan kubectl
, jangan tempatkan konfigurasi Operator di direktori system/
, atau salah satu direktori lain yang dicadangkan seperti cluster/
atau namespaces/
. Menempatkan konfigurasi di salah satu direktori yang dicadangkan akan menyebabkan nomos vet
gagal dan mencatat error seperti KNV1033: IllegalSystemResourcePlacementError, KNV1038: IllegalKindInNamespacesError, atau KNV1039: IllegalKindInClusterError.
Anda dapat memberi orang akses ke sumber tepercaya deployment tim produk tertentu. Namun, saat Anda memberi seseorang akses ke sumber tepercaya deployment, orang tersebut juga diberi RBAC yang sama dengan rekonsiliasi yang berjalan untuk sumber tepercaya tersebut.
Untuk mengonfigurasi autentikasi dan otorisasi antara Config Sync dan sumber tepercaya, lihat langkah penginstalan tentang mengonfigurasi Secret git-creds
.
Abaikan mutasi objek
Jika tidak ingin Config Sync mempertahankan status objek dalam cluster setelah ada, Anda dapat menambahkan anotasi client.lifecycle.config.k8s.io/mutation: ignore
ke objek yang ingin Anda abaikan konfigurasi Config Sync.
Untuk menggunakan anotasi, Anda harus mengaktifkan RootSync dan RepoSync API.
Contoh berikut menunjukkan cara menambahkan anotasi ke sebuah objek:
metadata:
annotations:
client.lifecycle.config.k8s.io/mutation: ignore
Anda tidak dapat mengubah anotasi ini secara manual pada objek terkelola di cluster.
Langkah selanjutnya
- Pelajari cara mengelola namespace dan objek cakupan namespace.
- Untuk mempelajari cara memublikasikan image OCI, lihat Menyinkronkan artefak OCI dari Artifact Registry.
- Untuk mempelajari cara menyinkronkan dari diagram Helm, lihat Menyinkronkan diagram Helm dari Artifact Registry.