Pemeriksaan awal

Pemeriksaan preflight adalah tindakan pencegahan untuk membantu mengidentifikasi masalah sebelum Anda memulai operasi cluster besar, seperti membuat atau mengupgrade cluster. Ketika pemeriksaan ini berjalan secara otomatis sebelum operasi, tidak ada perubahan yang dilakukan pada cluster Anda kecuali jika pemeriksaan preflight semuanya lulus. Anda juga dapat menjalankan pemeriksaan preflight sesuai permintaan.

Dokumen ini menjelaskan setiap pemeriksaan, situasi apa yang dijalankan secara otomatis, bagaimana dan kapan harus menjalankannya secara manual, dan cara menafsirkan hasilnya.

Di GDCV untuk Bare Metal, Anda dapat menjalankan pemeriksaan preflight untuk berbagai situasi:

  • GDCV untuk Bare Metal menjalankan pemeriksaan preflight saat Anda membuat atau mengupgrade resource cluster dan node pool dengan bmctl. Jika pemeriksaan gagal, tidak ada perubahan yang dilakukan. Anda juga dapat mengabaikan pemeriksaan ini, atau menjalankannya secara eksplisit.

  • GDCV untuk Bare Metal juga menjalankan pemeriksaan preflight internal saat admin atau cluster hybrid membuat atau memperbarui resource Kubernetes pada cluster pengguna. Pemeriksaan dijalankan sebelum perubahan diterapkan ke cluster pengguna yang terpengaruh. Jika pemeriksaan gagal, tidak ada perubahan yang dilakukan.

PreflightCheck resource kustom

Saat pemeriksaan preflight berjalan, GDCV untuk Bare Metal akan membuat resource kustom PreflightCheck. Resource kustom PreflightCheck bersifat persisten dan menyediakan data aktivitas dan hasil pemeriksaan preflight.

Untuk mengambil PreflightCheck resource kustom:

  1. Dapatkan daftar pemeriksaan preflight yang telah berjalan untuk cluster tertentu:

    kubectl get preflightchecks --kubeconfig ADMIN_KUBECONFIG --namespace CLUSTER_NAMESPACE
    

    Ganti kode berikut:

    • ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin.
    • CLUSTER_NAMESPACE: namespace cluster.

    Responsnya mencantumkan resource menurut namespace. Anda dapat menjalankan kubectl get preflightchecks di semua namespace untuk mendapatkan daftar yang komprehensif. Untuk setiap resource, respons menunjukkan usia resource dan apakah pemeriksaan preflight lulus atau tidak. Contoh respons berikut menunjukkan resource PreflightCheck untuk namespace cluster-test-admin001.

    NAMESPACE              NAME                                PASS    AGE
    cluster-test-admin001   test-admin001                      true    52d
    cluster-test-admin001   test-admin001jkm4q                 true    52d
    cluster-test-admin001   test-admin001k79t7                 true    6d20h
    cluster-test-admin001   upgrade-cluster-20231106-222746    true    6d20h
    
  2. Ambil detail untuk resource kustom PreflightCheck tertentu:

    kubectl describe preflightchecks --kubeconfig ADMIN_KUBECONFIG --namespace CLUSTER_NAMESPACE
    

    Ganti kode berikut:

    • ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin.
    • CLUSTER_NAMESPACE: namespace cluster.

    Contoh respons perintah berikut menunjukkan resource PreflightCheck untuk pemeriksaan preflight berhasil yang berjalan sebagai bagian dari pembuatan cluster:

    Name:         create-cluster-20230922-175006
    Namespace:    cluster-test-user001
    Labels:       <none>
    Annotations:  <none>
    API Version:  baremetal.cluster.gke.io/v1
    Kind:         PreflightCheck
    Metadata:
      Creation Timestamp:  2023-09-22T17:50:11Z
      Generation:          1
      Resource Version:    6502800
      UID:                 917daf64-963d-44b4-a1f9-c54972a39191
    Spec:
      Check Image Version:  latest
      Config YAML:          ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-test-user
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: test-user001
      namespace: cluster-test-user001
    spec:
      type: user
      profile: default
      anthosBareMetalVersion: 1.16.0
      gkeConnect:
        projectID: clusters-project
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: 192.0.2.53
      ...
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-test-user001
    spec:
      clusterName: test-user001
      nodes:
      - address: 192.0.2.54
      ...
    Status:
      Checks:
        192.0.2.53:
          Job UID:  d0b5dc1f-9d39-4cc8-b3d2-0841212f7f8c
          Message:
          Pass:     true
        192.0.2.53-gcp:
          Job UID:  b4d96ce5-0d4e-4e3c-97db-6317e0c15fc8
          Message:
          Pass:     true
        192.0.2.54:
          Job UID:  b67cf195-3951-46ad-b91c-0d79025cfc0a
          Message:
          Pass:     true
        192.0.2.54-gcp:
          Job UID:  aed509e2-4bf7-44c4-bfa0-8147ef8ea74e
          Message:
          Pass:     true
        Gcp:
          Job UID:  ac479ac4-e1c4-4681-9f2b-5773069bf6ae
          Message:
          Pass:     true
        Node - Network:
          Job UID:  8a57c4ee-ad17-4560-8809-b117c871ad5d
          Message:
          Pass:     true
        Pod - Cidr:
          Message:
          Pass:     true
      Cluster Spec:
        Anthos Bare Metal Version:  1.16.0
        Bypass Preflight Check:     false
        Cluster Network:
          Bundled Ingress:  true
          Pods:
            Cidr Blocks:
              10.0.0.0/16
          Services:
            Cidr Blocks:
              10.96.0.0/20
      ...
      Completion Time:                 2023-09-22T17:51:22Z
      Conditions:
        Last Transition Time:  2023-10-02T23:59:06Z
        Observed Generation:   1
        Reason:                Reconciling
        Status:                True
        Type:                  Reconciling
      Node Pool Specs:
        node-pool-1:
          Cluster Name:  test-user001
          Nodes:
            Address:         192.0.2.54
        ...
      Pass:                  true
      Start Time:            2023-09-22T17:50:32Z
    Events:                  <none>
    

    Dalam resource kustom PreflightCheck sebelumnya, bagian Status berisi informasi berikut:

    • Bagian Checks mencantumkan setiap pemeriksaan preflight yang dijalankan dan apakah lulus atau tidak. Dalam contoh ini, pemeriksaan berikut berjalan:
      • 192.0.2.53 dan 192.0.2.54: pemeriksaan node (konfigurasi OS, resource, dan setelan software) untuk mesin dengan alamat IP 192.0.2.53 dan 192.0.2.54.
      • 192.0.2.53-gpc dan 192.0.2.54-gcp: Pemeriksaan konektivitas Google Cloud (Container Registry dan akses Google API) untuk mesin dengan alamat IP 192.0.2.53 dan 192.0.2.54.
      • Gcp: Pemeriksaan konektivitas Google Cloud untuk cluster.
      • Node - Network: Pemeriksaan jaringan (konektivitas, operasi etcd, akses VIP, dan binding port) untuk cluster.
      • Pod - Cidr: Alamat IP Pod memeriksa alamat yang tumpang-tindih untuk cluster.
    • Bagian Cluster Spec menampilkan konfigurasi cluster.
    • Kolom Pass menampilkan true, yang menunjukkan bahwa pemeriksaan preflight diluluskan secara kolektif.

