Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Mengubah Ukuran Volume StatefulSet Kubernetes

Posted on October 7, 2022

Kubernetes StatefulSets digunakan untuk men-deploy aplikasi stateful di dalam cluster Anda. Setiap Pod di StatefulSet dapat mengakses volume persisten lokal yang melekat padanya bahkan setelah dijadwal ulang. Hal ini memungkinkan Pod untuk mempertahankan status individual yang terpisah dari tetangganya di set.

Sayangnya volume ini memiliki batasan besar: Kubernetes tidak menyediakan cara untuk mengubah ukurannya dari objek StatefulSet. Properti spec.resources.requests.storage dari bidang volumeClaimTemplates StatefulSet tidak dapat diubah, mencegah Anda menerapkan peningkatan kapasitas apa pun yang Anda perlukan. Artikel ini akan menunjukkan cara mengatasi masalah tersebut.

Membuat StatefulSet

Salin YAML ini dan simpan ke ss.yaml:

apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: selector: app: nginx ports: – nama: port nginx: 80 clusterIP: Tidak ada— apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx spec: selector: matchLabels: app: nginx replicas: 3 serviceName: nginx template: metadata: labels: app: nginx spec : container: – nama: nginx gambar: nginx:port terbaru: – nama: web containerPort: 80 volumeMounts: – nama: data mountPath: /usr/share/nginx/html volumeClaimTemplates: – metadata: nama: spesifikasi data: accessModes: [ “ReadWriteOnce”] resources: request: storage: 1Gi

Terapkan YAML ke cluster Anda dengan Kubectl:

$ kubectl apply -f ss.yaml service/nginx create statefulset.apps/nginx created

Anda memerlukan kelas penyimpanan dan provisioner di cluster Anda untuk menjalankan contoh ini. Ini menciptakan StatefulSet yang menjalankan tiga replika server web NGINX.

Meskipun ini tidak mewakili kapan StatefulSets harus digunakan, itu cukup sebagai demo masalah volume yang dapat Anda hadapi. Klaim volume dengan penyimpanan 1 Gi dipasang ke direktori data NGINX. Konten web Anda dapat melampaui tunjangan yang relatif kecil ini seiring dengan skala layanan Anda. Namun mencoba untuk mengubah bidang volumeClaimTemplates.spec.resources.requests.storage ke 10Gi akan melaporkan kesalahan berikut ketika Anda menjalankan kubectl apply:

$ kubectl apply -f ss.yaml service/nginx tidak berubah StatefulSet “nginx” tidak valid: spec : Terlarang: pembaruan spesifikasi statefulset untuk bidang selain `replika`, `template`, `updateStrategy`, `persistentVolumeClaimRetentionPolicy` dan `minReadySeconds` dilarang

Hal ini terjadi karena hampir semua bidang manifes StatefulSet tidak dapat diubah setelah dibuat.

StatefulSeconds Mengubah Secara Manual Volumes

Anda dapat melewati batasan dengan mengubah ukuran klaim volume persisten (PVC) secara manual. Anda kemudian harus membuat ulang StatefulSet untuk melepaskan dan mengikat ulang volume dari Pod Anda. Ini akan memicu acara pengubahan ukuran volume yang sebenarnya.

Pertama gunakan Kubectl untuk menemukan PVC yang terkait dengan StatefulSet Anda:

$ kubectl get pvc NAMA STATUS VOLUME KAPASITAS AKSES MODES data-nginx-0 Terikat pvc-ccb2c835-e2d3-4632-b8ba-4c8c142795e RWO data-nginx-1 Terikat pvc-1b0b27fe-3874-4ed5-91be-d8e552e515f2 1Gi RWO data-nginx-2 Terikat pvc-4b7790c2-3ae6-4e04-afee-a2e1bae4323b 1Gi RWO

Ada tiga PVC karena ada tiga replika StatefulSet di . Setiap Pod mendapatkan volume tersendiri.

Sekarang gunakan kubectl edit untuk menyesuaikan kapasitas setiap volume:

$ kubectl edit pvc data-nginx-0

Manifes YAML PVC akan muncul di editor Anda. Temukan bidang spec.resources.requests.storage dan ubah ke kapasitas baru yang Anda inginkan:

# … spec: resources: request: storage: 10Gi # …

Save dan tutup file. Kubectl harus melaporkan bahwa perubahan telah diterapkan ke cluster.

persistentvolumeclaim/data-nginx-0 edited

Anda Sekarang ulangi langkah-langkah ini untuk PVC StatefulSet yang tersisa. Mendaftar volume persisten cluster Anda kemudian harus menunjukkan ukuran baru terhadap masing-masing:

