Menyesuaikan penginstalan Config Sync

Dengan Config Sync, Anda dapat mengelola resource Kubernetes dengan menyinkronkan konfigurasi dari sumber tepercaya pusat, seperti repositori Git, image OCI, atau chart Helm. Jika petunjuk penginstalan default tidak sesuai dengan kebutuhan Anda, Anda mungkin perlu menyesuaikan penginstalan Config Sync.

Halaman ini menunjukkan cara melakukan penginstalan dan konfigurasi lanjutan Config Sync. Proses penginstalan mencakup hal berikut:

  • Menginstal Config Sync di setiap cluster menggunakan konsolGoogle Cloud , Google Cloud CLI, atau Terraform.
  • Mengonfigurasi repositori root, termasuk jenis sumber, format, dan autentikasi.
  • Memverifikasi keberhasilan penginstalan dan konfigurasi Config Sync.

Batasan

Config Sync tidak mendukung konfigurasi helm sebagai jenis sumber menggunakan konsol Google Cloud atau Google Cloud CLI. Anda dapat mengonfigurasi objek RootSync atau RepoSync untuk disinkronkan dari repositori Helm menggunakan Kubernetes API, atau mendeklarasikannya di sumber tepercaya lain. Lihat Konfigurasi untuk repositori Helm untuk mengetahui informasi selengkapnya.

Sebelum memulai

Sebelum menginstal Config Sync, siapkan sumber tepercaya dan cluster yang sesuai.

Memberi Config Sync akses ke sumber tepercaya Anda

Untuk menyinkronkan konfigurasi dari sumber tepercaya ke cluster Anda, Config Sync memerlukan akses hanya baca ke repositori Anda. Untuk memberi otorisasi Config Sync agar dapat membaca konfigurasi Anda, selesaikan langkah-langkah berikut:

Meninjau persyaratan cluster

Sebelum membuat cluster, tinjau persyaratan cluster.

Menginstal Config Sync

Saat Anda menginstal Config Sync menggunakan konsol Google Cloud atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync bernama root-sync. Anda dapat menggunakan perintah kubectl untuk mengubah root-sync dan menambahkan konfigurasi Config Sync tambahan. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Config Sync dengan perintah kubectl.

Konsol

Menginstal Config Sync

Untuk menginstal Config Sync, semua cluster harus didaftarkan ke fleet. Saat Anda menginstal Config Sync di konsol Google Cloud , memilih setiap cluster akan otomatis mendaftarkan cluster tersebut ke fleet Anda.

  1. Di konsol Google Cloud , buka halaman Config di bagian Features.

    Buka Config

  2. Klik Instal Config Sync.
  3. Pilih versi Config Sync yang ingin Anda gunakan.
  4. Di bagian Opsi penginstalan, pilih salah satu opsi berikut:
    • Menginstal Config Sync di seluruh armada (direkomendasikan): Config Sync diinstal di semua cluster dalam armada.
    • Menginstal Config Sync di setiap cluster: Config Sync diinstal di cluster yang Anda pilih. Cluster yang dipilih akan otomatis didaftarkan ke fleet Anda.
  5. Jika Anda menginstal Config Sync di setiap cluster, di tabel Available clusters, pilih cluster tempat Anda ingin menginstal Config Sync.
  6. Klik Install Config Sync. Di tab Setelan, setelah beberapa menit, Anda akan melihat Diaktifkan di kolom Status untuk cluster di armada Anda.

Men-deploy paket

Setelah mendaftarkan cluster ke armada dan menginstal Config Sync, Anda dapat mengonfigurasi Config Sync untuk men-deploy paket ke cluster dari sumber tepercaya. Anda dapat men-deploy paket yang sama ke beberapa cluster atau men-deploy paket yang berbeda ke cluster yang berbeda. Anda dapat mengedit paket setelah men-deploy-nya, kecuali beberapa setelan seperti nama paket dan jenis sinkronisasi. Untuk mengetahui informasi selengkapnya, lihat Mengelola paket.

