Memastikan resource untuk upgrade node

Halaman ini menjelaskan cara memastikan Anda dapat menggunakan strategi upgrade nodeuntuk membuat perubahan pada node cluster. Sebaiknya verifikasi apakah project Anda memiliki cukup resource untuk mengupdate node pool Google Kubernetes Engine (GKE) Standard, bergantung pada strategi yang Anda pilih.

Resource yang diperlukan untuk upgrade node

Upgrade node mungkin mengharuskan GKE membuat node tambahan untuk sementara, bergantung pada strategi dan konfigurasi node yang Anda pilih. Oleh karena itu, GKE mungkin memerlukan resource tambahan untuk upgrade node pool.

Semua node yang dibuat GKE, termasuk node yang digunakan untuk upgrade, tunduk pada kuota resource project Anda, ketersediaan resource, dan kapasitas pemesaan, untuk node pool dengan afinitas pemesanan tertentu.

Sebaiknya verifikasi apakah Anda memiliki resource yang memadai jika Anda memiliki persyaratan jenis mesin dan batasan kapasitas khusus. Anda mungkin perlu mengonfigurasi strategi yang memerlukan lebih sedikit resource untuk memastikan Anda dapat mengupgrade node, atau mengambil tindakan lain seperti membuat pemesanan. Untuk mempelajari lebih lanjut, lihat Upgrade di lingkungan dengan resource terbatas.

Resource yang diperlukan untuk berbagai strategi upgrade

Bagian berikut menjelaskan resource tambahan yang diperlukan untuk menggunakan strategi upgrade yang tersedia. Jika Anda mengalami masalah upgrade, periksa operasi upgrade dan ikuti petunjuk untuk mengatasi error upgrade.

Resource untuk upgrade lonjakan

Upgrade lonjakan adalah strategi upgrade node default. Karena lonjakan upgrade membuat VM tambahan—jika maxSurge ditetapkan ke lebih dari nol—sebelum menguras dan menghapus node lama, upgrade dapat gagal jika project Anda tidak memiliki cukup resource.

Jika resource yang tersedia kurang dari jumlah node yang ditentukan di maxSurge, jumlah upgrade paralel akan kurang dari maxSurge ditambah maxUnavailable. Jika Anda tidak memiliki kapasitas tambahan, lihat cara mengupgrade di lingkungan dengan resource terbatas.

Tabel berikut menjelaskan contoh untuk menunjukkan berbagai perilaku upgrade:

Setelan Upgrade Jumlah node tambahan yang diizinkan oleh resource yang tersedia Hasil
maxSurge: 5 maxUnavailable: 0 5 Mengupgrade 5 node secara paralel.
maxSurge: 5 maxUnavailable: 0 2 Hanya mengupgrade 2 node secara paralel.
maxSurge: 5 maxUnavailable: 0 0 Upgrade gagal, karena node tambahan tidak dapat dimunculkan dan memulai ulang node yang sudah ada dilarang oleh setelan upgrade. GKE terus mencoba mengupgrade secara otomatis hingga operasi berhasil.
maxSurge: 5 maxUnavailable: 1 5 Mengupgrade 6 node secara paralel, sekaligus memastikan node pool hanya kehilangan satu node karena upgrade.
maxSurge: 5 maxUnavailable: 1 2 Hanya mengupgrade 3 node secara paralel, sekaligus memastikan node pool tidak kekurangan lebih dari satu node karena upgrade.
maxSurge: 5 maxUnavailable: 1 0 Hanya mengupgrade 1 node pada satu waktu dengan membuat ulang setiap node menggunakan metode upgrade berkelanjutan.

Resource untuk upgrade blue-green

Upgrade blue-green menggandakan jumlah node dalam node pool untuk sementara, yang berarti node pool Anda memerlukan dua kali lipat resource untuk sementara. Jika Anda tidak memiliki cukup resource dan mengonfigurasi node pool untuk menggunakan strategi ini, konfigurasikan upgrade lonjakan sebagai gantinya jika Anda perlu membatalkan pemblokiran upgrade. Saat mengonfigurasi strategi ini, pastikan Anda mengonfigurasi parameter upgrade lonjakan yang akan berfungsi dengan resource yang tersedia untuk node pool. Untuk mempelajari lebih lanjut, lihat bagian sebelumnya, Resource untuk upgrade lonjakan.

Memeriksa operasi upgrade untuk mengetahui kegagalan terkait resource

Anda dapat menemukan informasi selengkapnya tentang operasi upgrade serta informasi tentang kegagalan upgrade dengan memeriksa objek operasi upgrade Anda. Untuk menampilkan daftar objek operasi upgrade, jalankan perintah berikut:

gcloud container operations list \
    --filter="STATUS=DONE AND TYPE=UPGRADE_NODES AND targetLink:https://container.googleapis.com/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/clusters/CLUSTER_NAME"

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud Anda.
  • COMPUTE_ZONE: zona Compute Engine untuk cluster Anda.
  • CLUSTER_NAME: nama cluster Anda.