$ kubectl get pv NAMA KAPASITAS AKSES MODE RECLAIM KEBIJAKAN STATUS KLAIM pvc-0a0d0b15-241f-4332-8c34-a24b61944fb7 10Gi RWO Hapus Bound default/data-nginx-2 pvc-33af452d-feff-429d-80cd-a45232e700c1 10Gi RWO Hapus Terikat default/data-nginx-0 pvc-49f3a1c5-b780-4580-9eae-17a1f002e9f5 10Gi RWO Hapus Terikat default/data-nginx-1

Klaim akan mempertahankan ukuran lama untuk sekarang:

$ kubectl get pvc NAMA STATUS VOLUME KAPASITAS AKSES MODE data-nginx-0 Terikat pvc-33af452d-feff-429d-80cd-a45232e700c1 10Gi RWO data-nginx-1 Terikat pvc-49f3a1c5-b780-4580-9eae-179af5f002e-179a 10Gi RWO data-nginx-2 Bound pvc-0a0d0b15-241f-4332-8c34-a24b61944fb7 10Gi RWO

Ini karena volumenya bisa ‘t diubah ukurannya saat Pod masih menggunakannya.

Membuat Ulang StatefulSet

Selesaikan pengubahan ukuran dengan melepaskan klaim volume dari StatefulSet yang menahannya. Hapus StatefulSet tetapi gunakan mekanisme cascading yatim piatu agar Pod-nya tetap berada di cluster Anda. Ini akan membantu meminimalkan downtime.

$ kubectl delete statefulset –cascade=orphan nginx statefulset.apps “nginx” delete

Selanjutnya edit file YAML asli Anda untuk memasukkan ukuran volume baru dalam file spec.resources.requests.storage. Kemudian gunakan kubectl apply untuk membuat ulang StatefulSet di cluster Anda:

$ kubectl apply -f ss.yaml service/nginx unknown statefulset.apps/nginx Created

StatefulSet baru akan mengambil alih kepemilikan Pod yang sebelumnya tidak digunakan karena Pod tersebut telah memenuhi persyaratannya. Volume mungkin akan diubah ukurannya pada saat ini, tetapi dalam banyak kasus Anda harus secara manual memulai peluncuran yang me-restart Pod Anda:

$ kubectl rollout restart statefulset nginx

Peluncuran berlangsung secara berurutan, menargetkan satu Pod pada satu waktu. Ini memastikan layanan Anda tetap dapat diakses di seluruh.

Sekarang PVC Anda akan menampilkan ukuran baru:

$ kubectl get pvc NAMA STATUS VOLUME KAPASITAS AKSES MODES data-nginx-0 Terikat pvc-33af452d-feff-429d-80cd-a45232e700c1 10Gi RWO data-nginx -1 Terikat pvc-49f3a1c5-b780-4580-9eae-17a1f002e9f5 10Gi RWO data-nginx-2 Terikat pvc-0a0d0b15-241f-4332-8c34-a24b61944fb7 10Gi RWO

Coba sambungkan ke salah satu Pod Anda untuk memeriksa peningkatan kapasitas yang terlihat :

$ kubectl exec -it nginx-0 bash root@nginx-0:/# df -h /usr/share/nginx/html Ukuran Sistem File yang Digunakan Tersedia Penggunaan% Dipasang di /dev/disk/by-id/scsi-0DO_Volume_pvc -33af452d-feff-429d-80cd-a45232e700c1 9.9G 4.5M 9.4G 1% /usr/share/nginx/html

Pod melaporkan penyimpanan 10 Gi yang diharapkan.

Kubernetes StatefulSets memungkinkan Anda menjalankan aplikasi stateful di Kuberne tes dengan volume penyimpanan persisten yang dicakupkan ke masing-masing Pod. Namun fleksibilitas yang diizinkan ini berakhir ketika Anda perlu mengubah ukuran salah satu volume Anda. Ini adalah fitur yang hilang yang saat ini memerlukan beberapa langkah manual untuk diselesaikan secara berurutan.

Pengelola Kubernetes mengetahui masalah ini. Ada permintaan fitur terbuka untuk mengembangkan solusi yang pada akhirnya akan memungkinkan Anda memulai pengubahan ukuran volume dengan mengedit manifes StatefulSet. Ini akan jauh lebih cepat dan lebih aman daripada situasi saat ini.

Satu peringatan terakhir adalah bahwa pengubahan ukuran volume bergantung pada driver penyimpanan yang memungkinkan ekspansi dinamis. Fitur ini hanya tersedia secara umum di Kubernetes v1.24 dan tidak semua driver, distribusi Kubernetes, dan platform cloud akan mendukungnya. Anda dapat memeriksa apakah milik Anda melakukannya dengan menjalankan kubectl get sc dan mencari true di kolom ALLOWVOLUMEXPANSION driver penyimpanan yang Anda gunakan dengan StatefulSets.

Anda

