Panduan memulai: Sinkronisasi konfigurasi dari repositori Git

Panduan memulai ini menunjukkan cara menggunakan Config Sync untuk menerapkan pendekatan GitOps dalam mengelola cluster Google Kubernetes Engine Anda. Dengan alur kerja GitOps, Anda menggunakan repositori Git sebagai satu-satunya sumber tepercaya untuk konfigurasi cluster Anda.

Dengan menggunakan Config Sync, Anda akan mendapatkan manfaat berikut:

  • Menerapkan konsistensi: membantu memastikan bahwa semua cluster Anda memiliki konfigurasi yang sama, sehingga mengurangi risiko penyimpangan konfigurasi.
  • Meningkatkan keamanan: mengelola dan mengaudit konfigurasi cluster Anda secara terpusat, sehingga memudahkan penerapan kebijakan keamanan.
  • Meningkatkan kecepatan: mengotomatiskan peluncuran perubahan konfigurasi, sehingga Anda dapat men-deploy perubahan dengan lebih cepat dan andal.

Dalam tutorial ini, Anda akan membuat cluster GKE dan mengonfigurasi Config Sync untuk menyinkronkan file konfigurasi dari repositori contoh. Tutorial ini membantu Anda memahami cara kerja Config Sync dan memberi Anda pengalaman menggunakan Config Sync untuk mengelola kluster secara konsisten dan otomatis.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project: Kubernetes Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih project.
    3. Klik Grant access.
    4. Di kolom New principals, masukkan ID pengguna Anda. Biasanya berupa alamat email untuk Akun Google.

    5. Di daftar Select a role, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.
    8. Membuat cluster

      Di bagian ini, Anda akan membuat cluster yang dapat digunakan dalam tutorial ini. Meskipun dalam skenario dunia nyata Anda mungkin mengelola beberapa cluster, untuk menyederhanakan tutorial ini, Anda hanya membuat dan mengelola satu cluster.

      Untuk membuat cluster, selesaikan langkah-langkah berikut:

      1. Aktifkan Google Kubernetes Engine API.

        Buka GKE

      2. Di konsol Google Cloud , buka halaman Kubernetes Engine.

        Buka Google Kubernetes Engine

      3. Klik Create.

      4. Di bagian Autopilot, pilih Configure.

      5. Di bagian Cluster basics, masukkan cs-cluster di kolom Name. Biarkan semua kolom lain tetap pada nilai default yang direkomendasikan.

      6. Klik Buat. Anda akan diarahkan ke halaman Kubernetes clusters. Proses pembuatan cluster Anda memerlukan waktu beberapa menit. Jika Anda melihat tanda centang hijau di kolom Status di samping cluster, berarti cluster sudah siap.

      Konfigurasi cluster Anda

      Setelah memiliki cluster, Anda dapat mengonfigurasi Config Sync untuk menyinkronkan file konfigurasi dari repositori Git.

      Untuk mengonfigurasi Config Sync di konsol Google Cloud , selesaikan langkah-langkah berikut:

      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 Instal Config Sync di setiap cluster.
      5. Di tabel Available clusters, pilih cs-cluster, lalu klik Install Config Sync. Di tab Setelan, Anda akan melihat status cs-cluster sebagai Diaktifkan setelah beberapa menit.
      6. Di dasbor Config Sync, klik Deploy cluster package.
      7. Di tabel Pilih cluster untuk deployment paket, pilih cs-cluster lalu klik Lanjutkan.
      8. Biarkan Paket dihosting di Git tetap dipilih, lalu klik Lanjutkan.
      9. Di kolom Package name, masukkan sample-repository.
      10. Di kolom Repository URL, masukkan https://github.com/GoogleCloudPlatform/anthos-config-management-samples.
      11. Di kolom Path, masukkan config-sync-quickstart/multirepo/root.
      12. Biarkan kolom lain tetap pada nilai defaultnya.
      13. Klik Deploy Package.

        Setelah beberapa menit, Anda akan melihat Disinkronkan di kolom Status sinkronisasi untuk cs-cluster.

      Setelah disinkronkan ke repositori, Config Sync akan terus merekonsiliasi status cluster Anda dengan konfigurasi di repositori.

      Melihat detail paket

      Untuk melihat objek yang dikelola oleh Config Sync, buka tab Packages dan klik cs-cluster. Halaman detail paket memberikan ringkasan semua resource yang disinkronkan, termasuk jenis resource dan namespace tempat resource disinkronkan.

      (Opsional) Jelajahi repositori contoh

      Konfigurasi yang diterapkan ke cluster Anda ditentukan di repositori /config-sync-quickstart/multirepo/. Contoh ini menunjukkan penyiapan multi-repositori di mana konfigurasi tingkat cluster-admin, yang diwakili oleh repositori root, dipisahkan dari konfigurasi tingkat namespace, yang diwakili oleh repositori namespaces. Dalam contoh ini, konfigurasi ini dibagi ke dalam folder yang berbeda. Dalam skenario dunia nyata, Anda dapat menyimpan konfigurasi di dua repositori berbeda dengan izin akses yang berbeda.

      Secara umum, repositori tingkat cluster atau root biasanya dikelola oleh administrator pusat dan berisi resource di seluruh cluster, konfigurasi namespace, dan kebijakan. Repositori tingkat namespace biasanya berisi konfigurasi khusus untuk setiap namespace dan sering dikelola oleh tim aplikasi.

      Beberapa jenis file utama yang mungkin Anda simpan di repositori root meliputi:

      • Pembuatan namespace: file seperti namespace-gamestore.yaml membuat namespace itu sendiri.
      • Resource cakupan cluster: file yang memengaruhi seluruh cluster mencakup resource seperti objek ClusterRole yang menambahkan peran di seluruh cluster yang memberikan izin.
      • Menghubungkan repositori namespace: file kunci dalam penyiapan multi-repositori ini adalah file reposync-gamestore.yaml. Objek RepoSync ini memberi tahu Config Sync untuk menyinkronkan konfigurasi namespace gamestore dari jalur yang berbeda. Dalam contoh ini, objek RepoSync mengarah ke direktori config-sync-quickstart/multirepo/ namespaces/gamestore dalam repositori yang sama, tetapi dalam skenario dunia nyata, Anda dapat mengarah ke repositori Git yang berbeda.

      Repositori namespace berisi konfigurasi khusus aplikasi untuk namespace gamestore. Misalnya, file configmap-inventory.yaml berisi data inventaris untuk aplikasi gamestore. Jenis penyiapan GitOps ini memungkinkan tim aplikasi memiliki lebih banyak otonomi atas deployment dan resource yang tercakup dalam namespace mereka sendiri tanpa perlu mengubah repositori root pusat.

      Pembersihan

      1. Buka menu GKE di konsol Google Cloud .

        Buka GKE

      2. Di samping cs-cluster, klik Tindakan, lalu klik Hapus.

      3. Saat diminta untuk mengonfirmasi, klik Hapus lagi.

      Langkah berikutnya