Log pemeriksaan preflight

Saat pemeriksaan preflight dijalankan sebagai hasil dari perintah bmctl, seperti bmctl check preflight, GDCV untuk Bare Metal akan membuat file log. Berikut bagian yang dihasilkan dan lokasinya:

  • Log pemeriksaan preflight dibuat dalam direktori dengan pola penamaan berikut preflight-TIMESTAMP.

  • Direktori preflight ini dibuat di direktori log untuk cluster di ruang kerja bmctl. Secara default, jalur direktori log adalah bmctl-workspace/CLUSTER_NAME/log.

  • Log preflight terdiri dari file berikut:

    • File log untuk pemeriksaan mesin node, satu file untuk setiap node cluster. File log ini diberi nama menggunakan alamat IP node. Misalnya, nama file mungkin 192.0.2.53.

    • File log untuk pemeriksaan akses Google Cloud, satu file untuk setiap node cluster. File log ini diberi nama menggunakan alamat IP node. Misalnya, nama file dapat berupa 192.0.2.53-gcp.

    • File log untuk pemeriksaan akses Google Cloud cluster, yang bernama gcp.

    • File log pemeriksaan jaringan node, yang bernama node-network.

Jika pemeriksaan preflight gagal, file log ini dapat membantu Anda mengidentifikasi dan memecahkan masalah.

Pemeriksaan preflight untuk pembuatan cluster

Saat Anda membuat cluster, GDCV untuk Bare Metal secara otomatis menjalankan pemeriksaan preflight sebelum perubahan dibuat.

Apa yang diperiksa?

Pemeriksaan preflight untuk pemeriksaan penginstalan, periksa hal-hal berikut:

  • Pemeriksaan mesin node:

    • Mesin cluster menggunakan sistem operasi (OS) yang didukung.

    • Versi OS didukung.

    • menggunakan versi kernel yang didukung.

    • Untuk Ubuntu, Uncomplicated Firewall (UFW) dinonaktifkan.

    • Untuk Ubuntu, pengelola paket apt dapat dioperasikan dan paket yang diperlukan tersedia.

    • Untuk Red Hat Enterprise Linux, pengelola paket dnf dapat dioperasikan dan paket yang diperlukan tersedia.

    • Untuk Red Hat Enterprise Linux, Podman belum diinstal.

    • Mesin node memenuhi persyaratan CPU minimum.

    • Mesin node memenuhi persyaratan memori minimum.

    • Mesin node memenuhi persyaratan penyimpanan disk minimum.

    • Sinkronisasi waktu dikonfigurasi pada mesin node.

    • kubelet aktif dan berjalan di mesin node.

    • containerd aktif dan berjalan di mesin node.

    • Rute default untuk mengarahkan paket ke gateway default tersedia di node.

    • Domain Name System (DNS) berfungsi dengan benar. Jika cluster dikonfigurasi untuk berjalan di belakang proxy, pemeriksaan ini akan dilewati.

    • CIDR pod tidak tumpang tindih dengan alamat IP mesin node.

    • Jika cluster dikonfigurasi untuk menggunakan pencerminan registry, pencerminan registry dapat dijangkau.

  • Google Cloud akan memeriksa setiap node dan cluster:

    • Container Registry, gcr.io, keterjangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan pencerminan registry, pemeriksaan ini akan dilewati.

    • Google API dapat dijangkau.

  • Pemeriksaan jaringan node (bervariasi berdasarkan konfigurasi load balancing):

    • VIP untuk server Kubernetes API dapat diakses.

    • VIP load balancer dapat diakses.

    • Node dapat berkomunikasi pada port yang diperlukan.

    • Instance peristiwa etcd disediakan dan persyaratan port terpenuhi.

Setelah semua pemeriksaan lulus, GDCV untuk Bare Metal akan membuat cluster. Untuk mengetahui informasi selengkapnya tentang persyaratan membuat cluster, lihat Ringkasan prasyarat penginstalan.

Menjalankan pemeriksaan preflight on demand untuk pembuatan cluster

Anda juga dapat menjalankan pemeriksaan preflight secara independen, sebelum membuat cluster. Hal ini dapat bermanfaat karena operasi cluster besar, seperti pembuatan cluster, memakan waktu. Mengidentifikasi dan menyelesaikan masalah secara terpisah sebelum memulai operasi cluster besar dapat membantu penjadwalan.

Cluster yang dikelola sendiri

  • Perintah berikut memvalidasi file konfigurasi cluster yang ditentukan, tetapi tidak mencoba membuat cluster itu sendiri:

    bmctl check config --cluster CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster yang terkait dengan file konfigurasi yang Anda periksa.

  • Perintah ini memeriksa apakah mesin dan jaringan siap untuk pembuatan cluster:

    bmctl check preflight --cluster CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster yang Anda periksa.

Cluster pengguna

  • Perintah berikut memvalidasi file konfigurasi cluster yang ditentukan, tetapi tidak mencoba membuat cluster itu sendiri:

    bmctl check config --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster pengguna yang Anda periksa.
    • ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin yang terkait.
  • Perintah berikut memeriksa apakah mesin dan jaringan siap untuk pembuatan cluster:

    bmctl check preflight --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
    

bmctl mendukung penggunaan --kubeconfig sebagai alias untuk tanda --admin-kubeconfig.

Pemeriksaan preflight untuk upgrade cluster

Saat Anda mengupgrade cluster, GDCV untuk Bare Metal akan otomatis menjalankan pemeriksaan preflight sebelum perubahan apa pun dilakukan.

Apa yang diperiksa?

Pemeriksaan preflight untuk upgrade cluster memeriksa hal berikut:

  • Pemeriksaan mesin node:

    • Mesin cluster menggunakan sistem operasi (OS) yang didukung.

    • Versi OS didukung.

    • menggunakan versi kernel yang didukung.

    • Untuk Ubuntu, Uncomplicated Firewall (UFW) dinonaktifkan.

    • Mesin node memenuhi persyaratan CPU minimum.

    • Mesin node memiliki lebih dari 20% resource CPU yang tersedia.

    • Mesin node memenuhi persyaratan memori minimum.

    • Mesin node memenuhi persyaratan penyimpanan disk minimum.

    • Sinkronisasi waktu dikonfigurasi pada mesin node.

    • Rute default untuk mengarahkan paket ke gateway default tersedia di node.

    • Domain Name System (DNS) berfungsi dengan benar. Jika cluster dikonfigurasi untuk berjalan di belakang proxy, pemeriksaan ini akan dilewati.

    • Jika cluster dikonfigurasi untuk menggunakan pencerminan registry, pencerminan registry dapat dijangkau.

    * Tidak ada node bidang kontrol atau node load balancer yang berada dalam mode pemeliharaan.

  • Google Cloud akan memeriksa setiap node dan cluster:

    • Container Registry, gcr.io, keterjangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan pencerminan registry, pemeriksaan ini akan dilewati.

    • Google API dapat dijangkau.

  • Pemeriksaan mesin:

    • kubelet aktif dan berjalan di mesin node.

    • containerd aktif dan berjalan di mesin node.

    • Status endpoint respons Antarmuka Jaringan Container (CNI) responsif.

    • CIDR pod tidak tumpang tindih dengan alamat IP mesin node.

  • Pemeriksaan jaringan node (bervariasi berdasarkan konfigurasi load balancing):

    • VIP untuk server Kubernetes API dapat diakses.

    • VIP load balancer dapat diakses.

    • Node dapat berkomunikasi pada port yang diperlukan.

    • Instance peristiwa etcd disediakan dan persyaratan port terpenuhi.

Jika semua pemeriksaan lulus, GDCV untuk Bare Metal akan mengupgrade cluster. Untuk mengetahui informasi selengkapnya tentang mengupgrade cluster, lihat Praktik terbaik untuk upgrade cluster GDCV untuk upgrade cluster Bare Metal serta Siklus proses dan tahap upgrade cluster.

Menjalankan pemeriksaan preflight on demand untuk upgrade cluster

Perintah bmctl check preflight memungkinkan Anda menjalankan pemeriksaan preflight sebelum mengupgrade cluster. Anda dapat memeriksa apakah cluster siap untuk diupgrade dengan menjalankan perintah pemeriksaan preflight berikut sebelum memulai upgrade:

  1. Update versi cluster (anthosBareMetalVersion) di file konfigurasi cluster.

  2. Gunakan perintah berikut untuk memeriksa apakah cluster siap untuk diupgrade dan menjalankan pemeriksaan preflight:

    bmctl check preflight --cluster CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster yang akan diupgrade.
    • ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin.

    Jika Anda membuat pemeriksaan preflight dengan perintah ini untuk menguji upgrade cluster, resource kustom PreflightCheck akan dibuat di cluster admin.

Pemeriksaan preflight internal pada cluster yang ada

GDCV untuk Bare Metal melakukan pemeriksaan preflight internal secara otomatis saat Anda menerapkan resource Kubernetes ke cluster yang ada. Jika ada pemeriksaan yang gagal, GDCV untuk Bare Metal tidak akan mengubah node terkait kecuali jika Anda mengabaikan pemeriksaan secara eksplisit.

Abaikan pemeriksaan preflight saat menerapkan resource Kubernetes

Untuk mengabaikan pemeriksaan preflight internal saat menerapkan resource ke cluster yang ada, Anda perlu menetapkan kolom BypassPreflightCheck ke true dalam file konfigurasi cluster.

Berikut adalah bagian dari file konfigurasi cluster yang menampilkan kolom bypassPreflightCheck yang ditetapkan ke true:

apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user1
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user1
  namespace: cluster-user1
spec:
  type: user
  bypassPreflightCheck: true
  # Anthos cluster version.
  anthosBareMetalVersion: 1.16.7
...

Jalankan pemeriksaan preflight dan health check terbaru

Saat menggunakan bmctl untuk menjalankan preflight atau health check, Anda dapat menambahkan tanda --check-image-version latest ke perintah untuk melakukan pemeriksaan dari versi patch GDCV untuk Bare Metal terbaru. Hal ini dapat membantu Anda mengidentifikasi masalah umum tanpa membuat atau mengupgrade cluster terlebih dahulu.

  • Untuk menggunakan daftar pemeriksaan terbaru guna menentukan apakah mesin dan jaringan Anda siap untuk pembuatan cluster:

    bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest
    

    Ganti CLUSTER_NAME dengan nama cluster yang Anda periksa.

Anda juga dapat melakukan health check terbaru pada cluster live untuk menentukan apakah cluster tersebut responsif.

  • Untuk melakukan health check terbaru pada cluster live:

    bmctl check cluster --cluster CLUSTER_NAME --check-image-version latest
    

    Ganti CLUSTER_NAME dengan nama cluster yang Anda periksa.

Mengabaikan hasil pemeriksaan preflight otomatis

Jika menjalankan pemeriksaan preflight sesuai permintaan sebelum membuat atau mengupgrade cluster, Anda dapat mengabaikan pemeriksaan preflight otomatis. Untuk mengabaikan pemeriksaan preflight otomatis, gunakan flag --force opsional saat menjalankan bmctl create cluster atau bmctl upgrade cluster.

Langkah selanjutnya