Halaman ini menjelaskan penggunaan objek StatefulSet di Google Kubernetes Engine (GKE). Anda juga dapat mempelajari cara
Men-deploy aplikasi stateful.
Tentang StatefulSet
StatefulSet mewakili sekumpulan Pod dengan identitas yang unik dan persisten, serta nama host yang stabil dan dipertahankan oleh GKE, terlepas dari tempatnya dijadwalkan. Informasi status dan data tangguh lainnya untuk setiap Pod StatefulSet tertentu dipertahankan dalam volume persisten yang terkait dengan setiap Pod di StatefulSet. Pod StatefulSet dapat dimulai ulang kapan saja.
StatefulSet berfungsi serupa di GKE dan di Kubernetes. Dokumen
ini menjelaskan pertimbangan khusus GKE. Untuk mempelajari cara kerja StatefulSets, lihat
dokumentasi Kubernetes tentang StatefulSets.
Merencanakan jaringan untuk StatefulSet
StatefulSet menyediakan penyimpanan persisten dalam bentuk PersistentVolume dan identitas jaringan (nama host) yang unik. Tabel berikut menyertakan peringatan yang harus diperhatikan
operator aplikasi saat mengonfigurasi StatefulSet:
Peringatan jaringan
Deskripsi
Praktik terbaik
Service GKE, bukan alamat IP tetap
Meskipun replika
Pod memiliki indeks ordinal yang unik, dukungan volume per replika, dan
identitas jaringan (nama host), alamat IP yang ditetapkan ke replika
dapat berubah jika GKE menjadwalkan ulang atau mengeluarkan Pod.
Untuk mengurangi masalah jaringan, arsitektur harus menggunakan resource Service Kubernetes. Untuk informasi selengkapnya, lihat Jenis Service Kubernetes.
Service Headless
Saat diinisialisasi, StatefulSet akan dipasangkan dengan layanan headless yang cocok.
Pastikan `metadata.name` di
Service Anda cocok dengan kolom serviceName di StatefulSet. Hal ini memungkinkan
setiap Pod dalam aplikasi Anda ditangani di alamat jaringan yang unik dan
ditentukan dengan baik. Selain itu, layanan headless menyediakan data multi-IP untuk setiap replika di StatefulSet, sehingga memungkinkan penemuan peer lengkap.
Penemuan peer
Aplikasi stateful memerlukan jumlah minimum (kuorum) replika agar dapat berfungsi dengan ketersediaan penuh.
Karena Pod dapat mengalami error, dijadwalkan ulang, atau dikeluarkan, setiap replika di StatefulSet harus dapat keluar dan bergabung kembali ke kuorum. Aplikasi yang memerlukan peering harus memiliki kemampuan untuk menemukan peer lain melalui Service headless di Kubernetes.
Health check berdasarkan pemeriksaan kesiapan dan pemeriksaan keaktifan
Aplikasi Anda harus memiliki
pemeriksaan kesiapan, keaktifan, dan proses mulai sistem yang dikonfigurasi dengan benar, jika memungkinkan.
Memilih waktu tunggu untuk setiap pemeriksaan bergantung pada persyaratan aplikasi Anda.
Untuk pemeriksaan kesiapan, ikuti praktik terbaik berikut guna mengonfigurasi
aplikasi Anda untuk menandai kesiapan saat aplikasi siap menyalurkan traffic:
Pemeriksaan keaktifan: Anda dapat menggunakan pemeriksaan keaktifan untuk memberi sinyal apakah
container responsif atau tidak. Misalnya, replika database dapat menggunakan pemeriksaan keaktifan
untuk menunjukkan bahwa GKE harus memulai ulang replika, seperti kondisi deadlock
Pemeriksaan kesiapan: Anda dapat menggunakan pemeriksaan kesiapan untuk menghapus replika agar tidak menyalurkan traffic untuk sementara waktu. Misalnya, jika memiliki replika database yang perlu melakukan pencadangan, Anda dapat menggunakan pemeriksaan kesiapan untuk berhenti menerima permintaan secara sementara.
Pemeriksaan proses mulai sistem: Anda dapat menggunakan pemeriksaan proses mulai sistem untuk menunda health check hingga inisialisasi yang berjalan lama selesai dilakukan. Misalnya, jika memiliki replika database, Anda dapat menggunakan pemeriksaan proses mulai sistem untuk menunggu inisialisasi data yang disimpan dari disk.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-22 UTC."],[],[],null,["# About StatefulSets in GKE\n\n[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview) [Standard](/kubernetes-engine/docs/concepts/choose-cluster-mode)\n\n*** ** * ** ***\n\nThis page describes the use of *StatefulSet* objects in\nGoogle Kubernetes Engine (GKE). You can also learn how to\n[Deploy a stateful application](/kubernetes-engine/docs/how-to/stateful-apps).\n\nAbout StatefulSets\n------------------\n\nStatefulSets represent a set of Pods with unique, persistent identities, and\nstable hostnames that GKE maintains regardless of where they are\nscheduled. The state information and other resilient data for any given\nStatefulSet Pod is maintained in [persistent\nvolumes](/kubernetes-engine/docs/concepts/persistent-volumes) associated with\neach Pod in the StatefulSet. StatefulSet Pods can be restarted at any time.\n\nFor [stateless applications](/kubernetes-engine/docs/how-to/deploying-workloads-overview#stateless_applications), use\n[Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/).\n\nStatefulSets function similarly in GKE and in Kubernetes. This\ndocument describes any GKE-specific considerations. To learn\nhow StatefulSets work, see the\n[Kubernetes documentation about StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/).\n\n### Plan networking for StatefulSets\n\nStatefulSets provide persistent storage in the form of a PersistentVolume and a\nunique network identity (hostname). The following table includes the caveats that\napplication operators should be aware of when configuring a StatefulSet:\n\nTo read more about probes, see [Configure Liveness, Readiness, and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes).\n\n\nWork with StatefulSets\n----------------------\n\nTo learn how to deploy StatefulSets in your GKE cluster and\ninteract with them, see the Kubernetes documentation about\n[StatefulSet basics](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/).\n\nWhat's next\n-----------\n\n- [Learn how to deploy a stateful application](/kubernetes-engine/docs/how-to/stateful-apps)\n- [Learn how to update StatefulSets using rolling updates](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#rolling-update)\n- [Learn more about deploying workloads in GKE](/kubernetes-engine/docs/how-to/deploying-workloads-overview)\n- [Read more about StatefulSets in the Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)\n- [Take a tutorial about upgrading a cluster running a stateful workload](/kubernetes-engine/docs/tutorials/upgrading-stateful-workload)"]]