Untuk men-deploy paket, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka dasbor Config Sync.

    Buka dasbor Config Sync

  2. Klik Deploy Package.

  3. Pada tabel Select clusters for package deployment, pilih cluster yang ingin Anda gunakan untuk men-deploy paket, lalu klik Continue.

  4. Pilih Package hosted on Git atau Package hosted on OCI sebagai jenis sumber Anda, lalu klik Continue.

  5. Di bagian Package details, masukkan Package name, yang mengidentifikasi objek RootSync atau RepoSync.

  6. Di kolom Sync type, pilih Cluster scoped sync atau Namespace scoped sync sebagai jenis sinkronisasi.

    Sinkronisasi cakupan cluster membuat objek RootSync dan sinkronisasi cakupan Namespace membuat objek RepoSync. Untuk mengetahui informasi selengkapnya tentang objek ini, lihat Arsitektur Config Sync.

  7. Di bagian Sumber, selesaikan langkah-langkah berikut:

    • Untuk sumber yang dihosting di repositori Git, masukkan kolom berikut:

      1. Masukkan URL repositori Git yang Anda gunakan sebagai sumber tepercaya sebagai URL Repositori.
      2. Opsional: Perbarui kolom Revisi untuk melakukan checkout jika Anda tidak menggunakan HEAD default.
      3. Opsional: Perbarui kolom Path jika Anda tidak ingin menyinkronkan dari repositori root.
      4. Opsional: Perbarui kolom Branch jika Anda tidak menggunakan cabang main default.
    • Untuk sumber yang dihosting dalam image OCI, masukkan kolom berikut:

      1. Masukkan URL gambar OCI yang Anda gunakan sebagai sumber kebenaran sebagai Gambar.
      2. Masukkan jalur direktori yang akan disinkronkan dari, relatif terhadap direktori root, sebagai Direktori.
  8. (Opsional): Luaskan bagian Setelan lanjutan untuk menyelesaikan hal berikut:

    1. Pilih Jenis autentikasi. Config Sync memerlukan akses hanya baca ke sumber tepercaya Anda untuk membaca file konfigurasi di sumber dan menerapkannya ke cluster Anda. Kecuali jika sumber Anda tidak memerlukan autentikasi, seperti repositori publik, pastikan Anda memberikan akses hanya baca ke Config Sync untuk repositori Git, image OCI, atau Helm chart (khusus gcloud CLI). Pilih jenis autentikasi yang sama dengan yang Anda konfigurasi saat menginstal Config Sync:

      • Tidak ada: Tidak menggunakan autentikasi.
      • SSH: Lakukan autentikasi menggunakan pasangan kunci SSH.
      • Cookiefile: Lakukan autentikasi dengan menggunakan cookiefile.
      • Token: Lakukan autentikasi menggunakan token akses atau sandi.
      • Google Cloud Repository: Menggunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories. Pilih opsi ini hanya jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.
      • Workload Identity: Menggunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories.
    2. Masukkan angka dalam detik untuk menetapkan Waktu tunggu sinkronisasi, yang menentukan durasi Config Sync menunggu di antara upaya penarikan dari sumber tepercaya.

    3. Masukkan URL proxy Git untuk proxy HTTPS yang akan digunakan saat berkomunikasi dengan sumber tepercaya.

    4. Pilih Hierarki untuk mengubah Format sumber.

      Nilai default Tidak terstruktur direkomendasikan dalam sebagian besar kasus karena memungkinkan Anda mengatur sumber tepercaya sesuai keinginan.

  9. Klik Deploy Package.

    Anda akan dialihkan ke halaman Packages Config Sync. Setelah beberapa menit, Anda akan melihat Disinkronkan di kolom Status sinkronisasi untuk cluster yang Anda konfigurasi.

gcloud