Itulah berita seputar Cara Mengubah Ukuran Volume StatefulSet Kubernetes, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Inilah 9 Aplikasi Penghasil Saldo DANA Tercepat dan Terbukti Membayar Tanpa Perlu Deposit
  • Inilah Cara Mengaktifkan Fitur Vertical Tab di Google Chrome Biar Tampilan Browser Kalian Makin Lega dan Rapi
  • Inilah Alasan Kenapa elementary OS Adalah Pilihan Paling Pas Buat Pengguna macOS yang Ingin Coba Linux
  • Inilah Alasan Kenapa Windows Server Kalian Restart Terus Setelah Update April 2026
  • Inilah Alasan Layar TV Kalian Sering Kedip Hitam Saat Main Game dan Cara Mengatasinya
  • Inilah Rekomendasi HP Redmi Note RAM 12 GB dan Koneksi 5G Paling Worth It Buat Kalian
  • Inilah Bocoran Event FF Mei 2026 yang Siap Bikin Dompet Kering, Ada Kuda dan MP40 Cobra!
  • Inilah Kejutan Kompensasi Bug FC Mobile 18 April 2026, Ada Kartu Flashback Gratis yang Bikin Skuad Makin Gahar!
  • Inilah Greenwashing: Trik Nakal Perusahaan Biar Terlihat Ramah Lingkungan Padahal Enggak!
  • Inilah Rekomendasi Parfum Segar untuk Cuaca Panas Agar Kalian Tetap Wangi Seharian Tanpa Bikin Pusing
  • Inilah 12 Aplikasi TV Online Terbaik 2026, Nonton Siaran Langsung Jadi Makin Gampang!
  • Inilah Rekomendasi Kipas Angin Dinding Terbaik Buat Ngatasin Cuaca Panas Tanpa Bikin Kantong Jebol
  • Inilah Cara Sewa Mobil yang Aman dan Nyaman Biar Liburan Kalian Makin Seru Tanpa Drama
  • Inilah Cara Daftar Lowongan 30.000 Manajer Koperasi Desa Merah Putih, Cek Jadwal Lengkapnya Di Sini!
  • Inilah Cara Daftar Lowongan 1.369 Manajer Operasional Kampung Nelayan Merah Putih Jadi Pegawai BUMN!
  • Inilah Perbedaan Skin Tint, Cushion, dan Foundation Biar Kalian Nggak Salah Pilih Base Makeup Natural
  • Inilah Rekomendasi Sepeda Lipat Dewasa Terbaik 2026 yang Paling Praktis untuk Kebutuhan Commuting dan Olahraga Harian
  • Inilah 5 Rekomendasi Sepeda Lipat Listrik Jarak Tempuh Terjauh Biar Mobilitas Kalian Makin Praktis!
  • Inilah 30 Ucapan Hari Kartini 2026 Paling Bermakna untuk Caption Media Sosial dan Pesan Personal yang Inspiratif
  • Inilah Cara Daftar Manajer Koperasi Merah Putih, Peluang Karir BUMN dengan 30.000 Formasi
  • Inilah 5 Rekomendasi Bedak Two Way Cake Anti Oksidasi Supaya Wajah Nggak Terlihat Kusam dan Gelap
  • Inilah Syarat dan Cara Mengurus Surat Sehat Jasmani Rohani untuk Daftar Manajer Kopdes Merah Putih
  • Inilah Alasan Harga Plastik Naik dan 7 Alternatif Kemasan Ramah Lingkungan yang Lebih Hemat buat UMKM
  • Inilah Profil Syekh Ahmad Al Misry dan Rekam Jejaknya yang Sedang Viral di Media Sosial
  • Inilah Alasan HP Nokia Jadul Harganya Masih Selangit dan Banyak Diburu Kolektor di Tahun 2026
  • Inilah HP Samsung A Series Terbaru yang Pakai Layar AMOLED, Mewah Tapi Harganya Terjangkau Banget!
  • Inilah Vivo T5 Pro, HP Midrange dengan Baterai 9.020 mAh yang Siap Comeback ke Indonesia!
  • Inilah Cara Daftar Manajer Koperasi Desa Merah Putih 2026, Ada 30.000 Formasi yang Bisa Kalian Lamar!
  • Inilah Alasan Kenapa Kemkomdigi Ancam Blokir Wikipedia dan Dampak Seriusnya Buat Masa Depan Pendidikan Kita
  • Inilah Cara Cek BLT Desa 2026 Tahap 2, Cair Rp900 Ribu Langsung ke Tangan Kalian!
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to Fix Excel Formula Errors: Quick Fixes for #NAME
  • How to Master Claude & NotebookLM to Boost Research and Productivity
  • How to create professional design prototypes and presentations with the power of Claude Design & Figma
  • How to Master Claude Code 2.0: The Ultimate Guide to AI Automation
  • How to Create Consistent AI-Generated Short Films and Assets with Seedance 2.0
  • How to create stunning sci-fi AI movie visuals like a pro With Seedance 2.0
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme