Mengonfigurasi Config Sync dengan perintah kubectl

Halaman ini menjelaskan cara mengonfigurasi Config Sync menggunakan perintah kubectl setelah Anda menginstal Config Sync menggunakan Konsol Google Cloud atau Google Cloud CLI.

Meskipun Anda dapat membuat banyak perubahan konfigurasi menggunakan konsol atau CLI, perlu menggunakan perintah kubectl untuk ganti beberapa default Config Sync untuk mengontrol sertifikat SSL verifikasi, dan untuk menggunakan sebuah otoritas sertifikat.

Membuat dan mengedit file konfigurasi RootSync

Untuk mengonfigurasi Config Sync menggunakan perintah kubectl, edit Objek RootSync dengan membuat {i>file<i} YAML.

Saat Anda menginstal Config Sync menggunakan Konsol Google Cloud atau Google Cloud CLI, Config Sync secara otomatis membuat objek RootSync yang bernama root-sync. Objek ini berisi informasi konfigurasi terbaru untuk Sinkronisasi Konfigurasi. Setiap kali Anda membuat perubahan di Konsol Google Cloud atau Google Cloud CLI, root-sync telah diupdate.

Pelajari kolom yang dapat diedit menggunakan kubectl

Anda dapat membuat perubahan lanjutan pada root-sync menggunakan perintah kubectl untuk kolom yang tidak didukung di Konsol Google Cloud atau Google Cloud CLI. Jika Anda ingin membuat lalu mengupdate objek RootSync atau RepoSync secara langsung menggunakan kubectl perintah, lihat Kolom RootSync dan RepoSync.

Sebelum membuat perubahan apa pun pada file YAML yang Anda buat di , biasakan diri Anda dengan tabel berikut. Tabel ini mencantumkan {i>field<i} yang dapat Anda edit dan tambahkan. Jika Anda mengedit bidang yang tidak tercantum dalam tabel ini, Config Sync secara otomatis mengembalikan perubahan ke nilai yang Anda tetapkan saat Config Sync yang terakhir kali dikonfigurasi di Konsol Google Cloud atau Google Cloud CLI.

Kunci Deskripsi
spec.git.noSSLVerify noSSLVerify menentukan apakah akan mengaktifkan atau menonaktifkan sertifikat SSL verifikasi. Default: false.
Jika noSSLVerify disetel ke true, Git akan diberi tahu untuk melewati sertifikat SSL verifikasi.
spec.git.caCertSecretRef.name Nama Rahasia yang berisi certificate authority (CA) CA {i>root<i}. Jika kolom ini disediakan, server Git harus menggunakan yang diterbitkan oleh CA ini. Sertifikat CA harus disimpan di Rahasia di bawah kunci bernama `cert`.
spec.override.resources Daftar permintaan resource container dan penggantian batas. Opsional.
Setiap item dalam daftar berisi tiga kolom:
  • containerName: kolom ini dapat berupa git-sync, oci-sync, hydration-controller, atau reconciler.
  • cpuRequest (opsional)
  • cpuLimit (opsional)
  • memoryRequest (opsional)
  • memoryLimit (opsional)

Ketika nilai pengganti untuk permintaan atau batas resource tidak diberikan, nilai resource default untuk permintaan atau batas akan digunakan.
spec.override.gitSyncDepth gitSyncDepth memungkinkan Anda mengganti jumlah commit Git yang akan diambil.
Tidak boleh kurang dari 0.
Config Sync melakukan clone penuh jika kolom ini adalah 0, dan clone shallow jika kolom ini lebih besar dari 0.
Jika kolom ini tidak disediakan, Config Sync akan mengonfigurasinya secara otomatis.
spec.override.statusMode statusMode memungkinkan Anda mengaktifkan atau menonaktifkan pengambilan resource status level.
Defaultnya adalah enabled.
Untuk menonaktifkan pengambilan status tingkat resource, tetapkan kolom ini ke disabled.
spec.override.reconcileTimeout reconcileTimeout memungkinkan Anda mengganti batas durasi untuk menunggu resource terapkan grup berdamai sebelum menyerah. Semua resource dalam commit dapat berada dalam beberapa grup terapkan berdasarkan dependencies.
Waktu tunggu default adalah 5m.
Gunakan string untuk menentukan nilai kolom ini, misalnya 30s, 5m.
spec.override.enableShellInRendering enableShellInRendering menentukan apakah akan mengaktifkan atau menonaktifkan akses {i>shell <i}dalam proses rendering. Basis jarak jauh Kustomize memerlukan akses shell. Menetapkan kolom ini ke true akan mengaktifkan akses shell dalam proses rendering dan mendukung pengambilan basis jarak jauh dari repositori publik.
Defaultnya adalah false.

