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 batasan ini saat men-deploy atau mengubah aplikasi, serta bagi Admin dan 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 Google Cloud konten, 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, mengupdate, mengubah ukuran, atau menghapus node pool.
  • 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 ini:

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 dan memblokir operasi baru Anda agar tidak 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. Umumnya, GKE hanya mengizinkan satu operasi di tingkat cluster atau satu operasi per node pool untuk berjalan secara serentak. GKE juga melakukan tindakan otomatisnya sendiri, seperti upgrade bidang kontrol, yang dihitung dalam batas ini dan dapat memblokir Anda untuk sementara agar tidak memulai tugas baru.

Menyelesaikan error operasi serentak

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

  1. Jika Anda tidak mengetahui nama operasi yang memblokir, 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"
      }
      

      Dalam 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 yang memblokir 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