Memecahkan masalah update Google Distributed Cloud

Jika Anda mengalami masalah saat mengupdate Google Distributed Cloud, lihat bagian berikut dapat membantu Anda memecahkan masalah tersebut. Untuk informasi selengkapnya tentang setelan dapat diperbarui, lihat Hal yang dapat dan tidak dapat diperbarui dalam cluster.

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.

Waktu tunggu update

Waktu tunggu update dihitung secara dinamis berdasarkan resource yang akan diupdate. Namun, penghitungannya tidak selalu akurat. Saat waktu pembaruan habis, pesan 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...
    

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

Update berisi beberapa perubahan

Perintah gkectl update admin dan gkectl update cluster tidak mengizinkan memperbarui beberapa pengaturan dalam satu perintah. Ketika konfigurasi berisi {i>diff <i}dengan beberapa setelan diubah, dan error yang mirip dengan contoh berikut dikembalikan:

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 sebelumnya menjalankan gkectl upgrade dengan perbedaan konfigurasi, dan mengharapkan perubahan yang akan diterapkan.
    • gkectl upgrade tidak menerapkan perbedaan konfigurasi apa pun kecuali versi tempel.
  • Anda sebelumnya mengedit konfigurasi untuk pembaruan fitur lainnya, tetapi lupa melakukannya jalankan perintah gkectl update.

Jika Anda melihat perilaku 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 serta melihat status dan 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 yang berikut contoh:

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

Jika Anda melihat perilaku ini, tinjau perbedaannya dalam pesan {i>error<i} dan lakukan tindakan berikut:

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

OS image tidak ada

Perintah gkectl update cluster dan gkectl update admin mungkin gagal dengan OS Images kegagalan pemeriksaan preflight 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.
    

Kesalahan ini dapat terjadi jika OS image tiba-tiba hilang di vCenter, seperti pekerjaan pembersihan berkala.

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

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 kumpulan node baru

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

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

Kegagalan ini menunjukkan bahwa {i>datastore<i} tidak memiliki cukup ruang untuk menjalankan kumpulan node baru. Gunakan salah satu opsi berikut yang membantu menyediakan ruang agar operasi berhasil:

  • Kosongkan ruang penyimpanan dari datastore.
  • Mengonfigurasi datastore nodePools[].vsphere.datastore yang berbeda untuk node kolam renang.

Langkah selanjutnya

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.