Reset node dan hapus cluster

Saat cluster Google Distributed Cloud sedang dalam proses diinstal, biner dan systemd diinstal pada node yang menghosting cluster tersebut, dan layanan mulai memproses porta pada {i>node<i}.

Akan tetapi, jika instalasi cluster gagal, semua biner dan layanan ini perlu akan dihapus. Dengan kata lain, node harus direset atau dihapus total untuk mempersiapkan mereka untuk mencoba lagi menginstal cluster. Jika node tidak direset di dengan cara ini, upaya berikutnya untuk menginstal cluster gagal.

Halaman ini menjelaskan cara membersihkan operasi node tertentu dan cara menghapus cluster.

Halaman ini ditujukan untuk Admin, arsitek, serta Operator yang mengelola infrastruktur teknologi yang mendasarinya. Untuk mempelajari lebih lanjut tentang peran dan contoh tugas yang kami rujuk dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise yang umum.

Memilih metode penghapusan

Metode yang Anda gunakan untuk menghapus cluster bergantung pada:

  • Jenis cluster.
  • Jika Anda hanya ingin membersihkan node tertentu dan tidak menghapus seluruh cluster.
  • Cara cluster dibuat.

Google Distributed Cloud menyediakan metode penghapusan berikut:

  • Konsol Google Cloud atau Google Cloud CLI:

    • Gunakan konsol atau gcloud CLI untuk menghapus pengguna yang dikelola dengan GKE On-Prem API. Cluster pengguna dikelola oleh GKE On-Prem API jika salah satu kondisi berikut terpenuhi:

  • bmctl:

    • Gunakan bmctl reset nodes untuk mereset node tertentu.
    • Gunakan bmctl reset untuk menghapus jenis cluster berikut:

      • Cluster admin, hybrid, dan mandiri (disebut sebagai cluster yang dikelola sendiri). Termasuk cluster admin yang dikelola oleh GKE On-Prem API.
      • Cluster pengguna yang tidak dikelola oleh GKE On-Prem API.

    Jika Anda menggunakan bmctl untuk mereset node atau menghapus cluster, perintah tersebut mengharapkan file konfigurasi cluster berada di direktori kerja saat ini. Secara default, jalurnya terlihat seperti berikut:

    bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

    Jika Anda menggunakan flag --workspace-dir untuk menentukan direktori yang berbeda selama pembuatan cluster, Anda harus menggunakan flag tersebut untuk menentukan direktori kerja selama reset cluster.

  • kubectl:

    • Gunakan kubectl delete cluster untuk hanya menghapus cluster pengguna yang tidak dikelola oleh cluster GKE On-Prem API. Jangan jalankan perintah di jenis cluster tertentu.
    • Perlu diketahui bahwa jika menggunakan kubectl delete cluster, Anda juga harus menghapus tempat cluster berada setelah Anda menghapus cluster tersebut.

Setelah menghapus cluster, Anda dapat menginstal ulang cluster tersebut setelah melakukan hal yang diperlukan perubahan konfigurasi.

Hapus cluster yang dikelola sendiri

Untuk menghapus cluster admin, hybrid, atau mandiri, jalankan perintah berikut:

bmctl reset --cluster CLUSTER_NAME

Dalam perintah, ganti CLUSTER_NAME dengan nama cluster yang ingin Anda reset.

