Memantau objek RootSync dan RepoSync

Halaman ini menunjukkan berbagai cara untuk memantau Objek RootSync dan RepoSync. Misalnya, Anda mungkin ingin memverifikasi apakah commit terbaru Anda dalam sumber kebenaran diterapkan ke cluster dan berhasil direkonsiliasi.

Lihat commit yang disinkronkan

Anda dapat memeriksa commit mana yang disinkronkan ke cluster dengan memeriksa Kolom .status.sync di objek RootSync atau RepoSync.

  • Untuk melihat commit yang disinkronkan untuk objek RootSync, jalankan perintah berikut:

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
    

    Ganti ROOT_SYNC_NAME dengan nama RootSync.

  • Untuk melihat commit yang disinkronkan untuk objek RepoSync, jalankan perintah berikut:

    kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
    

    Ganti kode berikut:

    • REPO_SYNC_NAME: nama objek RepoSync.
    • REPO_SYNC_NAMESPACE: namespace tempat Anda membuat ke repositori namespace.

Output untuk perintah ini menunjukkan nilai commit sumber dan commit yang disinkronkan. Misalnya, jika Anda menjalankan perintah untuk RepoSync, Anda akan lihat output yang mirip dengan berikut ini:

NAME        RENDERINGCOMMIT                            SOURCECOMMIT                               SYNCCOMMIT
root-sync   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72

Nilai dalam kolom RENDERINGCOMMIT adalah commit yang diproses oleh hydration-controller. Jika tidak ada rendering yang diperlukan, nilainya sama dengan kolom SOURCECOMMIT. Nilai di kolom SOURCECOMMIT adalah commit dari sumber tepercaya yang harus disinkronkan ke cluster. Nilai dalam atribut Kolom SYNCCOMMIT adalah commit yang di-deploy ke cluster. Jika kedua nilai di kolom SOURCECOMMIT dan SYNCCOMMIT sama, commit yang diharapkan telah di-deploy ke cluster.

Mengonfirmasi resource di commit direkonsiliasi

Karena ResourceGroups merekam status rekonsiliasi grup terkelola resource yang dideklarasikan dalam sumber tepercaya, Anda dapat memeriksanya untuk mengonfirmasi apakah resource dalam commit akan direkonsiliasi.

Objek ResourceGroup memiliki namespace dan nama yang sama sebagai objek RootSync atau RepoSync. Misalnya, untuk objek RootSync dengan nama root-sync di namespace config-management-system, objek ResourceGroup yang sesuai juga root-sync di namespace config-management-system.

  • Untuk mendapatkan objek ResourceGroup untuk objek RootSync:

    kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
    
  • Untuk mendapatkan objek ResourceGroup untuk objek RepoSync:

    kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
    

    Ganti kode berikut:

    • ROOT_SYNC_NAME: nama objek ResourceGroup yang ingin Anda cari.
    • REPO_SYNC_NAME: nama objek ResourceGroup yang ingin Anda cari.
    • REPO_SYNC_NAMESPACE: nama ResourceGroup yang ingin Anda cari.

Untuk mengonfirmasi bahwa resource di commit telah direkonsiliasi, cari berikut ini dalam output:

  • .status.observedGeneration sama dengan nilai kolom .metadata.generation di objek ResourceGroup.
  • Kondisi Stalled dan kondisi Reconciling keduanya memiliki status sebagai "False".
  • Setiap item di kolom .status.resourceStatuses memiliki status sebagai Current.

Lihat error

Objek RootSync dan RepoSync menggunakan kolom status untuk melacak error yang ditemukan saat menyinkronkan konfigurasi dari sumber kebenaran ke cluster.

  • Untuk melihat status objek RootSync, jalankan perintah berikut:

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
    

    Ganti ROOT_SYNC_NAME dengan nama RootSync.

  • Untuk melihat status objek RepoSync, jalankan perintah berikut:

    kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
    

    Ganti kode berikut:

    • REPO_SYNC_NAME: nama objek RepoSync.
    • NAMESPACE: namespace tempat Anda membuat ke repositori namespace.

Untuk mempelajari subkolom lebih lanjut pada kolom status, lihat Status objek.

Melihat detail objek

Untuk melihat detail objek RootSync dan RepoSync serta untuk menemukan lebih banyak informasi tentang potensi error, gunakan perintah kubectl describe.

Output dari perintah ini mencakup peristiwa, yang bisa sangat membantu untuk masalah proses debug, seperti container menghadapi batasan memori (OOMKilled), kegagalan penjadwalan, atau error pengambilan gambar.

