Alat command line nomos
adalah alat opsional untuk Config Sync yang
yang dapat Anda gunakan untuk mendapatkan status Config Sync
dari sumber kebenaran Anda. Tujuan
Alat nomos
memberi Anda perintah berikut:
Perintah | Penggunaan |
---|---|
nomos status |
Memeriksa status Config Sync |
nomos vet |
Memeriksa error dalam sumber tepercaya |
nomos hydrate |
Lihat semua konfigurasi di sumber tepercaya |
nomos bugreport |
Membuat laporan bug |
nomos migrate |
Melakukan migrasi dari objek ConfigManagement ke RootSync |
nomos init |
Melakukan inisialisasi sumber kebenaran hierarkis |
Prasyarat
Sebelum Anda dapat menggunakan alat nomos
untuk berinteraksi dengan cluster, Config Sync
harus sudah diinstal di cluster target. Anda juga harus
menginstal dan mengonfigurasi alat command line kubectl
.
Jika berinteraksi dengan cluster Google Kubernetes Engine, pastikan Anda juga
instal
gke-gcloud-auth-plugin
Alat nomos
mendukung pratinjau dan memvalidasi konfigurasi Kustomize serta
Diagram helm. Sebelum Anda dapat menggunakan fitur ini, instal
Melakukan penyesuaian
dan Helm di jaringan lokal Anda
Infrastruktur Cloud. Jika sumber tepercaya Anda hanya berisi informasi
yang dirender, Kustomize dan Helm bersifat opsional.
Menginstal alat nomos
Alat nomos
adalah biner yang dikompilasi dari kode Go dan Anda dapat menginstalnya
secara lokal, misalnya, di
workstation atau laptop.
Alat nomos
tidak disertakan saat Anda menginstal Config Sync. Anda dapat
instal alat nomos
dengan menginstal Google Cloud CLI. Jika
Anda menggunakan Cloud Shell,
Google Cloud CLI sudah diinstal sebelumnya.
Jika Anda tidak memiliki Google Cloud CLI, sebaiknya gunakan
gcloud components install nomos
ke
instal alat nomos
. Menginstal alat nomos
dengan Google Cloud CLI
memungkinkan Anda menggunakan
gcloud components update
ke
mengupdate alat nomos
ke versi terbaru.
Untuk mengetahui informasi tentang cara alternatif menginstal alat nomos
, lihat
Download.
Penggunaan dasar
Untuk sintaksis perintah dasar, gunakan argumen --help
:
nomos --help
Alat nomos
membaca dari clone lokal sumber tepercaya Anda. Menggunakan --path
untuk menentukan lokasi level teratas sumber tepercaya. Secara {i>default<i},
--path
disetel ke .
, atau direktori saat ini. Contoh:
nomos --path=PATH_TO_SOURCE vet
Memeriksa status Config Sync
Anda dapat memantau status Config Sync di semua cluster yang terdaftar menggunakan
menggunakan perintah nomos status
. Untuk setiap cluster, nomos status
melaporkan hash
commit yang terakhir diterapkan
ke cluster dan error apa pun
yang muncul saat mencoba menerapkan perubahan terbaru apa pun.
Anda juga dapat menggunakan nomos status
untuk memeriksa apakah resource dikelola oleh
Config Sync sudah siap. nomos status
melaporkan status untuk setiap individu
resource di kolom STATUS
pada bagian Managed resources
dari output.
Contoh berikut menunjukkan beberapa kondisi berbeda yang
Perintah nomos status
mungkin melaporkan:
nomos status
Contoh output:
MANAGED_CLUSTER_1
--------------------
<root> git@github.com:foo-corp/acme@main
SYNCED f52a11e4
Managed resources:
NAMESPACE NAME STATUS
k8snoexternalservices.constraints.gatekeeper.sh/no-internet-services Current
namespace/hello Current
MANAGED_CLUSTER_2
--------------------
<root> git@github.com:foo-corp/acme@main
PENDING 9edf8444
MANAGED_CLUSTER_3
--------------------
<root> git@github.com:foo-corp/acme@main
ERROR f52a11e4
Error: KNV1021: No CustomResourceDefinition is defined for the resource in the cluster.
MANGED_CLUSTER_4
--------------------
NOT INSTALLED
MANAGED_CLUSTER_5
--------------------
<root> git@github.com:foo-corp/acme/admin@main
SYNCED f52a11e4
Managed resources:
NAMESPACE NAME STATUS
namespace/gamestore Current
namespace/monitoring Current
gamestore reposync.configsync.gke.io/repo-sync Current
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-admin Current
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin Current
monitoring deployment.apps/prometheus-operator Current
monitoring prometheus.monitoring.coreos.com/acm Current
monitoring service/prometheus-acm Current
monitoring service/prometheus-operator Current
monitoring serviceaccount/prometheus-acm Current
monitoring serviceaccount/prometheus-operator Current
monitoring servicemonitor.monitoring.coreos.com/acm-service Current
--------------------
bookstore git@github.com:foo-corp/acme/bookstore@v1
SYNCED 34d1a8c8
Managed resources:
NAMESPACE NAME STATUS
gamestore configmap/store-inventory Current
gamestore webstore.marketplace.com/gameplace Current
Dalam output ini:
MANAGED_CLUSTER_1
telah menyinkronkan perubahan terbaru ke sumber kebenaran dan semua resource terkelola memiliki statusCurrent
. StatusCurrent
berarti agar status resource sesuai dengan status yang Anda inginkan.MANAGED_CLUSTER_2
masih disinkronkan.MANAGED_CLUSTER_3
memiliki error yang mencegah perubahan diterapkan. Dalam contoh ini,MANAGED_CLUSTER_3
memiliki error KNV1021 karena tidak ada CustomResourceDefinition (CRD) yang telah diinstal oleh cluster lain.MANAGED_CLUSTER_4
belum menginstal Config Sync.MANAGED_CLUSTER_5
sedang disinkronkan dari dua repositori Git. Sumber tepercaya<root>
adalah milik admin cluster danbookstore
yang tepercaya mungkin milik tim pengembangan aplikasi.
Status resource terkelola
Status resource terkelola dapat berupa salah satu dari nilai berikut:
InProgress
: Status resource sebenarnya belum mencapai status status yang Anda tetapkan dalam manifes resource. Status ini berarti bahwa rekonsiliasi resource belum selesai. Sumber daya yang baru dibuat biasanya memulai dengan status ini, meskipun beberapa resource seperti ConfigMaps adalahCurrent
segera.Failed
: Proses merekonsiliasi status yang sebenarnya dengan status yang Anda ingin mengalami {i>error<i} atau progresnya tidak mencukupi.Current
: Status resource sebenarnya sesuai dengan status yang Anda inginkan. Proses rekonsiliasi dianggap selesai hingga ada perubahan pada yang diinginkan atau yang sebenarnya.Terminating
: Resource sedang dalam proses penghapusan.NotFound
: Resource tidak ada di cluster.Unknown
: Config Sync tidak dapat menentukan status resource.
Untuk menonaktifkan penayangan status level resource, tambahkan --resources=false
ke
perintah nomos status
.
Tentang commit yang terakhir disinkronkan
Perintah nomos status
menampilkan hash commit terbaru yang
diterapkan ke cluster dalam outputnya di bagian status.sync.commit
. Untuk mendapatkannya
nilai, buat kueri objek RootSync
atau RepoSync
, lalu lihat status.sync
kolom tersebut.
Misalnya, untuk membuat kueri objek RootSync
, jalankan perintah berikut:
kubectl get rootsyncs.configsync.gke.io -n config-management-system root-sync -o yaml
Contoh output:
apiVersion: configsync.gke.io/v1beta1
kind: RootSync
status:
sync:
commit: f1739af550912034139aca51e382dc50c4036ae0
lastUpdate: "2021-04-20T00:25:01Z"
Untuk membuat kueri objek RepoSync
, jalankan perintah berikut:
kubectl get reposync.configsync.gke.io -n NAMESPACE repo-sync -o yaml
Ganti NAMESPACE
dengan namespace yang Anda buat
sumber kebenaran namespace Anda.
Contoh output:
apiVersion: configsync.gke.io/v1beta1
kind: RepoSync
status:
sync:
commit: ed95b50dd918cf65d8908f7561cb8d8d1f179c2f
lastUpdate: "2021-04-20T00:25:20Z"
Commit ini merepresentasikan commit terbaru terhadap cluster. Namun, bukan
setiap resource di cluster terpengaruh oleh setiap commit; untuk melihat cara
commit terbaru untuk resource tertentu, buat kueri resource spesifik, dan lihat
metadata.annotations.configmanagement.gke.io/token
. Contoh:
kubectl get clusterroles CLUSTER_ROLE_NAME -o yaml
Ganti CLUSTER_ROLE_NAME
dengan nama cluster
peran yang ingin Anda kueri.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
configmanagement.gke.io/token: ed95b50dd918cf65d8908f7561cb8d8d1f179c2f
tanda status nomos
Untuk menyesuaikan perintah nomos status
, tambahkan tanda berikut:
Tanda | Deskripsi |
---|---|
--contexts |
Menerima daftar konteks yang dipisahkan koma untuk digunakan dalam multi-cluster perintah. Setelan defaultnya adalah semua konteks. Gunakan "" tanpa konteks. |
-h atau --help |
Bantuan untuk perintah nomos status . |
--namespace |
Menerima string. Gunakan flag namespace untuk membatasi
perintah ke sumber kebenaran namespace tertentu. Biarkan tidak disetel pada
mendapatkan semua sumber. Tanda ini hanya tersedia jika Anda mengaktifkan
menyinkronkan data dari lebih
dari satu sumber yang terpercaya. |
--poll |
Gunakan flag poll untuk menjalankan
nomos status secara terus-menerus dan meminta untuk mencetak ulang statusnya
tabel pada interval
reguler. Contohnya, 3s . Tinggalkan tanda ini
tidak disetel untuk menjalankan nomos status sekali |
--resources |
Menerima true atau false . Jika true ,
nomos status menampilkan status level resource untuk root Anda
atau namespace saat menyinkronkan data dari lebih dari satu sumber tepercaya.
Nilai defaultnya adalah true . |
--timeout |
Waktu tunggu untuk terhubung ke setiap cluster. Nilai defaultnya adalah
3s . |
--name |
Menerima string. Gunakan tanda ini untuk memfilter Sinkronisasi Root dan Repo dengan
nama yang diberikan. Penanda ini dapat digunakan bersama
namespace . |
Izin yang diperlukan
Jika Anda adalah pemilik project, Anda memiliki peran RBAC cluster-admin
dan dapat
gunakan perintah nomos status
untuk setiap cluster dalam project Anda tanpa menambahkan
izin akses lebih lanjut. Jika tidak memiliki peran cluster-admin
, Anda dapat menggunakan
nomos status
dengan membuat ClusterRole berikut:
Buat file bernama
nomos-status-reader.yaml
dan salin perintah berikut ClusterRole ke dalamnya. Aturan yang diperlukan berbeda bergantung pada baik Anda menggunakan Objek RootSync dan RepoSync.Menggunakan objek RootSync dan RepoSync
# nomos-status-reader.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: nomos-status-reader rules: - apiGroups: ["configsync.gke.io"] resources: ["reposyncs", "rootsyncs"] verbs: ["get"] - nonResourceURLs: ["/"] verbs: ["get"]
Tidak menggunakan objek RootSync dan RepoSync
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: nomos-status-reader rules: - apiGroups: ["configmanagement.gke.io"] resources: ["configmanagements", "repos"] verbs: ["get", "list"] - nonResourceURLs: ["/"] verbs: ["get"]
Terapkan file
nomos-status-reader.yaml
:kubectl apply -f nomos-status-reader.yaml
Memeriksa error dalam sumber kebenaran
Sebelum Anda meng-commit konfigurasi ke sumber kebenaran, gunakan perintah nomos vet
untuk
periksa sintaksis dan validitas konfigurasi di sumber tepercaya Anda:
nomos vet
Jika ditemukan error sintaksis, perintah nomos vet
akan keluar dengan status bukan nol
dan mencatat pesan error ke STDERR
.
tanda dokter hewan nomos
Untuk menyesuaikan perintah nomos vet
, tambahkan tanda berikut:
Tanda | Deskripsi |
---|---|
--clusters |
Menerima daftar nama cluster yang dipisahkan koma untuk digunakan dalam multi-cluster
perintah. Setelan defaultnya adalah semua cluster. Gunakan "" jika tidak ada cluster. |
-h atau --help |
Bantuan untuk perintah nomos vet . |
--namespace |
Menerima string. Jika ditetapkan, memvalidasi sumber kebenaran sebagai namespace
menjadi sumber tepercaya dengan
nama yang diberikan. Otomatis menetapkan
--source-format=unstructured . |
--no-api-server-check |
Menerima Boolean. Jika true , menonaktifkan berkomunikasi dengan API
server agar mudah ditemukan. Untuk informasi selengkapnya tentang tanda ini, lihat
Bagian Validasi sisi server. |
--path |
Menerima string. Jalur ke direktori utama Config Sync
yang sesungguhnya. Defaultnya adalah ". " |
--source-format |
Menerima hierarchy atau unstructured . Jika
hierarchy atau tidak disetel, memvalidasi sumber kebenaran sebagai
sumber kebenaran hierarkis. Jika
unstructured , memvalidasi sumber kebenaran sebagai
sumber tepercaya tidak terstruktur.
Tanda ini diperlukan jika Anda menggunakan sumber kebenaran yang tidak terstruktur. |
--keep-output |
Menerima Boolean. Jika true , output yang dirender akan disimpan ke
lokasi yang dapat Anda tentukan dengan flag --output . |
--output |
Menerima string. Jalur ke output yang dirender. Default-nya adalah
Direktori compiled . Jika --keep-output disetel ke
false , tanda ini diabaikan. |
--format |
Menerima yaml atau json . Format
{i>output<i} tersebut. Nilai defaultnya adalah yaml . |
Validasi sisi server
Jika perintah nomos vet
tidak dapat menentukan apakah jenis diberi namespace,
Alat nomos
terhubung ke Server API. Karena alat nomos
secara default
memahami jenis Kubernetes inti dan CRD Config Sync, yang hanya mencoba untuk
hubungkan ke Server API jika ada CR yang tidak sesuai dengan yang dideklarasikan
CRD. Dalam hal ini, jika Server API tidak menerapkan CRD, perintah nomos
vet
akan menampilkan error KNV1021. Kepada
nonaktifkan pemeriksaan ini dan menyembunyikan error dari CRD yang hilang,
--no-api-server-check
.
Menyimpan metadata server API ke cache
Daripada menghentikan pemeriksaan server API, Anda dapat meng-cache data di API
server untuk perintah nomos vet
. Untuk menyimpan api-resources
ke dalam cache, selesaikan langkah-langkah berikut
langkah:
- Hubungkan ke cluster yang memiliki semua CRD yang Anda perlukan untuk sumber kebenaran Anda. Cluster tidak perlu mengaktifkan Config Sync.
- Buka policyDir dari sumber kebenaran Anda. Ini adalah direktori yang sama dengan yang ditentukan di resource ConfigManagement atau RootSync.
- Jalankan perintah berikut:
kubectl api-resources > api-resources.txt
Perintah ini akan membuat file bernama api-resources.txt yang berisi output dari kubectl api-resources.
Mulai sekarang, operasi nomos vet
dalam sumber kebenaran mengetahui jenis tersebut
definisi. Jika file api-resources.txt
dihapus atau diganti namanya, nomos vet
tidak dapat menemukan file. nomos vet
akan tetap mencoba terhubung ke cluster
jika menemukan manifes untuk jenis yang tidak dideklarasikan dalam api-resources.txt
(kecuali jika --no-api-server-check
diteruskan).
File api-resources.txt
hanya memengaruhi cara kerja alat nomos
. Tidak
mengubah perilaku Config Sync dengan cara apa pun.
Tidak apa-apa untuk memiliki entri tambahan di
file api-resources.txt yang untuk
jenis yang tidak ada dalam sumber kebenaran
yang sedang divalidasi. nomos vet
mengimpor
definisi, tetapi tidak melakukan apa pun.
Mengupdate api-resources.txt
Setelah memastikan semua CRD yang Anda inginkan ada di cluster, jalankan perintah berikut berikut:
kubectl api-resources > api-resources.txt
Secara otomatis memeriksa kesalahan {i>syntax<i} saat melakukan
Jika Anda meng-commit file dengan error JSON atau YAML, Config Sync tidak menerapkan perubahan tersebut. Namun, Anda dapat mencegah jenis kesalahan ini masuk ke sumber tepercaya menggunakan sisi klien atau hook sisi server.
Menggunakan nomos vet
dalam hook pra-commit
Anda dapat mengonfigurasi hook pra-commit yang menjalankan perintah nomos vet
untuk memeriksa
untuk error sintaksis saat Anda melakukan perubahan ke clone Git lokal repo Anda.
Jika hook pra-commit keluar dengan status bukan nol, operasi git commit
gagal.
Untuk menjalankan perintah nomos vet
sebagai hook pra-commit, edit
File .git/hooks/pre-commit
di sumber tepercaya Anda (perhatikan bahwa .git
dimulai dengan .
tertentu). Anda mungkin perlu membuat file secara manual. Menambahkan nomos vet
perintah ke baris baru dalam skrip. Argumen --path
bersifat opsional.
nomos vet --path=/path/to/repo
Pastikan file pre-commit
dapat dieksekusi:
chmod +x .git/hooks/pre-commit
Sekarang, saat Anda menjalankan perintah git commit
di clone sumber tepercaya Anda,
nomos vet
berjalan secara otomatis.
Konten direktori .git/
tidak dilacak oleh
kebenaran itu sendiri, dan tidak dapat berkomitmen pada sumber kebenaran
lokasi HTTP/HTTPS. Anda dapat membuat direktori di sumber kebenaran
untuk hook Git, dan orang
yang menggunakan sumber tepercaya dapat menyalin {i>hook<i} ke tempat yang sesuai di
dan membuat clone lokal Anda.
Menggunakan nomos vet
di hook sisi server
Git menyediakan mekanisme untuk menjalankan pemeriksaan di server, bukan
selama operasi git push
. Jika pemeriksaan gagal, git push
juga
gagal. Hook sisi server ini tidak dapat diabaikan oleh klien. Metode untuk
mengonfigurasi hook sisi server tergantung
pada cara server Git Anda dihosting. Lihat satu
tautan berikut untuk informasi lebih lanjut, atau periksa dokumentasi untuk
Layanan hosting Git.
Lihat semua konfigurasi di sumber kebenaran
Anda dapat menggunakan perintah nomos hydrate
untuk melihat gabungan konten
tepercaya pada setiap cluster yang terdaftar.
Jika Anda menjalankan nomos hydrate
tanpa opsi, tindakan ini akan membuat direktori compiled/
pada direktori kerja saat ini. Dalam direktori itu, suatu sub direktori adalah
yang dibuat untuk setiap cluster yang terdaftar, dengan konfigurasi yang telah diselesaikan sepenuhnya
Operator akan diterapkan ke cluster.
Perintah ini juga dapat mengonversi sumber kebenaran hierarkis
ke satu atau beberapa sumber kebenaran tidak terstruktur,
menggunakan konten dalam direktori compiled/
.
tanda nomos hydrate
Untuk menyesuaikan perintah nomos hydrate
, tambahkan tanda berikut:
Tanda | Deskripsi |
---|---|
--clusters |
Menerima daftar nama cluster yang dipisahkan koma. Gunakan tanda ini untuk membatasi
output ke satu cluster atau daftar cluster. Default-nya adalah semua
klaster. Gunakan "" jika tidak ada cluster. |
--flat |
Jika diaktifkan, cetak semua output ke satu file. Gunakan penanda ini
jika Anda ingin
untuk mengemulasi perilaku nomos view . |
-h atau --help |
Bantuan untuk perintah nomos hydrate . |
--format |
Menerima yaml atau json . Format
{i>output<i} tersebut. Nilai defaultnya adalah yaml . |
--no-api-server-check |
Menerima Boolean. Jika true , menonaktifkan berkomunikasi dengan API
server agar mudah ditemukan. Untuk informasi selengkapnya tentang tanda ini, lihat
Bagian Validasi sisi server. |
--output |
Menerima string. Lokasi untuk menulis konfigurasi terhidrasi. Tujuan
defaultnya adalah direktori compiled .
Jika --flat tidak diaktifkan, setiap manifes resource akan ditulis sebagai
file terpisah.
Jika --flat diaktifkan, operasi tulis ke, akan menulis satu file
yang menyimpan semua manifes resource.
|
--path |
Menerima string. Jalur ke direktori utama Config Sync
yang sesungguhnya. Defaultnya adalah ". " |
--source-format |
Menerima hierarchy atau unstructured . Jika
hierarchy atau tidak disetel, memvalidasi sumber kebenaran sebagai
sumber kebenaran hierarkis. Jika
unstructured , memvalidasi sumber kebenaran sebagai
sumber tepercaya tidak terstruktur.
Tanda ini diperlukan jika Anda menggunakan sumber kebenaran yang tidak terstruktur. |
Buat laporan bug
Jika mengalami masalah dengan Config Sync yang memerlukan bantuan dari
Dukungan Google Cloud, Anda dapat memberi mereka informasi berharga
informasi proses debug dengan menggunakan perintah nomos bugreport
. Anda dapat menggunakan
perintah untuk satu sumber tepercaya
dan beberapa repositori.
nomos bugreport
Perintah ini menghasilkan file ZIP dengan stempel waktu yang berisi informasi tentang Kubernetes
cluster yang ditetapkan dalam konteks kubectl
. File ini juga berisi log dari
Konfigurasi Pod Sinkronisasi. Salinan ini tidak berisi informasi dari sumber daya yang disinkronkan
dengan Config Sync. Untuk informasi lebih lanjut
tentang isi file zip,
lihat referensi laporan bug nomo.
Batasan
Perintah nomos bugreport
gagal dan menghasilkan file ZIP yang tidak lengkap jika
file apa pun melebihi 1GiB. Hal ini sering terjadi karena file log yang besar.
Tabel berikut berisi penyebab paling umum dari file log besar dan bagaimana Anda dapat menyelesaikannya:
Penyebab | Tindakan yang disarankan |
---|---|
Meningkatkan panjang log | Mengurangi panjang log dengan penggantian level log |
Objek yang sangat besar | Batalkan pengelolaan objek besar atau kurangi ukurannya |
Banyak objek | Membagi repositori Anda menjadi beberapa repositori |
Perkelahian pengontrol | Selesaikan pertarungan |
Bermigrasi dari objek ConfigManagement ke objek RootSync
Anda dapat menjalankan perintah nomos migrate
untuk bermigrasi dari ConfigManagement
ke objek RootSync untuk mengaktifkan API RootSync
dan RepoSync
.
nomos migrate
mendukung uji coba untuk melihat pratinjau proses migrasi.
nomos migrate
mengubah objek ConfigManagement di cluster secara langsung.
Agar perubahan yang dibuat melalui nomos migrate
tidak dikembalikan, pastikan
Objek ConfigManagement tidak diperiksa di sumber tepercaya Anda.
nomos migrate --contexts=KUBECONFIG_CONTEXTS --dry-run
Jika hasil uji coba terlihat bagus, Anda dapat memigrasikan objek ConfigManagement
menggunakan nomos migrate
:
nomos migrate --contexts=KUBECONFIG_CONTEXTS
Outputnya mirip dengan hal berikut ini:
--------------------
Enabling the multi-repo mode on cluster "my_managed_cluster-1" ...
- A RootSync object is generated and saved in "/tmp/nomos-migrate/my_managed_cluster-1/root-sync.yaml".
- The original ConfigManagement object is saved in "/tmp/nomos-migrate/my_managed_cluster-1/cm-original.yaml".
- The ConfigManagement object is updated and saved in "/tmp/nomos-migrate/my_managed_cluster-1/cm-multi.yaml".
- Resources for the multi-repo mode have been saved in a temp folder. If the migration process is terminated, it can be recovered manually by running the following commands:
kubectl apply -f /tmp/nomos-migrate/my_managed_cluster-1/cm-multi.yaml && \
kubectl wait --for condition=established crd rootsyncs.configsync.gke.io && \
kubectl apply -f /tmp/nomos-migrate/my_managed_cluster-1/root-sync.yaml.
- Updating the ConfigManagement object ....
- Waiting for the RootSync CRD to be established ....
- The RootSync CRD has been established.
- Creating the RootSync object ....
- Waiting for the reconciler-manager Pod to be ready ....
- Haven't detected running Pods with the label selector "app=reconciler-manager".
- Haven't detected running Pods with the label selector "app=reconciler-manager".
- Haven't detected running Pods with the label selector "app=reconciler-manager".
- The reconciler-manager Pod is running.
- Waiting for the root-reconciler Pod to be ready ....
- Haven't detected running Pods with the label selector "configsync.gke.io/reconciler=root-reconciler".
- Haven't detected running Pods with the label selector "configsync.gke.io/reconciler=root-reconciler".
- Haven't detected running Pods with the label selector "configsync.gke.io/reconciler=root-reconciler".
- The root-reconciler Pod is running.
- The migration process is done. Please check the sync status with `nomos status`.
Finished migration on all the contexts. Please check the sync status with `nomos status`.
Roll back ke konfigurasi sebelumnya
Jika Anda perlu melakukan roll back setelah melakukan migrasi dengan nomos migrate
,
menerapkan objek ConfigManagement asli. nomos migrate
menyimpan objek ConfigManagement asli ke file dan mencetak namanya ke terminal.
Nama filenya adalah /tmp/nomos-migrate/CURRENT_CONTEXT/cm-original.yaml
.
Untuk melakukan roll back ke konfigurasi sebelumnya, salin jalur file untuk
cm-original.yaml
, lalu terapkan file tersebut ke cluster Anda:
kubectl apply -f CM_ORIGINAL_PATH
tanda migrasi nomos
Untuk menyesuaikan perintah nomos migrate
, tambahkan tanda berikut:
Tanda | Deskripsi |
---|---|
--connect-timeout |
Menerima durasi. Durasi waktu tunggu untuk terhubung ke setiap cluster.
Nilai defaultnya adalah 3s . |
--contexts |
Menerima daftar konteks yang dipisahkan koma untuk digunakan dalam multi-cluster
lingkungan fleksibel App Engine. Setelan defaultnya adalah konteks saat ini. Gunakan "all" untuk
semua konteks. |
--dry-run |
Menerima boolean. Jika true , hanya mencetak migrasi
{i>output<i} tersebut. |
-h atau --help |
Bantuan untuk perintah nomos migrate . |
--wait-timeout |
Menerima durasi. Durasi waktu tunggu untuk menunggu Kubernetes
resource kondisi tertentu menjadi true. Nilai defaultnya adalah 10m . |
Melakukan inisialisasi sumber kebenaran hierarkis
Anda dapat mengatur sumber kebenaran secara acak jika Anda menggunakan
sumber tepercaya tidak terstruktur.
Jika Anda menggunakan sumber kebenaran hierarkis,
Anda harus menjalankan perintah nomos init
untuk menginisialisasi direktori hierarkis:
nomos init
Ini menciptakan struktur direktori dasar dari
sumber kebenaran hierarkis, termasuk
Direktori system/
, cluster/
, dan namespaces/
.
flag init nomos
Untuk menyesuaikan nomos init
, tambahkan tanda berikut:
Tanda | Deskripsi |
---|---|
--force |
Menulis ke direktori meskipun tidak kosong, menimpa file yang bentrok |
-h atau --help |
Bantuan untuk perintah nomos init . |
--path |
Menerima string. Direktori {i>root<i} yang akan digunakan untuk
yang sesungguhnya. Nilai defaultnya adalah "." |
Pemecahan masalah
Di Linux, Anda mungkin melihat error berikut saat menjalankan perintah nomos
:
failed to create client configs: while getting config path: failed to get current user: user: Current not implemented on linux/amd64
Untuk memperbaiki masalah ini, buat variabel lingkungan USER
:
export USER=$(whoami)