Output dari perintah bmctl cluster reset terlihat mirip dengan contoh ini:

Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log
[2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK
[2022-10-25 18:48:18+0000] Loading images... OK
[2022-10-25 18:48:18+0000] Waiting for reset jobs to finish...
[2022-10-25 18:48:28+0000] Operation reset in progress: 1       Completed: 0    Failed: 0
...
[2022-10-25 18:50:08+0000] Operation reset in progress: 0       Completed: 1    Failed: 0
[2022-10-25 18:50:08+0000] Flushing logs... OK
[2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345...
[2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345
[2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK

Selain menghapus cluster, perintah tersebut menghapus keanggotaan dari fleet.

Untuk cluster admin yang dikelola oleh GKE On-Prem API, Anda juga perlu menghapus resource API di Google Cloud. Jika tidak, cluster akan ditampilkan di Cluster GKE di Konsol Google Cloud. Gunakan perintah berikut untuk menghapus Resource GKE On-Prem API untuk cluster admin:

gcloud container bare-metal admin-clusters unenroll CLUSTER_NAME \
    --project=FLEET_HOST_PROJECT_ID \
    --location=REGION \
    --ignore-errors

Ganti kode berikut:

  • FLEET_HOST_PROJECT_ID: Project ID fleet dengan cluster admin yang menjadi anggotanya.

  • REGION: Region Google Cloud tempat GKE On-Prem API menyimpan metadata cluster.

Tanda --ignore-errors memastikan bahwa pembatalan pendaftaran admin bare metal resource cluster akan berhasil meskipun terjadi error selama pembatalan pendaftaran.

Setelah penghapusan cluster selesai, Anda dapat membuat cluster baru. Untuk mengetahui detailnya, lihat Ringkasan pembuatan cluster.

Hapus cluster pengguna

Jika cluster pengguna dikelola oleh GKE On-Prem API, hapus cluster menggunakan konsol atau gcloud CLI. Jika tidak, gunakan bmctl atau kubectl untuk menghapus cluster.

bmctl

Anda dapat menggunakan bmctl untuk menghapus cluster pengguna yang dibuat dengan bmctl atau kubectl, dan yang tidak terdaftar di GKE On-Prem API.

Jalankan perintah berikut untuk menghapus cluster pengguna dengan bmctl:

bmctl reset --cluster USER_CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

Pada perintah, ganti entri berikut dengan informasi yang khusus untuk lingkungan Anda:

  • USER_CLUSTER_NAME: nama cluster pengguna tempat Anda menghapus.

  • ADMIN_KUBECONFIG_PATH: jalur ke yang terkait file kubeconfig cluster admin. bmctl mendukung penggunaan --kubeconfig sebagai alias untuk flag --admin-kubeconfig.

Output dari perintah bmctl cluster reset terlihat mirip dengan contoh ini:

Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log
[2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK
[2022-10-25 18:48:18+0000] Loading images... OK
[2022-10-25 18:48:18+0000] Waiting for reset jobs to finish...
[2022-10-25 18:48:28+0000] Operation reset in progress: 1       Completed: 0    Failed: 0
...
[2022-10-25 18:50:08+0000] Operation reset in progress: 0       Completed: 1    Failed: 0
[2022-10-25 18:50:08+0000] Flushing logs... OK
[2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345...
[2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345
[2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK

kubectl

Anda dapat menggunakan kubectl untuk menghapus cluster pengguna yang dibuat dengan bmctl atau kubectl, dan yang tidak terdaftar di GKE On-Prem API. Untuk menggunakan kubectl untuk menghapus cluster pengguna, Anda harus menghapus objek cluster terlebih dahulu, kemudian namespace-nya. Jika tidak, tugas untuk mengatur ulang komputer tidak bisa dibuat, dan proses penghapusan mungkin terhambat tanpa batas waktu.

Untuk menghapus cluster pengguna dengan kubectl:

  1. Jalankan perintah berikut untuk menghapus objek cluster:

    kubectl delete cluster USER_CLUSTER_NAME -n USER_CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH
    

    Pada perintah, ganti entri berikut dengan informasi yang khusus untuk lingkungan Anda:

    • USER_CLUSTER_NAME: nama cluster pengguna tempat Anda menghapus.

    • USER_CLUSTER_NAMESPACE: namespace untuk . Secara default, namespace cluster untuk Google Distributed Cloud adalah nama cluster yang diawali dengan cluster-. Misalnya, jika beri nama cluster Anda test, namespace memiliki nama seperti cluster-test.

    • ADMIN_KUBECONFIG_PATH: jalur ke yang terkait file kubeconfig cluster admin.

  2. Setelah cluster berhasil dihapus, jalankan perintah berikut untuk hapus namespace:

    kubectl delete namespace USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
    

Konsol

Jika cluster pengguna dikelola oleh GKE On-Prem API, lakukan langkah-langkah berikut untuk menghapus cluster:

  1. Di konsol, buka Ringkasan cluster Google Kubernetes Engine kami.

    Buka cluster GKE

  2. Pilih project Google Cloud tempat cluster pengguna berada.

  3. Pada daftar cluster, klik cluster yang ingin Anda hapus.

  4. Pada daftar cluster, cari cluster yang ingin Anda hapus. Jika Jenis bersifat eksternal, ini menunjukkan bahwa cluster tersebut dibuat menggunakan bmctl dan tidak terdaftar di GKE On-Prem API. Dalam kasus ini, ikuti langkah-langkah di tab bmctl atau kubectl untuk menghapus gugus ini.

    Jika ikon di kolom Status menunjukkan masalah, ikuti langkah-langkah berikut di tab gcloud CLI untuk menghapus cluster. Anda perlu tambahkan flag --ignore-errors ke perintah hapus.

  5. Klik nama cluster yang ingin Anda hapus.

  6. Di panel Details, di dekat bagian atas jendela, klik Hapus.

  7. Saat diminta untuk mengonfirmasi, masukkan nama cluster, lalu klik Hapus.

gcloud CLI

Jika cluster pengguna dikelola oleh GKE On-Prem API, lakukan langkah-langkah berikut untuk menghapus cluster di komputer yang memiliki gcloud CLI yang diinstal:

  1. Login dengan Akun Google Anda:

    gcloud auth login
    
  2. Perbarui komponen:

    gcloud components update
    
  3. Dapatkan daftar cluster untuk membantu memastikan bahwa Anda menentukan nama cluster dalam perintah delete:

    gcloud container bare-metal clusters list \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION
    

    Ganti kode berikut:

    • FLEET_HOST_PROJECT_ID: ID project yang tempat cluster dibuat.

    • LOCATION: Lokasi Google Cloud yang terkait dengan cluster pengguna.

    Outputnya mirip dengan hal berikut ini:

    NAME                      LOCATION    VERSION         ADMIN_CLUSTER            STATE
    example-user-cluster-1a   us-west1    1.30.0-gke.1930          example-admin-cluster-1  RUNNING
    
  4. Jalankan perintah berikut untuk menghapus cluster:

    gcloud container bare-metal clusters delete USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION \
      --force \
      --allow-missing
    

    Ganti kode berikut:

    • USER_CLUSTER_NAME: Nama cluster pengguna yang ingin dihapus.

    • FLEET_HOST_PROJECT_ID: ID project yang tempat cluster dibuat.

    • LOCATION: Lokasi Google Cloud yang terkait dengan cluster pengguna.

    Tanda --force memungkinkan Anda menghapus cluster yang memiliki kumpulan node. Tanpa flag --force, Anda harus menghapus kumpulan node terlebih dahulu, lalu hapus cluster tersebut.

    Flag --allow-missing adalah flag Google API standar. Saat Anda menyertakan tanda ini, perintah akan menampilkan keberhasilan jika cluster tidak ditemukan.

    Jika perintah menampilkan error yang berisi teks failed connecting to the cluster's control plane, ini menunjukkan masalah konektivitas baik dengan cluster admin, Hubungkan Agen, atau lingkungan lokal. Untuk memecahkan masalah terkait Hubungkan Agen, lihat Mengumpulkan log Agen Connect.

    • Misalnya jika menurut Anda masalah konektivitas bersifat sementara, karena masalah jaringan, tunggu dan coba lagi perintahnya.

    • Jika Anda mengetahui bahwa cluster admin telah dihapus, atau jika node tersebut komputer untuk admin atau cluster pengguna telah dimatikan atau diambil secara offline, sertakan flag --ignore-errors dan coba lagi perintah tersebut.

      Anda juga perlu menyertakan --ignore-errors jika cluster tersebut dihapus menggunakan bmctl atau kubectl, yang keluar dari GKE On-Prem API resource di Google Cloud. Salah satu gejala dari ini adalah gugus masih ditampilkan di Cluster GKE konsol dalam keadaan tidak responsif.

Untuk informasi tentang tanda lain, lihat dokumentasi Referensi gcloud CLI.

Mereset node cluster tertentu

Anda mungkin ingin mereset node tertentu pada cluster jika, misalnya, admin cluster telah dihapus, tetapi cluster pengguna dikelola oleh cluster admin tersebut tetap ada. Dalam hal ini, klaster pengguna secara keseluruhan tidak dapat dihapus karena cluster admin telah dihapus. Akibatnya, node cluster pengguna harus direset satu per satu.

Untuk mereset node, Anda memerlukan akun layanan dengan akses baca ke Penampung Google {i>Registry<i} (GCR). Perintah bmctl mengharapkan file kunci JSON untuk layanan ini akun sebagai argumen. Untuk mereset setiap node cluster, jalankan metode perintah berikut:

bmctl reset nodes --addresses NODE_1_IP_ADDRESS,NODE_2_IP_ADDRESS \
    --ssh-private-key-path SSH_KEY_PATH \
    --gcr-service-account-key SERVICE_ACCOUNT_KEY_PATH \
    --login-user root

Pada perintah, ganti entri berikut dengan informasi yang khusus untuk lingkungan Anda:

  • NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS: dipisahkan koma daftar alamat IP {i>node<i} yang ingin Anda hapus.

  • SSH_KEY_PATH: jalur ke kunci pribadi SSH. Inilah kuncinya yang akan digunakan untuk membuat koneksi SSH dengan {i>node<i} selama {i>reset<i}.

  • SERVICE_ACCOUNT_KEY_PATH: jalur ke file JSON yang yang berisi kunci akun layanan. Kunci ini memberi bmctl izin untuk mengambil image aplikasi dari Google Container Registry. Anda dapat membuat service kunci akun menggunakan konsol atau gcloud CLI. Untuk mengetahui detailnya, lihat Membuat dan mengelola kunci akun layanan. Cara lain untuk membuat file kunci akun layanan adalah jika Anda menjalankan Perintah create config dengan flag --create-service-accounts. Sebagai detail tentang perintah itu, lihat Buat dan admin konfigurasi cluster dengan bmctl.

Detail penghapusan cluster

Selama penghapusan, pendaftaran keanggotaan fleet cluster, dan penyimpanan pemasangan, dan data dari anthos-system StorageClass akan dihapus.

Untuk semua node, antarmuka tunnel yang digunakan untuk jaringan cluster akan dihapus, dan direktori berikut akan dihapus:

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

Untuk node load balancer:

  • Layanan keepalived dan haproxy dihapus.
  • File konfigurasi untuk keepalived dan haproxy dihapus.