Memecahkan masalah update Google Distributed Cloud

Anda dapat mendiagnosis dan menyelesaikan masalah yang terjadi selama update cluster di Google Distributed Cloud, seperti waktu tunggu operasi habis, perubahan konfigurasi yang ditolak atau diabaikan, dan kegagalan pemeriksaan preflight. Untuk mengetahui informasi selengkapnya tentang setelan yang dapat Anda update, lihat Hal yang dapat dan tidak dapat diupdate di cluster.

Waktu tunggu update

Waktu tunggu update dihitung secara dinamis berdasarkan resource yang akan diupdate. Namun, penghitungan ini tidak selalu akurat. Saat waktu update habis, error yang mirip dengan berikut ini akan ditampilkan:

  • Di cluster pengguna:

    Failed to update the cluster:...timed out waiting for the condition...
    
  • Di cluster admin:

    Failed to update the admin cluster:...timed out waiting for the condition...
    

Anda dapat mengabaikan error waktu tunggu semacam ini dengan aman, dan Anda dapat mencoba kembali perintah update. Jika Anda mencoba kembali perintah tersebut dan waktu habis lagi dengan pesan error yang sama, hubungi Cloud Customer Care.

Update berisi beberapa perubahan

Perintah gkectl update admin dan gkectl update cluster tidak memungkinkan Anda memperbarui beberapa setelan dalam satu perintah. Jika file konfigurasi Anda mengubah lebih dari satu setelan, perintah akan menampilkan error yang mirip dengan contoh berikut:

Update summary for cluster X:
    antiAffinityGroups: enabled to be set to true from false          &config.AAGSpec{
        -   Enabled: false,
        +   Enabled: true,
          }
    user master cpu to be set to 5 from 4          config.NodePoolProps{
            Role:        "master",
            MachineType: "standard-master",
        -   CPUs:        4,
        +   CPUs:        5,
            MemoryMB:    8192,
            Replicas:    3,
            ... // 2 identical fields
            Labels:         nil,
            NodeTaints:     nil,
        -   Vsphere:        nil,
        &config.NodePoolVsphereSpec{Datastore: "lifecycle-workloads1-datastore1"},
        +   Vsphere:        nil,
            BootDiskSizeGB: nil,
            OSImageType:    "",
            ... // 5 identical fields
          }

Exit with error:
Failed to update the cluster: the update contains multiple changes. Please
update only one feature at a time

Error ini dapat terjadi karena berbagai alasan, termasuk:

  • Kesalahan atau kesalahan konfigurasi.
  • Anda telah menjalankan gkectl upgrade sebelumnya dengan perbedaan konfigurasi, dan mengharapkan perubahan diterapkan.
    • gkectl upgrade tidak menerapkan perbedaan konfigurasi apa pun kecuali peningkatan versi.
  • Anda mengedit konfigurasi untuk update fitur lain sebelumnya, tetapi lupa menjalankan perintah gkectl update.

Jika Anda mengalami error ini, tinjau perbedaan dalam pesan error dan perbarui setelan yang diperlukan satu per satu dengan beberapa perintah gkectl update. Untuk membantu mengidentifikasi perubahan, Anda dapat menggunakan gkectl get-config untuk membuat file konfigurasi dari cluster dan melihat status serta konfigurasi yang ada.

Perubahan yang tidak didukung

Perintah gkectl update cluster dan gkectl update admin mengabaikan perubahan yang tidak didukung, dan menampilkan pesan error yang mirip dengan contoh berikut:

detected unsupported changes: (-current +desired)
    ...
-   AdvancedNetworking:       &true,
+   AdvancedNetworking:       &false,
    ...
, which will be ignored