Sebelum melanjutkan, pastikan Anda telah mendaftarkan cluster Anda ke fleet.

  1. Aktifkan fitur fleet ConfigManagement:

    gcloud beta container fleet config-management enable
    
  2. Siapkan konfigurasi dengan membuat file bernama apply-spec.yaml dan menyalin file YAML berikut ke dalamnya.

    Anda dapat menetapkan semua kolom spec.configSync opsional yang diperlukan saat membuat manifes, dan kemudian menggunakan perintah kubectl untuk konfigurasi. Anda juga hanya dapat menetapkan kolom spec.configSync.enabled sebagai true dan menghilangkan kolom opsional. Anda kemudian dapat menggunakan perintah kubectl untuk membuat objek RootSync tambahan atau RepoSync yang dapat Anda kelola sepenuhnya menggunakan perintah kubectl nanti.

    # apply-spec.yaml
    
         applySpecVersion: 1
         spec:
           configSync:
             enabled: true
             # If you don't have a source of truth yet, omit the
             # following fields. You can configure them later.
             sourceType: SOURCE_TYPE
             sourceFormat: FORMAT
             syncRepo: REPO
             syncRev: REVISION
             secretType: SECRET_TYPE
             gcpServiceAccountEmail: EMAIL
             metricsGcpServiceAccountEmail: METRICS_EMAIL
             policyDir: DIRECTORY
             preventDrift: false
    

    Ganti kode berikut:

    • SOURCE_TYPE: tambahkan git untuk menyinkronkan dari repositori Git, oci untuk menyinkronkan dari image OCI, atau helm untuk menyinkronkan dari Helm chart. Jika tidak ada nilai yang ditentukan, nilai defaultnya adalah git.
    • FORMAT: tambahkan unstructured untuk menggunakan repositori tidak terstruktur atau tambahkan hierarchy untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Kolom ini bersifat opsional dan nilai defaultnya adalah hierarchy. Sebaiknya tambahkan unstructured, karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.
    • REPO: tambahkan URL sumber tepercaya. URL repositori Git dan Helm menggunakan protokol HTTPS atau SSH. Contoh, https://github.com/GoogleCloudPlatform/anthos-config-management-samples. Jika Anda berencana menggunakan SSH sebagai secretType, masukkan URL Anda dengan protokol SSH. Kolom ini wajib diisi dan jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS.

      URL OCI menggunakan format berikut: LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME. Secara default, image diambil dari tag latest, tetapi Anda dapat mengambil image berdasarkan TAG atau DIGEST. Tentukan TAG atau DIGEST di PACKAGE_NAME:

      • Untuk menarik menurut TAG: LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
      • Untuk menarik menurut DIGEST: LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
    • REVISION: revisi Git (tag atau hash) atau nama cabang yang akan disinkronkan. Saat menggunakan hash, hash tersebut harus berupa hash lengkap, bukan bentuk singkat.

    • SECRET_TYPE: salah satu secretTypes berikut:

      git

      • none: Tidak menggunakan autentikasi.
      • ssh: Gunakan pasangan kunci SSH.
      • cookiefile: Gunakan cookiefile.
      • token: Menggunakan token.
      • gcpserviceaccount: Menggunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories atau Secure Source Manager. Jika memilih jenis autentikasi ini, Anda perlu membuat binding kebijakan IAM setelah selesai mengonfigurasi Config Sync. Untuk mengetahui detailnya, lihat tab akun layanan Google di bagian Memberikan akses Config Sync ke Git dengan akun layanan Google.
      • gcenode: Menggunakan akun layanan Google untuk mengakses Cloud Source Repositories. Pilih opsi ini hanya jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.
      • githubapp: Menggunakan Aplikasi GitHub untuk mengautentikasi ke repositori GitHub.

      Untuk mengetahui informasi selengkapnya tentang jenis autentikasi ini, lihat Memberikan akses Config Sync ke Git.

      oci

      • none: Tidak menggunakan autentikasi
      • gcenode: Gunakan akun layanan default Compute Engine untuk mengakses image di Artifact Registry. Pilih opsi ini hanya jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.
      • gcpserviceaccount: Menggunakan akun layanan Google untuk mengakses gambar.

      kemudi

      • token: Menggunakan token.
      • gcenode: Gunakan akun layanan default Compute Engine untuk mengakses image di Artifact Registry. Pilih opsi ini hanya jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.
      • gcpserviceaccount: Menggunakan akun layanan Google untuk mengakses gambar.
      • EMAIL: Jika Anda menambahkan gcpserviceaccount sebagai secretType, tambahkan alamat email akun layanan Google Anda. Contoh, acm@PROJECT_ID.iam.gserviceaccount.com.

      • METRICS_EMAIL: email Google Cloud Akun Layanan (GSA) yang digunakan untuk mengekspor metrik Config Sync ke Cloud Monitoring. GSA harus memiliki peran IAM Monitoring Metric Writer (roles/monitoring.metricWriter). default ServiceAccount Kubernetes di namespace config-management-monitoring harus terikat ke GSA.

      • DIRECTORY: jalur direktori yang akan disinkronkan, relatif terhadap root repositori Git. Semua subdirektori dari direktori yang Anda tentukan disertakan dan disinkronkan ke cluster. Nilai defaultnya adalah direktori root repositori.

    Untuk mengetahui daftar lengkap kolom yang dapat Anda tambahkan ke kolom spec, lihat gcloud fields.

  3. Terapkan file apply-spec.yaml. Jika menggunakan manifes yang ada, Anda harus menerapkan file ke cluster yang ingin dikonfigurasi dengan setelan yang Anda ambil pada perintah sebelumnya:

    gcloud beta container fleet config-management apply \
        --membership=MEMBERSHIP_NAME \
        --config=CONFIG_YAML_PATH \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • MEMBERSHIP_NAME: nama keanggotaan fleet yang Anda pilih saat Anda mendaftarkan cluster. Anda dapat menemukan nama dengan gcloud container fleet memberships list.
    • CONFIG_YAML_PATH: jalur ke file apply-spec.yaml Anda.
    • PROJECT_ID: project ID Anda.