Membuat file

Untuk membuat dan mengedit file konfigurasi untuk root-sync, selesaikan langkah-langkah berikut:

  1. Untuk memastikan bahwa Anda mengambil informasi konfigurasi untuk cluster yang benar, konfigurasikan akses command line kubectl:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --zone ZONE \
        --project PROJECT_ID
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster yang memiliki konfigurasi Config Sync yang ingin Anda ubah
    • ZONE: zona tempat Anda membuat cluster
    • PROJECT_ID: project ID Anda
  2. Salin informasi konfigurasi dari objek RootSync yang Config Sync dibuat ke dalam file YAML:

    kubectl get rootsync root-sync -n config-management-system -o yaml >
    FILE_NAME.yaml
    

    Ganti FILE_NAME dengan nama untuk konfigurasi Anda .

  3. Buka file YAML yang Anda buat dan buat konfigurasi yang diperlukan perubahan. Misalnya, untuk mengganti batas memori git-sync , tambahkan kolom berikut ini dalam huruf tebal:

    apiVersion: v1
    items:
    - apiVersion: configsync.gke.io/v1beta1
    kind: RootSync
    metadata:
    annotations:
      configmanagement.gke.io/managed-by-hub: "true"
      configmanagement.gke.io/update-time: "1644945169"
    creationTimestamp: "2022-02-15T17:12:52Z"
    generation: 1
    name: root-sync
    namespace: config-management-system
    resourceVersion: "211980457"
    uid: aa30a94b-2825-4590-ad30-5af848403502
    spec:
    git:
      auth: none
      branch: main
      dir: /quickstart/config-sync
      period: 15s
      repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
      revision: HEAD
      secretRef: {}
    override:
      resources:
      - containerName: "git-sync"
        memoryLimit: "400Mi"
    sourceFormat: unstructured
    # Remainder of RootSync omitted
    
  4. Terapkan perubahan pada file YAML:

    kubectl apply -f FILE_NAME.yaml
    
  5. Untuk memverifikasi bahwa Config Sync telah menerapkan perubahan Anda, lihat RootSync :

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Untuk memverifikasi bahwa perubahan Anda tidak menyebabkan error, gunakan Perintah nomos status:

    nomos status
    

Konfigurasi Certificate Authority

Untuk server yang dikonfigurasi dengan sertifikat dari Certificate Authority (CA) yang belum dipercaya, Config Sync dapat dikonfigurasi untuk menggunakan CA sertifikat untuk memverifikasi koneksi HTTPS ke server. Hal ini didukung untuk server Git, Helm, atau OCI. Sertifikat CA harus menyertakan sertifikat SSL lengkap (Root/Menengah/Leaf). Jika server Anda telah menggunakan CA tepercaya atau Anda tidak terhubung melalui HTTPS, Anda dapat melewati langkah ini dan membiarkan caCertSecretRef tidak disetel.

RootSync

  1. Ambil sertifikat CA yang digunakan untuk menerbitkan sertifikat bagi Git dan menyimpannya ke sebuah file.

  2. Untuk objek RootSync, Secret harus dibuat di namespace config-management-system. Contoh:

    kubectl create secret generic ROOT_CA_CERT_SECRET_NAME 
    --namespace=config-management-system
    --from-file=cert=/path/to/CA_CERT_FILE

  3. Saat Anda mengonfigurasi objek RootSync, tetapkan nilai kolom caCertSecretRef.name di RootSync ke ROOT_CA_CERT_SECRET_NAME.

RepoSync

  1. Ambil sertifikat CA yang digunakan untuk menerbitkan sertifikat bagi Git dan menyimpannya ke sebuah file.

  2. Untuk objek RepoSync, Secret harus dibuat dalam namespace yang sama dengan RepoSync. Contoh:

    kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME 
    --namespace=REPO_SYNC_NAMESPACE
    --from-file=cert=/path/to/CA_CERT_FILE

  3. Saat Anda mengonfigurasi RepoSync, tetapkan nilai kolom caCertSecretRef.name dalam objek RepoSync ke NAMESPACE_CA_CERT_SECRET_NAME.

Menghapus objek RootSync

Untuk menghapus root-sync, jalankan perintah berikut:

kubectl delete -f FILE_NAME

Ganti FILE_NAME dengan nama RootSync Anda file konfigurasi Anda. Contoh, root-sync.yaml.

Menghapus objek RootSync atau RepoSync tidak membersihkan Config Sync anotasi dan label. Untuk membersihkan resource terkelola, sinkronkan dari resource kosong direktori Git.

Langkah selanjutnya