Jika Anda mengalami error ini, tinjau perbedaan dalam pesan error dan lakukan tindakan berikut:

  • Jika perubahan tidak diinginkan, edit file YAML konfigurasi dan perbarui hanya dengan perubahan yang benar dan diinginkan.
    • Pada contoh sebelumnya, jika Anda tidak bermaksud menonaktifkan AdvancedNetworking, tetapkan advancedNetworking: true dalam file YAML konfigurasi.
  • Jika perubahan tersebut memang diinginkan, error ini menunjukkan bahwa perubahan tersebut tidak didukung. Lakukan salah satu tindakan berikut:

OS image tidak ada

Perintah gkectl update cluster dan gkectl update admin mungkin gagal dengan kegagalan pemeriksaan preflight OS Images yang mirip dengan contoh berikut:

  • Di cluster pengguna:

    - Validation Category: OS Images
        - [FAILURE] User cluster OS images exist: os images  [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    
  • Di cluster admin:

    - Validation Category: OS Images
        - [FAILURE] Admin cluster OS images exist: os images [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    

Error ini dapat terjadi jika image OS dihapus secara tidak terduga di lingkungan vCenter Anda, misalnya oleh tugas pembersihan berkala.

Untuk mengimpor ulang image OS, jalankan perintah gkectl prepare berikut:

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --skip-upload-container-images

Ruang kosong datastore tidak cukup untuk node pool baru

Saat Anda menambahkan node pool baru, perintah gkectl update cluster mungkin gagal dengan error pemeriksaan preflight VSphere Datastore FreeSpace yang mirip dengan contoh berikut:

  - [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
  FreeSpace, requires at least xxx  GB

Kegagalan ini menunjukkan bahwa datastore tidak memiliki cukup ruang kosong untuk node pool baru. Untuk menyediakan ruang yang cukup agar update berhasil, lakukan salah satu langkah berikut:

  • Mengosongkan ruang penyimpanan dari datastore.
  • Konfigurasikan datastore nodePools[].vsphere.datastore yang berbeda untuk node pool.

Update cluster pengguna gagal setelah Anda menambahkan alamat IP ke kumpulan alamat IP MetalLB

Pada cluster lanjutan, Anda tidak dapat mengubah alamat IP kumpulan alamat yang ada di loadBalancer.metalLB.addressPools. Di versi 1.33 dan yang lebih baru, semua cluster baru adalah cluster lanjutan. Jika Anda menambahkan alamat IP ke kumpulan alamat yang ada dan menjalankan gkectl update cluster, konfigurasi baru akan diterima dan disimpan, tetapi update akan gagal nanti, dan cluster pengguna tetap dalam status UPDATING. Update gagal dengan error yang mirip dengan berikut ini:

admission webhook "vcluster.kb.io" denied the request: Cluster.baremetal.cluster.gke.io "CLUSTER_NAME" is invalid: spec.loadBalancer.addressPools: Forbidden: Fields should be immutable. ... If you want to add new addresses for load balancer, please add a new address pool with new addresses instead of updating an existing address pool.

Untuk menambahkan alamat IP, tambahkan kumpulan alamat baru yang berisi alamat IP baru, dan biarkan kumpulan alamat yang ada tidak berubah. Untuk mengetahui informasi selengkapnya, lihat Mengupdate MetalLB.

Jika cluster pengguna Anda sudah macet dalam status UPDATING, jangan hapus alamat IP yang ditambahkan dari file konfigurasi cluster pengguna, karena penghapusan alamat IP dari kumpulan alamat yang ada juga akan ditolak. Sebagai gantinya, hubungi Cloud Customer Care untuk mendapatkan bantuan dalam memulihkan cluster.

Langkah berikutnya

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.

Anda juga dapat melihat Mendapatkan dukungan untuk mengetahui informasi selengkapnya tentang referensi dukungan, termasuk referensi berikut:

  • Persyaratan untuk membuka kasus dukungan.
  • Alat untuk membantu Anda memecahkan masalah, seperti log dan metrik.
  • Komponen, versi, dan fitur Google Distributed Cloud untuk VMware (khusus software) yang didukung.