Jika upgrade terbaru Anda gagal karena kuota resource tidak mencukupi, outputnya akan seperti berikut ini:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Insufficient quota to satisfy the request: waiting on IG: instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt errors: [QUOTA_EXCEEDED] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 50.0 in region us-central1.\
...

Jika alasannya adalah karena pemesanan yang tidak memadai, output-nya akan seperti berikut:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Reservation does not have enough resources for the request: waiting on IG:\
  \ instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt error: [CONDITION_NOT_MET] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Specified reservation 'foo' does not have available resources\
  \ for the request."

Jika alasannya adalah karena kapasitas yang tidak memadai, Anda akan melihat resource availability error messages.

Mengatasi error upgrade

Jika upgrade gagal karena resource tidak mencukupi, coba langkah-langkah berikut:

  1. Pertimbangkan strategi upgrade yang tidak terlalu intensif resource. Jika Anda menggunakan upgrade blue-green, pertimbangkan upgrade lonjakan.
  2. Periksa apakah ada resource Compute Engine di project Anda yang menggunakan resource dan tidak lagi diperlukan. Jika Anda menemukannya, hapus dan coba upgrade lagi.
  3. Jika dua langkah pertama tidak dapat membatalkan pemblokiran upgrade, minta kuota peningkatan atau tingkatkan ukuran pemesanan tertentu.
  4. Jika Anda beroperasi di lingkungan dengan resource terbatas, misalnya, dengan persyaratan jenis mesin dan batasan kapasitas khusus, lihat bagian berikutnya untuk mengetahui langkah-langkah membatalkan pemblokiran upgrade.

Upgrade di lingkungan dengan resource terbatas

Jika Google Cloud memiliki kapasitas terbatas untuk resource tertentu (misalnya, GPU, atau TPU) yang digunakan node pool Anda, sebaiknya gunakan pemesanan untuk memastikan Anda memiliki resource yang memadai. Jika Anda tidak memiliki resource yang memadai, Anda mungkin tidak dapat mengupgrade node hingga Anda dapat mengakses lebih banyak kapasitas, jika Anda tidak memiliki pemesanan untuk kapasitas yang ada.

Jika Anda tidak dapat memperoleh kapasitas tambahan, Anda tidak dapat menggunakan upgrade blue-green. Untuk upgrade lonjakan, maxSurge memerlukan node tambahan. Dengan, maxUnavailable, jika kapasitasnya bukan dari pemesanan, GKE akan melepaskan kapasitas node untuk sementara saat mengupgradenya, yang berarti jika kapasitasnya terbatas, Anda berisiko kehilangan kapasitas.

Gunakan panduan berikut, bergantung pada apakah Anda memiliki pemesanan untuk node pool yang perlu diupgrade.

Upgrade dengan kapasitas terbatas tanpa pemesanan

Jika Anda tidak memiliki pemesanan untuk node pool, sebaiknya buat pemesanan. Namun, jika Anda tidak dapat melakukannya, sebaiknya gunakan upgrade lonjakan dengan konfigurasi default dari maxSurge=1;maxUnavailable=0. Dengan konfigurasi ini, Anda tidak berisiko kehilangan kapasitas yang ada. Namun, upgrade lonjakan hanya membuat node lonjakan jika kapasitasnya tersedia. Jadi, jika tidak ada kapasitas yang tersedia, upgrade mungkin memerlukan waktu lebih lama dan node pool Anda dapat tetap dalam status yang diupgrade sebagian hingga kapasitas diamankan untuk mengupgrade setiap node.

Sebaiknya buat pemesanan atau tingkatkan ukuran pemesanan yang ada.

Upgrade dengan kapasitas terbatas dengan pemesanan

Jika Anda memiliki pemesanan untuk node pool, Anda dapat mengupgrade node pool di lingkungan dengan kapasitas terbatas, dengan menyesuaikan setelan upgrade lonjakan untuk kecepatan dan keandalan.

Jika Anda memiliki kapasitas tambahan dalam pemesanan, Anda dapat menggunakan maxSurge untuk membuat node lonjakan. Tetapkan maxSurge bergantung pada jumlah node yang ingin Anda ganggu dalam satu waktu, dan seberapa banyak kapasitas tambahan yang Anda miliki. Misalnya, tetapkan maxSurge=1;maxUnavailable=0 jika Anda hanya ingin mengganggu satu node dalam satu waktu, atau jika Anda hanya memiliki kapasitas untuk membuat satu node tambahan.

Jika Anda tidak memiliki kapasitas tambahan, Anda dapat menggunakan maxUnavailable dengan konfigurasi seperti maxSurge=0;maxUnavailable=1, karena kapasitasnya dicadangkan. Konfigurasi ini mengganggu satu node dalam satu waktu, membuat ulang node untuk mengupdatenya. Sebaiknya gunakan pendekatan ini untuk melakukan pemeliharaan host untuk node yang menjalankan workload pelatihan dan inferensi.

Langkah berikutnya