Menyiapkan domain topologi

Halaman ini memberikan ringkasan domain topologi dan pedoman untuk menyiapkannya.

Penyiapan domain topologi mengharuskan Anda mengaktifkan cluster lanjutan. Perhatikan batasan berikut pada pratinjau cluster lanjutan:

  • Anda dapat mengaktifkan cluster lanjutan pada saat pembuatan cluster untuk cluster 1.31 baru saja.
  • Setelah cluster lanjutan diaktifkan, Anda tidak akan dapat mengupgrade cluster ke 1.32. Aktifkan cluster lanjutan hanya di lingkungan pengujian.

Halaman ini ditujukan bagi Admin dan arsitek yang menentukan solusi IT dan arsitektur sistem sesuai dengan strategi perusahaan, serta membuat dan mengelola kebijakan terkait izin pengguna. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten, lihat Peran dan tugas pengguna GKE umum. Google Cloud

Ringkasan

Domain topologi adalah sekelompok node cluster yang dianggap sebagai bagian dari pengelompokan logis atau fisik yang sama, seperti kampus atau pusat data. Domain topologi harus sesuai dengan hardware atau software yang mendasarinya yang memiliki kemungkinan kegagalan yang berkorelasi. Contoh:

  • Kegagalan software seperti Server vCenter yang berbeda
  • Kegagalan hardware seperti rak yang berbeda, sumber daya yang berbeda, dan gedung yang berbeda

Di Google Distributed Cloud (khusus software) untuk VMware, sebagai bagian dari penyiapan domain topologi saat Anda membuat cluster, Anda menentukan label topologi. Setelah pembuatan cluster, label topologi diisi ke label node dalam domain topologi.

Untuk menggunakan domain topologi, Anda memiliki opsi berikut:

  • Versi 1.32 dan yang lebih tinggi: Mengonfigurasi batasan penyebaran topologi default tingkat cluster. Untuk mengetahui detailnya, lihat schedulerConfiguration.

  • Gunakan batasan default tingkat cluster Kubernetes, "topology.kubernetes.io/zone", sebagai kunci dalam label topologi. Untuk mengetahui informasi selengkapnya, lihat Batasan default bawaan.

  • Konfigurasi PodTemplate di Deployment, StatefulSet, atau ReplicaSet Anda, sebagaimana berlaku dengan kunci label topologi. Dalam spesifikasi Pod, Anda menggunakan kunci di label topologi sebagai nilai untuk kolom topologySpreadConstraints.topologyKey. Kunci ini memungkinkan penjadwal Kubernetes mendistribusikan Pod di seluruh domain topologi untuk memastikan ketersediaan tinggi dan mencegah konsentrasi berlebih di satu area jika terjadi kegagalan. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi topologySpreadConstraints dalam spesifikasi Pod, lihat Batasan Penyebaran Topologi Pod dalam dokumentasi Kubernetes.

Contoh label domain topologi

Misalnya, Anda membuat tiga domain topologi berikut saat membuat cluster pengguna:

...
topologyDomains:
- name: "topology-domain-1"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-1"
...
...
topologyDomains:
- name: "topology-domain-2"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-2"
...
...
topologyDomains:
- name: "topology-domain-3"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-3"
...

Setelah cluster dibuat, Anda memperbarui spesifikasi Pod, misalnya:

...
topologySpreadConstraints:
  topologyKey: "topology.examplepetstore.com/zone"
...

Secara umum, penjadwal Kubernetes menggunakan topology.examplepetstore.com/zone untuk memisahkan node cluster ke dalam grup yang berbeda, zone-1, zone-2, dan zone-3. Kemudian, penjadwal akan menyebarkan Pod di ketiga grup node ini.

Panduan Penyiapan Domain Topologi

Untuk memastikan penggunaan semua resource cluster yang efektif oleh penjadwal Kubernetes, sebaiknya ikuti panduan berikut:

  • Domain topologi harus seimbang. Anda harus menyediakan kapasitas CPU dan RAM yang hampir sama di setiap domain topologi.
  • Berikan setidaknya dua dan sebaiknya tiga domain topologi.
  • Jangan sebarkan lebih dari satu kunci topologi.
  • Node harus memiliki ukuran yang serupa di setiap domain topologi.
  • Jika Anda menggunakan taint dan toleransi untuk pemisahan workload dalam cluster, setiap grup node harus memenuhi persyaratan sebelumnya.

Jika panduan ini tidak dipenuhi, penjadwal akan tetap mencoba menggunakan kapasitas penuh cluster, tetapi mungkin perlu waktu lebih lama untuk menjadwalkan Pod, dan tidak semua Pod akan mendapatkan perilaku penyebaran yang diharapkan.

Langkah berikutnya