Memecahkan masalah operasi serentak


Saat Anda mencoba mengubah cluster Google Kubernetes Engine (GKE) atau node pool-nya, tindakan Anda mungkin diblokir sementara karena operasi lain sedang berjalan. Masalah ini dapat menunda update penting, administrasi cluster, dan deployment aplikasi.

Gunakan halaman ini untuk mempelajari cara mengidentifikasi operasi yang sedang berjalan. Memahami operasi aktif membantu Anda memperkirakan penundaan dan menentukan kapan harus mencoba lagi tindakan Anda.

Informasi ini penting bagi developer Aplikasi, yang mungkin mengalami batas ini saat men-deploy atau mengubah aplikasi, dan bagi admin serta operator Platform, yang mengelola keseluruhan siklus proses cluster, upgrade, dan perlu memecahkan masalah tugas administratif yang diblokir. Untuk mengetahui informasi selengkapnya tentang peran umum dan contoh tugas yang kami referensikan dalam kontenGoogle Cloud , lihat Peran dan tugas pengguna GKE umum.

Memahami error operasi serentak

Di GKE, operasi cluster adalah tindakan yang mengubah status bidang kontrol cluster atau node pool-nya. Operasi ini dikelola oleh GKE dan dapat dimulai oleh Anda atau oleh GKE untuk tujuan pemeliharaan. Operasi cluster umum mencakup hal berikut:

  • Membuat atau menghapus cluster.
  • Mengupgrade versi bidang kontrol cluster.
  • Membuat, memperbarui, mengubah ukuran, atau menghapus kumpulan node.
  • Mengubah setelan tingkat cluster, seperti mengaktifkan atau menonaktifkan fitur.
  • Perbaikan bidang kontrol otomatis yang dimulai oleh GKE.

Saat melakukan operasi pada cluster, Anda mungkin melihat pesan error yang mirip dengan berikut:

Cluster is running incompatible operation OPERATION_NAME
Cluster is currently being created, deleted, updated or repaired and cannot be updated
Operation OPERATION_NAME is currently ACTIONING cluster CLUSTER_NAME. Please wait and try again once it is done

Error ini dapat mencakup nilai berikut:

  • OPERATION_NAME: ID unik untuk operasi yang sudah berjalan di cluster Anda. Gunakan nama ini untuk melacak status operasi yang sudah ada sebelumnya ini yang menghalangi operasi baru Anda untuk dimulai.
  • ACTIONING: tindakan yang sedang dilakukan pada cluster. Misalnya Creating atau Updating.
  • CLUSTER_NAME: nama cluster yang menjadi target operasi.

Error ini terjadi karena GKE membatasi jumlah operasi yang dapat berjalan secara bersamaan untuk mencegah konflik. Secara umum, GKE hanya mengizinkan satu operasi di tingkat cluster atau satu operasi per node pool untuk dijalankan secara bersamaan. GKE juga melakukan tindakan otomatisnya sendiri, seperti upgrade bidang kontrol, yang dihitung dalam batas ini dan dapat memblokir Anda untuk sementara waktu agar tidak memulai tugas baru.

Mengatasi error operasi serentak

Jika Anda menerima error yang menunjukkan bahwa operasi lain sedang berlangsung, identifikasi tugas yang sedang berjalan dan tunggu hingga selesai:

  1. Jika Anda tidak mengetahui nama operasi pemblokiran, cantumkan semua operasi yang sedang berlangsung dan tertunda untuk cluster Anda:

     gcloud container operations list \
         --location=LOCATION \
         --filter '(targetLink~/clusters/CLUSTER_NAME$ OR targetLink~/clusters/CLUSTER_NAME/) AND status!=DONE' \
         --format json
    

    Ganti kode berikut:

    • LOCATION: region atau zona Compute Engine (misalnya, us-central1 atau us-central1-a) untuk cluster, bergantung pada apakah cluster Anda bersifat regional atau zona.
    • CLUSTER_NAME: nama cluster dengan operasi yang gagal.

      Outputnya mirip dengan hal berikut ini:

      {
         "name": "operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff",
         "operationType": "UPDATE_CLUSTER",
         "selfLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff",
         "startTime": "2001-01-01T00:00:00.000000000Z",
         "status": "RUNNING",
         "targetLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/nodePools/NODE_POOL_NAME",
         "zone": "LOCATION"
      }
      

      Pada output, tinjau kolom name untuk setiap operasi. Nilai ini adalah nama operasi yang memblokir operasi baru Anda agar tidak dimulai. Anda memerlukan nilai ini untuk langkah berikutnya.

      Untuk mengetahui informasi selengkapnya tentang kolom lain dalam output, lihat dokumentasi API untuk projects.locations.operations.

  2. Tunggu hingga operasi selesai:

    gcloud container operations wait OPERATION_NAME \
        --location=LOCATION
    

    Ganti OPERATION_NAME dengan nama operasi pemblokiran dari pesan error atau langkah sebelumnya.

    Perintah ini secara aktif memantau operasi dan keluar saat operasi selesai.

  3. Setelah operasi pemblokiran memiliki status DONE, coba lagi operasi yang menyebabkan error.

Langkah berikutnya