Terraform

Untuk setiap cluster yang ingin Anda konfigurasi Config Sync-nya, terapkan blok resource google_gkehub_feature_membership yang berisi blok configmanagement dan config_sync, seperti dalam contoh berikut:

git

data "google_project" "default" {}

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-basic"
  location = "us-central1"

  fleet {
    project = data.google_project.default.project_id
  }

  enable_autopilot = true
}

resource "google_gke_hub_feature" "configmanagement_feature" {
  name     = "configmanagement"
  location = "global"
}

resource "google_gke_hub_feature_membership" "configmanagement_feature_member" {
  location = "global"

  feature             = google_gke_hub_feature.configmanagement_feature.name
  membership          = google_container_cluster.default.fleet[0].membership_id
  membership_location = google_container_cluster.default.fleet[0].membership_location

  configmanagement {
    config_sync {
      # The field `enabled` was introduced in Terraform version 5.41.0, and
      # needs to be set to `true` explicitly to install Config Sync.
      enabled = true
      git {
        sync_repo   = "REPO"
        sync_branch = "BRANCH"
        policy_dir  = "DIRECTORY"
        secret_type = "SECRET"
      }
    }
  }
}

Ganti kode berikut:

  • REPO: URL ke repositori Git yang berisi file konfigurasi Anda.
  • BRANCH: cabang repositori, misalnya main.
  • DIRECTORY: jalur dalam repositori Git yang merepresentasikan tingkat teratas repositori yang ingin Anda sinkronkan.
  • SECRET: jenis autentikasi secret.

oci

data "google_project" "default" {}

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-basic"
  location = "us-central1"

  fleet {
    project = data.google_project.default.project_id
  }

  enable_autopilot = true
}

resource "google_gke_hub_feature" "configmanagement_feature" {
  name     = "configmanagement"
  location = "global"
}

resource "google_gke_hub_feature_membership" "configmanagement_feature_member" {
  location = "global"

  feature             = google_gke_hub_feature.configmanagement_feature.name
  membership          = google_container_cluster.default.fleet[0].membership_id
  membership_location = google_container_cluster.default.fleet[0].membership_location

  configmanagement {
    config_sync {
      # The field `enabled` was introduced in Terraform version 5.41.0, and
      # needs to be set to `true` explicitly to install Config Sync.
      enabled = true
      oci {
        sync_repo   = "REPO"
        policy_dir  = "DIRECTORY"
        secret_type = "SECRET"
      }
    }
  }
}

Ganti kode berikut:

  • REPO: URL ke repositori image OCI yang berisi file konfigurasi Anda.
  • DIRECTORY: jalur absolut direktori yang berisi resource yang ingin Anda sinkronkan. Untuk menggunakan direktori root, kosongkan kolom ini.
  • SECRET: jenis autentikasi secret.

Ulangi proses ini untuk setiap cluster yang ingin Anda sinkronkan.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Terraform, lihat Dukungan Terraform untuk Config Sync.

Setelah mengonfigurasi repositori root, Anda dapat secara opsional mengonfigurasi sinkronisasi dari beberapa repositori, termasuk repositori root dan repositori namespace lainnya. Repositori namespace berguna jika Anda menginginkan repositori yang berisi konfigurasi yang tercakup dalam namespace yang disinkronkan ke namespace tertentu di seluruh cluster.

Memverifikasi penginstalan

Setelah menginstal dan mengonfigurasi Config Sync, Anda dapat memverifikasi bahwa penginstalan telah berhasil diselesaikan.

gcloud

Jalankan perintah berikut:

nomos status

Penginstalan yang berhasil akan menampilkan status SYNCED atau PENDING.

Untuk mengetahui detail selengkapnya tentang informasi yang diberikan oleh nomos status, termasuk error yang dilaporkan, lihat Memeriksa status Config Sync dalam dokumentasi alat command line nomos.

console

Selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Config di bagian Features.

    Buka Config

  2. Di tab Paket, periksa kolom Status sinkronisasi di tabel cluster. Penginstalan Config Sync yang berhasil akan memiliki status Diinstal. Sumber tepercaya yang berhasil dikonfigurasi memiliki status Disinkronkan.

Langkah berikutnya