Agar format lebih mudah dibaca, konversi output ke YAML dengan menambahkan -o yaml ke perintah berikut. Format ini sangat membantu ketika Anda perlu memeriksa parameter, anotasi, atau spesifikasi resource tertentu.

  • Untuk melihat detail objek RootSync, jalankan perintah berikut:

    kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
    

    Ganti ROOT_SYNC_NAME dengan nama Objek RootSync.

  • Untuk melihat detail objek RepoSync, jalankan perintah berikut:

    kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
    

    Ganti kode berikut:

    • REPO_SYNC_NAME: nama objek RepoSync.
    • NAMESPACE: namespace tempat Anda membuat ke repositori namespace.

Melihat apakah resource sudah siap

Untuk mengetahui apakah resource yang disinkronkan ke cluster sudah siap, lihat status rekonsiliasi. Misalnya, melihat status rekonsiliasi dapat menampilkan jika Deployment yang disinkronkan siap menyalurkan traffic.

Untuk sumber tepercaya yang disinkronkan ke cluster, status rekonsiliasi semua resource digabungkan dalam resource yang disebut ResourceGroup. Untuk setiap RootSync atau RepoSync, ResourceGroup dibuat untuk menangkap kumpulan resource yang diterapkan ke cluster dan menggabungkan statusnya.

  • Untuk melihat status rekonsiliasi objek RootSync, jalankan perintah berikut berikut:

    kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
    

    Ganti ROOT_SYNC_NAME dengan nama Objek RootSync.

  • Untuk melihat status rekonsiliasi objek RepoSync, jalankan perintah berikut berikut:

    kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
    

    Ganti kode berikut:

    • REPO_SYNC_NAME: nama objek RepoSync.
    • NAMESPACE: namespace tempat Anda membuat ke repositori namespace.

Pada output, Anda akan melihat semua status resource ResourceGroup. Sebagai misalnya, output berikut menunjukkan bahwa Deployment bernama nginx-deployment sudah siap:

resourceStatuses:
- group: apps
  kind: Deployment
  name: nginx-deployment
  namespace: default
  status: Current

Lihat log

Untuk setiap objek RootSync dan RepoSync yang Anda buat, Config Sync akan membuat rekonsiliasi Deployment untuk melakukan sinkronisasi. Bagian ini menjelaskan cara melihat log untuk rekonsiliasi ini. Melihat log dapat membantu saat men-{i>debug<i} masalah dengan memberikan informasi tambahan tentang kemajuan, peringatan, dan kesalahan di luar apa yang tersedia dalam status objek RootSync dan RepoSync.

  • Guna melihat log untuk rekonsiliasi RootSync atau RepoSync, jalankan perintah berikut berikut:

    kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
    

    Ganti kode berikut:

    • RECONCILER_NAME: nama rekonsiliasi Objek RootSync atau RepoSync.

      • Untuk RootSync, nama rekonsiliasinya adalah root-reconciler-ROOT_SYNC_NAME atau root-reconciler jika nama RootSync adalah root-sync.

      • Untuk RepoSync, nama rekonsiliasinya adalah ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH atau ns-reconciler-NAMESPACE jika nama RepoSync adalah repo-sync, dengan NAMESPACE adalah namespace tempat Anda membuat objek RepoSync.

    • CONTAINER_NAME: nama penampung harus satu dari nilai berikut: reconciler, git-sync, hydration-controller, oci-sync, atau helm-sync. Untuk mempelajari lebih lanjut tentang container ini, lihat Penampung rekonsiliasi.

Mengonfigurasi level log rekonsiliasi RootSync atau RepoSync

Untuk menyertakan informasi lainnya dalam log penampung, konfigurasi log panjang. Secara default, sebagian besar penampung memiliki nilai default 0 untuk log panjang. Pengecualian untuk hal ini adalah git-sync dan otel-agent container yang memiliki nilai default 5.

Saat mengubah verbositas log, perlu diingat bahwa meningkatkan hasil verbositas log biaya logging yang lebih tinggi karena volume data yang tercatat lebih besar.

Untuk mengubah panjang log, gunakan kolom .spec.override.logLevels seperti yang ditunjukkan di contoh berikut:

apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
  name: root-sync
  namespace: config-management-system
spec:
  override:
    logLevels:
    - containerName: "reconciler"
      logLevel: 0
    - containerName: "git-sync"
       logLevel: 10

Nilai di kolom containerName harus berupa salah satu dari yang berikut: reconciler, git-sync, hydration-controller, oci-sync, atau helm-sync.

Untuk memastikan verbositas log dikonfigurasi, jalankan perintah berikut:

kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml

Verbositas log dapat ditemukan sebagai salah satu args dalam spec.template.spec.containers[] dan terlihat seperti -v=0, dengan 0 adalah nilai saat ini panjang log. Dalam contoh ini, nilai verbositas log 0 hanya akan dicatat peristiwa penting.