Saat menginstal bmctl
versi baru, Anda dapat mengupgrade cluster yang ada
yang dibuat dengan versi sebelumnya. Mengupgrade cluster ke
versi Google Distributed Cloud terbaru akan menghadirkan fitur dan perbaikan tambahan ke
cluster Anda. Hal ini juga memastikan bahwa cluster Anda tetap
didukung.
Anda dapat mengupgrade cluster admin, campuran, mandiri, atau pengguna dengan perintah bmctl upgrade cluster
, atau Anda dapat menggunakan kubectl
.
Untuk mempelajari lebih lanjut proses upgrade dan aturan pembuatan versi, lihat Siklus proses dan tahap upgrade cluster.
Halaman ini ditujukan untuk Admin, arsitek, dan Operator yang mengelola siklus proses infrastruktur teknologi yang mendasarinya. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.
Merencanakan upgrade
Bagian ini berisi informasi dan link ke informasi yang harus Anda pertimbangkan sebelum mengupgrade cluster. Untuk mengetahui informasi selengkapnya tentang upgrade, termasuk aturan pembuatan versi untuk cluster dan node pool, lihat Siklus proses dan tahap upgrade cluster.
Praktik terbaik
Untuk informasi yang dapat membantu Anda mempersiapkan upgrade cluster, lihat Praktik terbaik untuk upgrade cluster Google Distributed Cloud.
Mengupgrade pemeriksaan pra-penerbangan
Pemeriksaan pra-penerbangan dijalankan sebagai bagian dari upgrade cluster untuk memvalidasi status cluster dan kondisi node. Upgrade cluster tidak akan dilanjutkan jika pemeriksaan pra-penerbangan gagal. Untuk informasi selengkapnya tentang pemeriksaan pra-penerbangan, lihat Memahami pemeriksaan pra-penerbangan.
Anda dapat memeriksa apakah cluster siap untuk diupgrade dengan menjalankan pemeriksaan preflight sebelum menjalankan upgrade. Untuk informasi selengkapnya, lihat Pemeriksaan pra-penerbangan untuk upgrade.
Masalah umum
Untuk mengetahui informasi tentang potensi masalah terkait upgrade cluster, lihat Masalah umum Google Distributed Cloud untuk bare metal dan pilih kategori masalah Upgrade dan update.
Mengonfigurasi opsi upgrade
Sebelum memulai upgrade cluster, Anda dapat mengonfigurasi opsi upgrade berikut yang mengontrol cara kerja proses upgrade:
Upgrade node pool pekerja selektif: upgrade node pool pekerja tertentu secara terpisah dari node pool lainnya di cluster.
Upgrade paralel: mengonfigurasi proses upgrade untuk mengupgrade grup node atau node pool secara bersamaan.
Opsi ini dapat mengurangi risiko gangguan pada aplikasi dan layanan penting serta secara signifikan mengurangi waktu upgrade secara keseluruhan. Opsi ini terutama berguna untuk cluster besar dengan banyak node dan kumpulan node yang menjalankan workload penting. Untuk informasi selengkapnya tentang fungsi opsi ini dan cara menggunakannya, lihat bagian berikut.
Upgrade kumpulan node pekerja selektif
Secara default, operasi upgrade cluster mengupgrade setiap node dan node pool di cluster. Upgrade cluster dapat mengganggu dan memakan waktu, karena mengakibatkan setiap node habis dan semua pod terkait dimulai ulang dan dijadwalkan ulang. Bagian ini menjelaskan cara menyertakan atau mengecualikan node pool pekerja tertentu untuk upgrade cluster guna meminimalkan gangguan beban kerja. Fitur ini hanya berlaku untuk cluster pengguna, campuran, dan mandiri, karena cluster admin tidak mengizinkan node pool pekerja.
Anda dapat menggunakan upgrade node pool selektif dalam situasi berikut:
Untuk menerapkan perbaikan keamanan tanpa mengganggu workload: Anda dapat mengupgrade node bidang kontrol (dan node load balancer) saja untuk menerapkan perbaikan kerentanan Kubernetes tanpa mengganggu node pool pekerja.
Untuk mengonfirmasi pengoperasian yang tepat dari subset node pekerja yang diupgrade sebelum mengupgrade semua node pekerja: Anda dapat mengupgrade node pool pekerja secara selektif untuk memastikan bahwa workload berjalan dengan benar di node pool yang diupgrade sebelum mengupgrade node pool lain.
Untuk mengurangi masa pemeliharaan: Mengupgrade cluster besar dapat memakan waktu dan sulit untuk memprediksi secara akurat kapan upgrade akan selesai. Waktu upgrade cluster sebanding dengan jumlah node yang diupgrade. Mengurangi jumlah node yang diupgrade dengan mengecualikan node pool akan mengurangi waktu upgrade. Anda mengupgrade beberapa kali, tetapi masa pemeliharaan yang lebih kecil dan lebih dapat diprediksi dapat membantu penjadwalan.
Ketidaksesuaian versi node pool dua versi minor
Untuk cluster versi 1.28 dan yang lebih tinggi, versi node pool pekerja dapat berisi hingga dua versi minor sebelum versi cluster (bidang kontrol). Dengan dukungan ketidaksesuaian versi n-2, Anda juga dapat melewati versi rilis minor saat mengupgrade node pool pekerja dari dua versi minor di belakang cluster ke versi minor yang sama dengan cluster.
Dukungan ketidakselarasan versi n-2 ini untuk kumpulan node pekerja memberi Anda lebih banyak fleksibilitas untuk merencanakan upgrade fleet.
Misalnya, jika memiliki cluster versi 1.30, Anda dapat memiliki node pool pekerja pada versi 1.30, 1.29, dan 1.28 tertentu.
Sebelum Anda dapat mengupgrade cluster, semua kumpulan node pekerja harus menggunakan versi yang kompatibel dengan versi cluster saat ini dan versi cluster target.
Misalnya, jika Anda memiliki cluster pada versi 1.29 dan node pool pekerja pada versi 1.29, versi 1.28, dan versi 1.16, Anda harus mengupgrade node pool versi 1.16 ke versi 1.28 atau 1.29 sebelum dapat mengupgrade cluster ke versi 1.30.
Untuk informasi selengkapnya, termasuk daftar versi kumpulan node pekerja yang didukung dan didukung oleh versi cluster tertentu (berlaku untuk versi 1.29 dan yang lebih lama), lihat Aturan pembuatan versi kumpulan node
1,30
Dalam rilis 1.30, dukungan skew versi n-2 untuk node pool pekerja adalah GA untuk semua jenis cluster. Fitur ini diaktifkan secara default untuk cluster pada versi 1.30.
Node pool pada versi patch apa pun dari versi minor 1.28 dan 1.29 dapat diupgrade ke versi patch apa pun dari 1.30, jika versi node pool sama atau lebih rendah dari versi cluster.
1,29
Dalam rilis 1.29, dukungan skew versi n-2 untuk kumpulan node pekerja adalah GA untuk semua jenis cluster. Fitur ini diaktifkan secara default untuk cluster pada versi 1.29.
Saat kami mentransisikan fitur ini dari Pratinjau Publik ke GA, cluster campuran
masih memerlukan anotasi pratinjau dalam situasi berikut. Jika memiliki
cluster hybrid versi 1.28.x dengan node pool pekerja versi 1.16.y, Anda
harus menambahkan anotasi preview.baremetal.cluster.gke.io/two-minor-version-node-pool: enable
ke cluster sebelum mengupgradenya ke versi 1.29.z:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: baremetal-demo
namespace: cluster-baremetal-demo
annotations:
preview.baremetal.cluster.gke.io/two-minor-version-node-pool: enable
spec:
type: hybrid
profile: default
anthosBareMetalVersion: 1.28.400-gke.77
...
1,28
Dukungan skew versi n-2 untuk node pool pekerja tersedia untuk
Pratinjau dalam rilis 1.28. Untuk mengaktifkan
kemampuan Pratinjau ini, tambahkan
anotasi
preview.baremetal.cluster.gke.io/two-minor-version-node-pool: enable
ke file konfigurasi cluster Anda:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: baremetal-demo
namespace: cluster-baremetal-demo
annotations:
preview.baremetal.cluster.gke.io/two-minor-version-node-pool: enable
spec:
...
Jika Anda tidak mengaktifkan kemampuan Pratinjau ini, ketidaksesuaian versi maksimum antara kumpulan node pekerja dan cluster adalah satu versi minor.
Untuk mengetahui informasi selengkapnya tentang aturan pembuatan versi untuk mengupgrade node pool pekerja secara selektif, lihat Aturan pembuatan versi node pool di Siklus proses dan tahap upgrade cluster.
Mengupgrade bidang kontrol cluster dan node pool yang dipilih
Untuk mengupgrade node pool pekerja secara selektif dalam upgrade cluster awal:
Untuk node pool pekerja yang ingin Anda sertakan dalam upgrade cluster, lakukan salah satu perubahan berikut pada spesifikasi NodePool:
- Tetapkan
anthosBareMetalVersion
dalam spesifikasi NodePool ke versi upgrade target cluster. - Hapus kolom
anthosBareMetalVersion
dari spesifikasi NodePool. atau tetapkan ke string kosong. Secara default, node pool pekerja disertakan dalam upgrade cluster.
- Tetapkan
Untuk node pool pekerja yang ingin Anda kecualikan dari upgrade, tetapkan
anthosBareMetalVersion
ke versi cluster saat ini (pra-upgrade):Lanjutkan upgrade seperti yang dijelaskan dalam artikel Memulai upgrade cluster.
Operasi upgrade cluster mengupgrade node berikut:
- Node bidang kontrol cluster.
- Node pool load balancer, jika cluster Anda menggunakan satu node pool load balancer (
spec.loadBalancer.nodePoolSpec
). Secara default, node load balancer dapat menjalankan beban kerja reguler. Anda tidak dapat mengupgrade node pool load balancer secara selektif, karena selalu disertakan dalam upgrade cluster awal. - Node pool pekerja yang belum Anda kecualikan dari upgrade.
Misalnya, cluster Anda menggunakan versi 1.29.0 dan
memiliki dua kumpulan node pekerja: wpool01
dan wpool02
. Selain itu, misalkan Anda ingin mengupgrade panel kontrol dan wpool01
ke 1.30.300-gke.84, tetapi Anda ingin wpool02
tetap menggunakan versi 1.29.0.
Cuplikan file konfigurasi cluster berikut menunjukkan cara mengubah konfigurasi cluster untuk mendukung upgrade parsial ini:
...
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: user001
namespace: cluster-user001
spec:
type: user
profile: default
anthosBareMetalVersion: 1.30.300-gke.84
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: wpool01
namespace: cluster-user001
spec:
clusterName: user001
anthosBareMetalVersion: 1.30.300-gke.84
nodes:
- address: 10.200.0.1
- address: 10.200.0.2
- address: 10.200.0.3
...
- address: 10.200.0.8
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: wpool02
namespace: cluster-user001
spec:
clusterName: user001
anthosBareMetalVersion: 1.29.0
nodes:
- address: 10.200.1.1
- address: 10.200.1.2
- address: 10.200.1.3
...
- address: 10.200.1.12
Mengupgrade node pool ke versi cluster saat ini
Jika telah mengecualikan node pool dari upgrade cluster, Anda dapat menjalankan upgrade cluster yang mengupgradenya ke versi cluster target. Node pool pekerja yang telah dikecualikan dari upgrade cluster memiliki kolom anthosBareMetalVersion
dalam spesifikasi NodePool
yang ditetapkan ke versi cluster sebelumnya (pra-upgrade).
Untuk mengupgrade node pool pekerja ke versi cluster yang saat ini diupgrade:
Edit spesifikasi
NodePool
dalam file konfigurasi cluster untuk kumpulan node pekerja yang ingin Anda ubah ke versi cluster saat ini. TetapkananthosBareMetalVersion
ke versi cluster saat ini (pasca-upgrade).Jika beberapa node pool pekerja dipilih untuk diupgrade, nilai
spec.nodePoolUpgradeStrategy.concurrentNodePools
dalam spesifikasi cluster akan menentukan jumlah node pool yang diupgrade secara paralel, jika ada. Jika Anda tidak ingin mengupgrade node pool pekerja secara serentak, pilih satu node pool dalam satu waktu untuk diupgrade.Lanjutkan upgrade seperti yang dijelaskan dalam artikel Memulai upgrade cluster.
Operasi upgrade cluster hanya mengupgrade kumpulan node pekerja yang sebelumnya dikecualikan, yang
anthosBareMetalVersion
-nya telah Anda tetapkan ke versi cluster yang diupgrade saat ini.
Misalnya, Anda mengupgrade cluster ke versi
1.30.300-gke.84, tetapi node pool wpool02
masih menggunakan cluster versi lama sebelum upgrade, yaitu 1.29.0. Workload berjalan dengan baik di
kumpulan node yang diupgrade, wpool01
, sehingga sekarang Anda juga ingin mengupgrade wpool02
ke
versi cluster saat ini. Untuk mengupgrade wpool02
, Anda dapat menghapus
kolom anthosBareMetalVersion
atau menetapkan nilainya ke string kosong.
Cuplikan file konfigurasi cluster berikut menunjukkan cara mengubah konfigurasi cluster untuk mendukung upgrade parsial ini:
...
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: user001
namespace: cluster-user001
spec:
type: user
profile: default
anthosBareMetalVersion: 1.30.300-gke.84
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: wpool01
namespace: cluster-user001
spec:
clusterName: user001
anthosBareMetalVersion: 1.30.300-gke.84
nodes:
- address: 10.200.0.1
- address: 10.200.0.2
- address: 10.200.0.3
...
- address: 10.200.0.8
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: wpool02
namespace: cluster-user001
spec:
clusterName: user001
anthosBareMetalVersion: ""
nodes:
- address: 10.200.1.1
- address: 10.200.1.2
- address: 10.200.1.3
...
- address: 10.200.1.12
Me-roll back upgrade node pool
Ada banyak dependensi, seperti kompatibilitas dengan kubelet atau plugin, yang dapat memengaruhi performa workload Anda. Jika mengalami masalah setelah mengupgrade node pool pekerja, Anda dapat me-roll back node pool ke versi sebelumnya.
Fitur ini tidak berada pada fase peluncuran yang sama untuk semua versi cluster yang didukung:
1,30
Untuk cluster versi 1.30 (cluster dengan node bidang kontrol pada versi 1.30), kemampuan rollback node pool adalah GA dan diaktifkan secara default.
1,29
Kemampuan rollback node pool tersedia untuk Pratinjau untuk cluster versi 1.29 (cluster dengan node panel kontrol pada versi 1.29). Saat fitur ini
dalam Pratinjau, Anda harus menambahkan anotasi berikut ke resource Cluster
untuk mengaktifkan fitur tersebut:
preview.baremetal.cluster.gke.io/worker-node-pool-upgrade-rollback: enable
1,28
Kemampuan rollback node pool tidak tersedia untuk cluster pada versi minor 1.28 atau yang lebih lama.
Untuk melakukan roll back upgrade node pool, gunakan langkah-langkah berikut:
bmctl
Saat menggunakan bmctl
untuk melakukan rollback upgrade node pool, Anda mengedit file konfigurasi cluster dan menerapkan perubahan dengan perintah bmctl update
:
Edit spesifikasi
NodePool
dalam file konfigurasi cluster untuk node pool pekerja yang ingin Anda roll back ke versi sebelumnya. TetapkananthosBareMetalVersion
ke versi cluster sebelumnya (pra-upgrade).... --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: wpool01 namespace: cluster-user001 spec: clusterName: user001 anthosBareMetalVersion: 1.29.800-gke.111 nodes: - address: 10.200.0.1 - address: 10.200.0.2 - address: 10.200.0.3 ...
Jika beberapa kumpulan node pekerja dipilih untuk rollback, nilai
spec.nodePoolUpgradeStrategy.concurrentNodePools
dalam spesifikasi cluster akan menentukan jumlah kumpulan node yang di-rollback secara paralel. Jika Anda tidak ingin melakukan roll back node pool pekerja secara serentak, pilih satu node pool satu per satu untuk melakukan roll back atau perbarui setelannodePoolUpgradeStrategy
. Demikian pula, nilaispec.upgradeStrategy.parallelUpgrade.concurrentNodes
dalam spesifikasiNodePool
menentukan jumlah node yang di-roll back secara paralel.Gunakan
bmctl update
untuk menerapkan perubahan spesifikasiNodePool
:bmctl update cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang ingin Anda perbarui.ADMIN_KUBECONFIG
: jalur file kubeconfig cluster pengelola (admin, campuran, atau mandiri).
Pembalikan akan dimulai secara otomatis. Perintah
bmctl update cluster
akan langsung keluar, tetapi rollback akan terus berlanjut. Jangan lakukan operasi lain pada cluster saat rollback sedang berlangsung.Saat rollback berjalan, Google Distributed Cloud akan melakukan aktivitas berikut untuk setiap node:
- Masukkan node ke dalam mode pemeliharaan.
- Jalankan tugas reset pada node untuk mengembalikannya ke status bersih.
- Jalankan pemeriksaan pra-penerbangan mesin di node.
- Jalankan tugas inisialisasi mesin di node untuk menginstal ulang pada versi rollback target (pra-upgrade).
- Hapus node dari mode pemeliharaan.
Di akhir rollback yang berhasil, nilai
nodePool.status.anthosBareMetalVersion
dalam resourceNodePool
ditetapkan ke versi rollback target.
kubectl
Anda dapat melakukan roll back upgrade node pool menggunakan kubectl
untuk mengedit resource NodePool
secara langsung:
Untuk melakukan roll back node pool pekerja, buka resource
NodePool
untuk diedit:kubectl edit nodepool NODE_POOL_NAME \ --namespace CLUSTER_NAMESPACE \ --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
NODE_POOL_NAME
: nama node pool yang Anda rollback.CLUSTER_NAMESPACE
: nama namespace tempat node pool di-deploy. Ini adalah namespace cluster.ADMIN_KUBECONFIG
: jalur file kubeconfig cluster pengelola (admin, campuran, atau mandiri).
Ubah nilai
spec.anthosBareMetalVersion
ke versi sebelum upgrade.... --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: wpool01 namespace: cluster-user001 spec: clusterName: user001 anthosBareMetalVersion: 1.29.800-gke.111 nodes: - address: 10.200.0.1 - address: 10.200.0.2 - address: 10.200.0.3 ...
Simpan dan tutup resource
NodePool
di editor Anda.Pembalikan akan dimulai secara otomatis. Jangan melakukan operasi lain pada klaster saat rollback sedang berlangsung.
Saat rollback berjalan, Google Distributed Cloud akan melakukan aktivitas berikut untuk setiap node:
- Masukkan node ke dalam mode pemeliharaan.
- Jalankan tugas reset pada node untuk mengembalikannya ke status bersih.
- Jalankan pemeriksaan pra-penerbangan mesin di node.
- Jalankan tugas inisialisasi mesin di node untuk menginstal ulang pada versi rollback target (pra-upgrade).
- Hapus node dari mode pemeliharaan.
Di akhir rollback yang berhasil, nilai
nodePool.status.anthosBareMetalVersion
dalam resourceNodePool
ditetapkan ke versi rollback target.
Upgrade paralel
Dalam upgrade cluster default yang biasa, setiap node cluster diupgrade secara berurutan, satu per satu. Bagian ini menunjukkan cara mengonfigurasi cluster dan kumpulan node pekerja sehingga beberapa node diupgrade secara paralel saat Anda mengupgrade cluster. Mengupgrade node secara paralel akan mempercepat upgrade cluster secara signifikan, terutama untuk cluster yang memiliki ratusan node.
Ada dua strategi upgrade paralel yang dapat Anda gunakan untuk mempercepat upgrade cluster:
Upgrade node serentak: Anda dapat mengonfigurasi kumpulan node pekerja sehingga beberapa node diupgrade secara paralel. Upgrade node secara paralel dikonfigurasi dalam spesifikasi NodePool (
spec.upgradeStrategy.parallelUpgrade
) dan hanya node dalam node pool pekerja yang dapat diupgrade secara paralel. Node di node pool bidang kontrol atau load balancer hanya dapat diupgrade satu per satu. Untuk informasi selengkapnya, lihat Strategi upgrade node.Upgrade node pool serentak: Anda dapat mengonfigurasi cluster sehingga beberapa node pool diupgrade secara paralel. Hanya node pool pekerja yang dapat diupgrade secara paralel. Node pool bidang kontrol dan load balancer hanya dapat diupgrade satu per satu.
Strategi upgrade node
Anda dapat mengonfigurasi kumpulan node pekerja sehingga beberapa node diupgrade secara serentak
(concurrentNodes
). Anda juga dapat menetapkan nilai minimum untuk jumlah
node yang dapat menjalankan beban kerja selama proses upgrade
(minimumAvailableNodes
). Konfigurasi ini dibuat dalam spesifikasi NodePool. Untuk
mengetahui informasi selengkapnya tentang kolom ini, lihat
Referensi kolom konfigurasi cluster.
Strategi upgrade node hanya berlaku untuk node pool pekerja. Anda tidak dapat menentukan strategi upgrade node untuk node pool control plane atau load balancer. Selama upgrade
cluster, node di node pool load balancer dan control plane diupgrade
secara berurutan, satu per satu. Node pool bidang kontrol dan node pool load balancer ditentukan dalam spesifikasi Cluster (controlPlane.nodePoolSpec.nodes
dan loadBalancer.nodePoolSpec.nodes
).
Saat Anda mengonfigurasi upgrade paralel untuk node, perhatikan batasan berikut:
Nilai
concurrentNodes
tidak boleh melebihi 50 persen dari jumlah node dalam node pool, atau angka tetap 15, mana saja yang lebih kecil. Misalnya, jika node pool Anda memiliki 20 node, Anda tidak dapat menentukan nilai yang lebih besar dari 10. Jika node pool Anda memiliki 100 node, 15 adalah nilai maksimum yang dapat Anda tentukan.Saat Anda menggunakan
concurrentNodes
bersama denganminimumAvailableNodes
, nilai gabungan tidak boleh melebihi jumlah total node dalam node pool. Misalnya, jika node pool Anda memiliki 20 node danminimumAvailableNodes
ditetapkan ke 18,concurrentNodes
tidak boleh melebihi 2. Demikian pula, jikaconcurrentNodes
ditetapkan ke 10,minimumAvailableNodes
tidak boleh melebihi 10.
Contoh berikut menunjukkan kumpulan node pekerja np1
dengan 10 node. Dalam upgrade, node diupgrade 5 sekaligus dan minimal 4 node harus tetap tersedia agar upgrade dapat dilanjutkan:
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: np1
namespace: cluster-cluster1
spec:
clusterName: cluster1
nodes:
- address: 10.200.0.1
- address: 10.200.0.2
- address: 10.200.0.3
- address: 10.200.0.4
- address: 10.200.0.5
- address: 10.200.0.6
- address: 10.200.0.7
- address: 10.200.0.8
- address: 10.200.0.9
- address: 10.200.0.10
upgradeStrategy:
parallelUpgrade:
concurrentNodes: 5
minimumAvailableNodes: 4
Strategi upgrade node pool
Anda dapat mengonfigurasi cluster sehingga beberapa kumpulan node pekerja diupgrade secara
paralel. Kolom Boolean nodePoolUpgradeStrategy.concurrentNodePools
dalam
spesifikasi cluster menentukan apakah akan mengupgrade semua kumpulan node pekerja untuk
cluster secara serentak atau tidak. Secara default (1
), node pool diupgrade
secara berurutan, satu per satu. Saat Anda menetapkan concurrentNodePools
ke 0
, setiap node pool pekerja di cluster akan diupgrade secara paralel.
Bidang kontrol dan kumpulan node load balancing tidak terpengaruh oleh setelan ini.
Node pool ini selalu diupgrade secara berurutan, satu per satu. Node pool
bidang kontrol dan node pool load balancer ditentukan dalam spesifikasi Cluster
(controlPlane.nodePoolSpec.nodes
dan loadBalancer.nodePoolSpec.nodes
).
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
...
nodePoolUpgradeStrategy:
concurrentNodePools: 0
...
Cara melakukan upgrade paralel
Bagian ini menjelaskan cara mengonfigurasi cluster dan node pool pekerja untuk upgrade paralel.
Untuk melakukan upgrade paralel pada node dan node pool pekerja di node pool pekerja, lakukan hal berikut:
Tambahkan bagian
upgradeStrategy
ke spesifikasi NodePool.Anda dapat menerapkan manifes ini secara terpisah atau sebagai bagian dari file konfigurasi cluster saat melakukan update cluster.
Berikut contohnya:
--- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: np1 namespace: cluster-ci-bf8b9aa43c16c47 spec: clusterName: ci-bf8b9aa43c16c47 nodes: - address: 10.200.0.1 - address: 10.200.0.2 - address: 10.200.0.3 ... - address: 10.200.0.30 upgradeStrategy: parallelUpgrade: concurrentNodes: 5 minimumAvailableNodes: 10
Dalam contoh ini, nilai kolom
concurrentNodes
adalah5
, yang berarti 5 node diupgrade secara paralel. KolomminimumAvailableNodes
ditetapkan ke10
, yang berarti setidaknya 10 node harus tetap tersedia untuk workload selama upgrade.Tambahkan bagian
nodePoolUpgradeStrategy
ke spesifikasi Cluster dalam file konfigurasi cluster.--- apiVersion: v1 kind: Namespace metadata: name: cluster-user001 --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user001 namespace: cluster-user001 spec: type: user profile: default anthosBareMetalVersion: 1.30.300-gke.84 ... nodePoolUpgradeStrategy: concurrentNodePools: 0 ...
Dalam contoh ini, kolom
concurrentNodePools
ditetapkan ke0
, yang berarti semua node pool pekerja diupgrade secara serentak selama upgrade cluster. Strategi upgrade untuk node di node pool ditentukan dalam spec NodePool.Upgrade cluster seperti yang dijelaskan di bagian Mengupgrade cluster admin, mandiri, campuran, atau pengguna sebelumnya.
Nilai default upgrade paralel
Upgrade paralel dinonaktifkan secara default dan kolom yang terkait dengan upgrade paralel dapat diubah. Anda dapat menghapus kolom atau menetapkannya ke nilai defaultnya kapan saja untuk menonaktifkan fitur sebelum upgrade berikutnya.
Tabel berikut mencantumkan kolom upgrade paralel dan nilai defaultnya:
Kolom | Nilai default | Arti |
---|---|---|
nodePoolUpgradeStrategy.concurrentNodePools (Spesifikasi cluster) |
1 |
Upgrade node pool pekerja secara berurutan, satu per satu. |
upgradeStrategy.parallelUpgrade.concurrentNodes (spesifikasi NodePool) |
1 |
Upgrade node secara berurutan, satu per satu. |
upgradeStrategy.parallelUpgrade.minimumAvailableNodes (spesifikasi NodePool) |
Nilai minimumAvailableNodes default bergantung pada nilai concurrentNodes .
|
Upgrade terhenti setelah minimumAvailableNodes tercapai dan hanya dilanjutkan setelah jumlah node yang tersedia lebih besar dari minimumAvailableNodes . |
Memulai upgrade cluster
Bagian ini berisi petunjuk untuk mengupgrade cluster.
bmctl
Saat mendownload dan menginstal bmctl
versi baru, Anda dapat mengupgrade
cluster admin, hybrid, mandiri, dan pengguna yang dibuat dengan versi sebelumnya.
Untuk versi bmctl
tertentu, cluster hanya dapat diupgrade ke versi yang sama.
Tetapkan kredensial pengguna Anda sebagai Kredensial Default Aplikasi (ADC):
gcloud auth application-default login
Ikuti petunjuk untuk memilih Akun Google Anda untuk ADC. Untuk informasi selengkapnya, lihat Menyiapkan Kredensial Default Aplikasi.
Download
bmctl
terbaru seperti yang dijelaskan dalam download Google Distributed Cloud.Perbarui
anthosBareMetalVersion
di file konfigurasi cluster ke versi target upgrade.Versi target upgrade harus cocok dengan versi file
bmctl
yang didownload. Cuplikan file konfigurasi cluster berikut menunjukkan kolomanthosBareMetalVersion
yang diperbarui ke versi terbaru:--- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 spec: type: admin # Anthos cluster version. anthosBareMetalVersion: 1.30.300-gke.84
Gunakan perintah
bmctl upgrade cluster
untuk menyelesaikan upgrade:bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan diupgrade.ADMIN_KUBECONFIG
: jalur ke file kubeconfig cluster admin.
Operasi upgrade cluster menjalankan pemeriksaan pra-penerbangan untuk memvalidasi status cluster dan kesehatan node. Upgrade cluster tidak akan dilanjutkan jika pemeriksaan pra-penerbangan gagal. Untuk mengetahui informasi pemecahan masalah, lihat Memecahkan masalah penginstalan atau upgrade cluster.
Jika semua komponen cluster berhasil diupgrade, operasi upgrade cluster akan melakukan pemeriksaan status cluster. Langkah terakhir ini memverifikasi bahwa cluster dalam kondisi operasi yang baik. Jika cluster tidak lulus semua health check, cluster akan terus berjalan hingga lulus. Jika semua health check lulus, upgrade akan berhasil diselesaikan.
Untuk mengetahui informasi selengkapnya tentang urutan peristiwa untuk upgrade cluster, lihat Siklus proses dan tahap upgrade cluster.
kubectl
Untuk mengupgrade cluster dengan kubectl
, lakukan langkah-langkah berikut:
Edit file konfigurasi cluster untuk menetapkan
anthosBareMetalVersion
ke versi target upgrade.Untuk memulai upgrade, jalankan perintah berikut:
kubectl apply -f CLUSTER_CONFIG_PATH
Ganti
CLUSTER_CONFIG_PATH
dengan jalur file konfigurasi cluster yang diedit.Seperti proses upgrade dengan
bmctl
, pemeriksaan pra-penerbangan dijalankan sebagai bagian dari upgrade cluster untuk memvalidasi status cluster dan kesehatan node. Jika pemeriksaan pra-penerbangan gagal, upgrade cluster akan dihentikan. Untuk memecahkan masalah kegagalan, periksa cluster dan log terkait, karena tidak ada cluster bootstrap yang dibuat. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah penginstalan atau upgrade cluster.
Meskipun Anda tidak memerlukan bmctl
versi terbaru untuk mengupgrade cluster dengan
kubectl
, sebaiknya Anda
mendownload bmctl
terbaru. Anda memerlukan bmctl
untuk
melakukan tugas lain, seperti pemeriksaan kondisi dan pencadangan, untuk memastikan bahwa
cluster Anda tetap berfungsi dengan baik.
Menjeda dan melanjutkan upgrade
Fitur jeda dan lanjutkan upgrade memungkinkan Anda menjeda upgrade cluster sebelum upgrade selesai. Saat upgrade cluster dijeda, tidak ada upgrade node pekerja baru yang dipicu hingga upgrade dilanjutkan.
Fitur ini tersedia di (Pratinjau) untuk cluster dengan semua node panel kontrol pada versi minor 1.28 atau yang lebih baru. Fitur ini merupakan GA untuk cluster dengan semua node bidang kontrol pada versi minor 1.29 atau yang lebih tinggi.
Anda mungkin ingin menjeda upgrade karena alasan berikut:
Anda mendeteksi adanya masalah pada workload cluster selama upgrade dan ingin menjeda upgrade untuk memeriksa masalah tersebut
Anda memiliki masa pemeliharaan yang singkat, sehingga Anda ingin menjeda upgrade di antara masa pemeliharaan
Saat upgrade cluster dijeda, operasi berikut didukung:
- Menambahkan atau menghapus node
- Menambahkan atau menghapus node pool
- Meningkatkan jangkauan jaringan layanan
- Memulihkan cluster dari cadangan
Saat node baru ditambahkan saat upgrade dijeda, tugas pemeriksaan mesin tidak berjalan di node tersebut hingga upgrade dilanjutkan dan selesai.
Saat upgrade cluster dijeda, operasi cluster berikut tidak didukung:
Anda tidak dapat memulai upgrade cluster baru saat upgrade cluster aktif dijeda.
Mengaktifkan jeda dan melanjutkan upgrade
Google Distributed Cloud 1.30
Fitur jeda dan lanjutkan upgrade diaktifkan secara default untuk cluster dengan semua node control plane pada versi minor 1.29 atau yang lebih tinggi.
Google Distributed Cloud 1.29
Saat kemampuan jeda dan lanjutkan upgrade masih dalam Pratinjau, Anda dapat mengaktifkannya dengan anotasi di resource Cluster.
Untuk mengaktifkan jeda dan melanjutkan upgrade, gunakan langkah-langkah berikut:
Tambahkan anotasi
preview.baremetal.cluster.gke.io/upgrade-pause-and-resume
ke file konfigurasi cluster Anda:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: baremetal-demo namespace: cluster-baremetal-demo annotations: preview.baremetal.cluster.gke.io/upgrade-pause-and-resume spec: ...
Untuk menerapkan perubahan, update cluster Anda:
bmctl update CLUSTER_NAME
Kolom
nodePoolUpgradeStrategy.pause
dapat diubah. Anda dapat menambahkan dan memperbaruinya kapan saja.
Menjeda upgrade
Anda menjeda upgrade cluster dengan menetapkan nodePoolUpgradeStrategy.pause
ke true
dalam spesifikasi Cluster.
Untuk menjeda upgrade cluster yang aktif, gunakan langkah-langkah berikut:
Tambahkan
nodePoolUpgradeStrategy.pause
ke file konfigurasi cluster dan tetapkan ketrue
:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: baremetal-demo namespace: cluster-baremetal-demo ... spec: ... nodePoolUpgradeStrategy: pause: true ...
Jika menggunakan
bmctl
untuk memulai upgrade, Anda memerlukan jendela terminal baru untuk melakukan langkah berikutnya.Untuk menerapkan perubahan, update cluster Anda:
bmctl update CLUSTER_NAME
Operasi upgrade dijeda. Tidak ada upgrade node baru yang dipicu.
Jika Anda menggunakan
bmctl
untuk memulai upgrade dan berencana untuk jeda yang lama, tekan Control+C untuk keluar daribmctl
. Jika tidak, biarkanbmctl
tetap berjalan.CLI
bmctl
tidak mendeteksi perubahan pada status jeda upgrade, sehingga tidak keluar secara otomatis. Namun, saat Anda keluar daribmctl
,bmctl
akan berhenti mencatat progres upgrade ke file logcluster-upgrade-TIMESTAMP
di folder cluster di workstation admin dan ke Cloud Logging. Oleh karena itu, untuk jeda singkat, Anda dapat membiarkanbmctl
berjalan. Jika Anda membiarkanbmctl
berjalan dalam waktu yang lama saat upgrade dijeda, waktu tunggunya akan habis.
Melanjutkan upgrade yang dijeda
Anda dapat melanjutkan upgrade cluster yang dijeda dengan menetapkan
nodePoolUpgradeStrategy.pause
ke false
dalam spesifikasi Cluster atau menghapus
nodePoolUpgradeStrategy.pause
dari spesifikasi.
Untuk melanjutkan upgrade cluster yang telah dijeda, gunakan langkah-langkah berikut:
Tetapkan
nodePoolUpgradeStrategy.pause
ke file konfigurasi cluster dan tetapkan kefalse
:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: baremetal-demo namespace: cluster-baremetal-demo ... spec: ... nodePoolUpgradeStrategy: pause: false ...
Atau, Anda dapat menghapus kolom
pause
, karena kolom ini ditetapkan secara default kefalse
.Untuk menerapkan perubahan, update cluster Anda:
bmctl update CLUSTER_NAME
Operasi upgrade akan dilanjutkan dari saat upgrade dijeda.
Untuk memeriksa status upgrade, pertama-tama dapatkan daftar resource yang memiliki
anthosBareMetalVersion
distatus
-nya:kubectl get RESOURCE --kubeconfig ADMIN_KUBECONFIG --all_namespaces
Ganti kode berikut:
RESOURCE
: nama resource yang ingin Anda dapatkan. ResourceCluster
,NodePool
, danBareMetalMachine
semuanya berisi informasi statusanthosBareMetalVersion
.ADMIN_KUBECONFIG
: jalur file kubeconfig cluster admin.
Contoh berikut menunjukkan format respons untuk resource kustom
BareMetalMachine
. SetiapBareMetalMachine
sesuai dengan node cluster.NAMESPACE NAME CLUSTER READY INSTANCEID MACHINE ABM VERSION DESIRED ABM VERSION cluster-nuc-admin001 192.0.2.52 nuc-admin001 true baremetal://192.0.2.52 192.0.2.52 1.28.0 1.28.0 cluster-nuc-user001 192.0.2.53 nuc-user001 true baremetal://192.0.2.53 192.0.2.53 1.16.2 1.16.2 cluster-nuc-user001 192.0.2.54 nuc-user001 true baremetal://192.0.2.54 192.0.2.54 1.16.2 1.16.2
Untuk memeriksa
status.anthosBareMetalVersion
(versi resource saat ini), ambil detail untuk setiap resource:kubectl describe RESOURCE RESOURCE_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --namespace CLUSTER_NAMESPACE
Contoh berikut menunjukkan detail
BareMetalMachine
untuk node cluster dengan alamat IP192.0.2.53
:Name: 192.0.2.53 Namespace: cluster-nuc-user001 ... API Version: infrastructure.baremetal.cluster.gke.io/v1 Kind: BareMetalMachine Metadata: Creation Timestamp: 2023-09-22T17:52:09Z ... Spec: Address: 192.0.2.53 Anthos Bare Metal Version: 1.16.2 ... Status: Anthos Bare Metal Version: 1.16.2
Dalam contoh ini, node berada di Google Distributed Cloud versi 1.16.2.