Melihat peristiwa autoscaler cluster


Halaman ini menjelaskan keputusan yang dibuat autoscaler cluster Google Kubernetes Engine (GKE) tentang penskalaan otomatis.

Autoscaler cluster GKE menghasilkan peristiwa visibilitas, yang tersedia sebagai entri log di Cloud Logging.

Peristiwa yang dijelaskan dalam panduan ini terpisah dari peristiwa Kubernetes yang dihasilkan oleh autoscaler cluster.

Persyaratan ketersediaan

Kemampuan untuk melihat peristiwa yang dicatat ke dalam log untuk autoscaler cluster tersedia di versi cluster berikut:

Jenis peristiwa Versi cluster
status, scaleUp, scaleDown, eventResult 1.15.4-gke.7 dan yang lebih baru
nodePoolCreated, nodePoolDeleted. 1.15.4-gke.18 dan yang lebih baru
noScaleUp 1.16.6-gke.3 dan yang lebih baru
noScaleDown 1.16.8-gke.2 dan yang lebih baru

Untuk melihat peristiwa penskala otomatis, Anda harus mengaktifkan Cloud Logging di cluster Anda. Peristiwa tidak akan dihasilkan jika Logging dinonaktifkan.

Melihat peristiwa

Peristiwa visibilitas untuk autoscaler cluster disimpan dalam log Cloud Logging, dalam project yang sama dengan tempat cluster GKE Anda berada. Anda juga dapat melihat peristiwa ini dari notifikasi di halaman Google Kubernetes Engine di Konsol Google Cloud.

Melihat log aktivitas visibilitas

Untuk melihat log, lakukan yang berikut ini:

  1. Di Konsol Google Cloud, buka halaman Kubernetes Clusters.

    Buka Kubernetes Clusters

  2. Pilih nama cluster untuk melihat halaman Cluster Details-nya.

  3. Di halaman Cluster Details, klik tab Logs.

  4. Di tab Logs, klik tab Autoscaler Logs untuk melihat log.

  5. (Opsional) Untuk menerapkan filter lanjutan guna mempersempit hasil, klik tombol dengan tanda panah di sisi kanan halaman untuk melihat log di Logs Explorer.

Melihat notifikasi peristiwa visibilitas

Untuk melihat notifikasi peristiwa visibilitas di halaman Google Kubernetes Engine, lakukan yang berikut ini:

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud:

    Buka Google Kubernetes Engine

  2. Periksa kolom Notifications untuk cluster tertentu guna menemukan notifikasi yang terkait dengan penskalaan.

  3. Klik notifikasi untuk informasi detail, tindakan yang disarankan, dan mengakses log untuk peristiwa ini.

Jenis peristiwa

Semua peristiwa yang dicatat ke dalam log memiliki format JSON dan dapat ditemukan di kolom jsonPayload pada entri log. Semua stempel waktu dalam peristiwa adalah stempel waktu detik UNIX.

Berikut adalah ringkasan jenis peristiwa yang dihasilkan oleh autoscaler cluster:

Jenis peristiwa Deskripsi
status Terjadi secara berkala dan mendeskripsikan ukuran semua node pool yang diskalakan otomatis dan ukuran target dari semua node pool yang diskalakan otomatis seperti yang diamati oleh autoscaler cluster.
scaleUp Terjadi saat autoscaler cluster meningkatkan skala cluster.
scaleDown Terjadi saat autoscaler cluster menurunkan skala cluster.
eventResult Terjadi saat peristiwa scaleUp atau scaleDown diselesaikan secara berhasil atau tidak.
nodePoolCreated Terjadi saat autoscaler cluster dengan penyediaan otomatis node aktif membuat node pool baru.
nodePoolDeleted Terjadi saat autoscaler cluster dengan penyediaan otomatis node aktif menghapus node pool.
noScaleUp Terjadi saat ada Pod yang tidak dapat dijadwalkan di cluster, dan autoscaler cluster tidak dapat meningkatkan skala cluster untuk mengakomodasi Pod.
noScaleDown Terjadi saat ada node yang diblokir agar tidak dihapus oleh autoscaler cluster.

Peristiwa status

Peristiwa status dihasilkan secara berkala, dan menjelaskan ukuran sebenarnya dari semua node pool yang diskalakan otomatis dan ukuran target dari semua node pool yang diskalakan otomatis seperti yang diamati oleh autoscaler cluster.

Contoh

Contoh log berikut menampilkan peristiwa status:

{
  "status": {
    "autoscaledNodesCount": 4,
    "autoscaledNodesTarget": 4,
    "measureTime": "1582898536"
  }
}

Peristiwa ScaleUp

Peristiwa scaleUp dihasilkan saat autoscaler cluster meningkatkan skala cluster. Autoscaler meningkatkan ukuran node pool cluster dengan meningkatkan skala Grup Instance Terkelola (MIG) dasar untuk node pool. Untuk mempelajari lebih lanjut cara kerja peningkatan skala, baca Bagaimana cara kerja peningkatan skala? di FAQ Autoscaler Cluster Kubernetes.

Peristiwa ini berisi informasi peningkatan skala MIG, jumlah node, dan Pod yang tidak dapat dijadwalkan yang memicu peristiwa.

Daftar Pod pemicu terpotong menjadi 50 entri arbitrer. Jumlah sebenarnya dari Pod pemicu dapat ditemukan di kolom triggeringPodsTotalCount.

Contoh

Contoh log berikut menampilkan peristiwa scaleUp:

{
  "decision": {
    "decideTime": "1582124907",
    "eventId": "ed5cb16d-b06f-457c-a46d-f75dcca1f1ee",
    "scaleUp": {
      "increasedMigs": [
        {
          "mig": {
            "name": "test-cluster-default-pool-a0c72690-grp",
            "nodepool": "default-pool",
            "zone": "us-central1-c"
          },
          "requestedNodes": 1
        }
      ],
      "triggeringPods": [
        {
          "controller": {
            "apiVersion": "apps/v1",
            "kind": "ReplicaSet",
            "name": "test-85958b848b"
          },
          "name": "test-85958b848b-ptc7n",
          "namespace": "default"
        }
      ],
      "triggeringPodsTotalCount": 1
    }
  }
}

Peristiwa ScaleDown

Peristiwa scaleDown dihasilkan saat autoscaler cluster menurunkan skala cluster. Untuk mempelajari lebih lanjut cara kerja penurunan skala, baca Bagaimana cara kerja penurunan skala? di FAQ Autoscaler Cluster Kubernetes.

Kolom cpuRatio dan memRatio menjelaskan pemakaian CPU dan memori node, dalam bentuk persentase. Pemakaian ini adalah jumlah permintaan Pod dibagi dengan node yang dapat dialokasikan, bukan pemakaian riil.

Daftar Pod yang dikeluarkan terpotong menjadi 50 entri arbitrer. Jumlah sebenarnya Pod yang dikeluarkan dapat ditemukan di kolom evictedPodsTotalCount.

Gunakan kueri berikut untuk memverifikasi apakah autoscaler cluster telah menurunkan skala node

resource.type="k8s_cluster" \
resource.labels.location=COMPUTE_REGION \
resource.labels.cluster_name=CLUSTER_NAME \
log_id("container.googleapis.com/cluster-autoscaler-visibility") \
( "decision" NOT "noDecisionStatus" )

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster.

  • COMPUTE_REGION: region Compute Engine cluster, seperti us-central1.

Contoh

Contoh log berikut menampilkan peristiwa scaleDown:

{
  "decision": {
    "decideTime": "1580594665",
    "eventId": "340dac18-8152-46ff-b79a-747f70854c81",
    "scaleDown": {
      "nodesToBeRemoved": [
        {
          "evictedPods": [
            {
              "controller": {
                "apiVersion": "apps/v1",
                "kind": "ReplicaSet",
                "name": "kube-dns-5c44c7b6b6"
              },
              "name": "kube-dns-5c44c7b6b6-xvpbk"
            }
          ],
          "evictedPodsTotalCount": 1,
          "node": {
            "cpuRatio": 23,
            "memRatio": 5,
            "mig": {
              "name": "test-cluster-default-pool-c47ef39f-grp",
              "nodepool": "default-pool",
              "zone": "us-central1-f"
            },
            "name": "test-cluster-default-pool-c47ef39f-p395"
          }
        }
      ]
    }
  }
}

Anda juga dapat melihat peristiwa scale-down pada node tanpa workload yang berjalan (biasanya hanya pod sistem yang dibuat oleh DaemonSets). Gunakan kueri berikut untuk melihat log aktivitas:

resource.type="k8s_cluster" \
resource.labels.project_id=PROJECT_ID \
resource.labels.location=COMPUTE_REGION \
resource.labels.cluster_name=CLUSTER_NAME \
severity>=DEFAULT \
logName="projects/PROJECT_ID/logs/events" \
("Scale-down: removing empty node")

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.

  • CLUSTER_NAME: nama cluster.

  • COMPUTE_REGION: region Compute Engine cluster, seperti us-central1.

Peristiwa EventResult

Peristiwa eventResult dihasilkan saat peristiwa scaleUp atau scaleDown diselesaikan secara berhasil atau tidak. Peristiwa ini berisi daftar ID peristiwa (dari kolom eventId dalam peristiwa scaleUp atau scaleDown), bersama dengan pesan error. Pesan error kosong menunjukkan bahwa peristiwa berhasil diselesaikan. Daftar peristiwa eventResult digabungkan di kolom results.

Untuk mendiagnosis error, lihat bagian Error ScaleUp dan Error ScaleDown.

Contoh

Contoh log berikut menampilkan peristiwa eventResult:

{
  "resultInfo": {
    "measureTime": "1582878896",
    "results": [
      {
        "eventId": "2fca91cd-7345-47fc-9770-838e05e28b17"
      },
      {
        "errorMsg": {
          "messageId": "scale.down.error.failed.to.delete.node.min.size.reached",
          "parameters": [
            "test-cluster-default-pool-5c90f485-nk80"
          ]
        },
        "eventId": "ea2e964c-49b8-4cd7-8fa9-fefb0827f9a6"
      }
    ]
  }
}

Peristiwa NodePoolCreated

Peristiwa nodePoolCreated dihasilkan saat autoscaler cluster dengan penyediaan otomatis node aktif membuat node pool baru. Peristiwa ini berisi nama node pool yang dibuat dan daftar MIG yang mendasarinya. Jika node pool dibuat karena peristiwa scaleUp, eventId dari peristiwa scaleUp yang sesuai akan disertakan dalam kolom triggeringScaleUpId.

Contoh

Contoh log berikut menampilkan peristiwa nodePoolCreated:

{
  "decision": {
    "decideTime": "1585838544",
    "eventId": "822d272c-f4f3-44cf-9326-9cad79c58718",
    "nodePoolCreated": {
      "nodePools": [
        {
          "migs": [
            {
              "name": "test-cluster-nap-n1-standard--b4fcc348-grp",
              "nodepool": "nap-n1-standard-1-1kwag2qv",
              "zone": "us-central1-f"
            },
            {
              "name": "test-cluster-nap-n1-standard--jfla8215-grp",
              "nodepool": "nap-n1-standard-1-1kwag2qv",
              "zone": "us-central1-c"
            }
          ],
          "name": "nap-n1-standard-1-1kwag2qv"
        }
      ],
      "triggeringScaleUpId": "d25e0e6e-25e3-4755-98eb-49b38e54a728"
    }
  }
}

Peristiwa NodePoolDeleted

Peristiwa nodePoolDeleted dihasilkan saat autoscaler cluster dengan penyediaan otomatis node aktif menghapus node pool.

Contoh

Contoh log berikut menampilkan peristiwa nodePoolDeleted:

{
  "decision": {
    "decideTime": "1585830461",
    "eventId": "68b0d1c7-b684-4542-bc19-f030922fb820",
    "nodePoolDeleted": {
      "nodePoolNames": [
        "nap-n1-highcpu-8-ydj4ewil"
      ]
    }
  }
}

Peristiwa NoScaleUp

Peristiwa noScaleUp akan dihasilkan secara berkala saat ada Pod yang tidak dapat dijadwalkan di cluster dan autoscaler cluster tidak dapat meningkatkan skala cluster untuk mengakomodasi Pod.

  • Peristiwa noScaleUp adalah upaya terbaik. Artinya, peristiwa ini tidak mencakup semua kemungkinan alasan mengapa autoscaler cluster tidak dapat meningkatkan skalanya.
  • Peristiwa noScaleUp di-throttle untuk membatasi volume log yang dihasilkan. Setiap alasan persisten hanya dihasilkan setiap beberapa menit.
  • Semua alasan dapat dibagi secara acak menjadi beberapa peristiwa. Misalnya, tidak ada jaminan bahwa semua alasan MIG ditolak untuk satu grup Pod akan muncul dalam peristiwa yang sama.
  • Daftar grup Pod yang tidak tertangani terpotong menjadi 50 entri arbitrer. Jumlah sebenarnya grup Pod yang tidak tertangani dapat ditemukan di kolom unhandledPodGroupsTotalCount.

Kolom alasan

Kolom berikut membantu menjelaskan alasan tidak adanya peningkatan skala:

  • reason: Memberikan alasan global mengapa autoscaler cluster dicegah untuk meningkatkan skala. Lihat bagian alasan tingkat atas NoScaleUp untuk detailnya.
  • napFailureReason: Memberikan alasan global yang mencegah autoscaler cluster menyediakan node pool tambahan (misalnya, penyediaan otomatis node dinonaktifkan). Lihat bagian alasan penyediaan otomatis node tingkat atas NoScaleUp untuk detailnya.
  • skippedMigs[].reason: Memberikan informasi tentang alasan MIG tertentu dilewati. Autoscaler cluster melewati beberapa MIG dari pertimbangan untuk setiap Pod selama upaya peningkatan skala (misalnya, karena penambahan node lain akan melampaui batas resource seluruh cluster). Lihat bagian Alasan tingkat MIG NoScaleUp untuk detailnya.
  • unhandledPodGroups: Berisi informasi tentang alasan grup Pod tertentu yang tidak dapat dijadwalkan tidak memicu peningkatan skala. Pod dikelompokkan berdasarkan pengontrol langsungnya. Pod tanpa pengontrol akan berada dalam grup itu sendiri. Setiap grup Pod berisi contoh Pod arbitrer dan jumlah Pod dalam grup, serta alasan berikut:
    • napFailureReasons: Alasan autoscaler cluster tidak dapat menyediakan node pool baru untuk mengakomodasi grup Pod ini (misalnya, Pod memiliki batasan afinitas). Lihat bagian alasan penyediaan otomatis node tingkat Pod NoScaleUp untuk detailnya
    • rejectedMigs[].reason: Alasan per-MIG kenapa autoscaler cluster tidak dapat meningkatkan ukuran MIG tertentu untuk mengakomodasi grup Pod ini (misalnya, node MIG terlalu kecil untuk Pod). Lihat bagian Alasan tingkat MIG NoScaleUp untuk detailnya.

Contoh

Contoh log berikut menampilkan peristiwa noScaleUp:

{
  "noDecisionStatus": {
    "measureTime": "1582523362",
    "noScaleUp": {
      "skippedMigs": [
        {
          "mig": {
            "name": "test-cluster-nap-n1-highmem-4-fbdca585-grp",
            "nodepool": "nap-n1-highmem-4-1cywzhvf",
            "zone": "us-central1-f"
          },
          "reason": {
            "messageId": "no.scale.up.mig.skipped",
            "parameters": [
              "max cluster cpu limit reached"
            ]
          }
        }
      ],
      "unhandledPodGroups": [
        {
          "napFailureReasons": [
            {
              "messageId": "no.scale.up.nap.pod.zonal.resources.exceeded",
              "parameters": [
                "us-central1-f"
              ]
            }
          ],
          "podGroup": {
            "samplePod": {
              "controller": {
                "apiVersion": "v1",
                "kind": "ReplicationController",
                "name": "memory-reservation2"
              },
              "name": "memory-reservation2-6zg8m",
              "namespace": "autoscaling-1661"
            },
            "totalPodCount": 1
          },
          "rejectedMigs": [
            {
              "mig": {
                "name": "test-cluster-default-pool-b1808ff9-grp",
                "nodepool": "default-pool",
                "zone": "us-central1-f"
              },
              "reason": {
                "messageId": "no.scale.up.mig.failing.predicate",
                "parameters": [
                  "NodeResourcesFit",
                  "Insufficient memory"
                ]
              }
            }
          ]
        }
      ],
      "unhandledPodGroupsTotalCount": 1
    }
  }
}

Peristiwa NoScaleDown

Peristiwa noScaleDown akan dihasilkan secara berkala saat ada node yang diblokir agar tidak dihapus oleh autoscaler cluster.

  • Node yang tidak dapat dihapus karena pemakaiannya yang tinggi tidak disertakan dalam peristiwa noScaleDown.
  • Peristiwa NoScaleDown adalah upaya terbaik. Artinya, peristiwa ini tidak mencakup semua kemungkinan alasan mengapa autoscaler cluster tidak dapat menurunkan skalanya.
  • Peristiwa NoScaleDown di-throttle untuk membatasi volume log yang dihasilkan. Setiap alasan persisten hanya akan dihasilkan setiap beberapa menit.
  • Daftar node dipotong menjadi 50 entri arbitrer. Jumlah node sebenarnya dapat ditemukan di kolom nodesTotalCount.

Kolom alasan

Kolom berikut membantu menjelaskan alasan tidak adanya penurunan skala:

  • reason: Memberikan alasan global mengapa autoscaler cluster dicegah untuk menurunkan skala (misalnya, periode backoff setelah peningkatan skala baru-baru ini). Lihat bagian alasan tingkat atas NoScaleDown untuk detailnya.
  • nodes[].reason: Memberikan alasan per node mengapa autoscaler cluster dicegah menghapus node tertentu (misalnya, tidak ada tempat untuk memindahkan Pod node). Lihat bagian alasan tingkat node NoScaleDown untuk detailnya.

Contoh

Contoh log berikut menampilkan peristiwa noScaleDown:

{
  "noDecisionStatus": {
    "measureTime": "1582858723",
    "noScaleDown": {
      "nodes": [
        {
          "node": {
            "cpuRatio": 42,
            "mig": {
              "name": "test-cluster-default-pool-f74c1617-grp",
              "nodepool": "default-pool",
              "zone": "us-central1-c"
            },
            "name": "test-cluster-default-pool-f74c1617-fbhk"
          },
          "reason": {
            "messageId": "no.scale.down.node.no.place.to.move.pods"
          }
        }
      ],
      "nodesTotalCount": 1,
      "reason": {
        "messageId": "no.scale.down.in.backoff"
      }
    }
  }
}

Memecahkan masalah penskalaan

Bagian ini memberikan panduan tentang cara memecahkan masalah peristiwa penskalaan.

Tidak ada peningkatan skala pada cluster

Skenario: Saya membuat Pod di cluster tetapi tetap dalam status Tertunda selama satu jam terakhir. Autoscaler cluster tidak menyediakan node baru untuk mengakomodasi Pod.

Solusi:

  1. Di Logs Explorer, temukan detail logging untuk peristiwa penskala otomatis cluster, seperti yang dijelaskan di bagian Melihat peristiwa.
  2. Telusuri peristiwa scaleUp yang berisi Pod yang diinginkan di kolom triggeringPods. Anda dapat memfilter entri log, termasuk memfilter berdasarkan nilai kolom JSON tertentu. Pelajari lebih lanjut di Kueri log lanjutan.

    1. Cari EventResult yang berisi eventId yang sama dengan peristiwa scaleUp.
    2. Lihat kolom errorMsg dan lihat daftar kemungkinan pesan error scaleUp.

    Contoh error ScaleUp: Untuk peristiwa scaleUp, Anda menemukan error tersebut adalah "scale.up.error.quota.exceeded", yang menunjukkan bahwa "Peristiwa scaleUp gagal karena beberapa MIG tidak dapat ditingkatkan karena melebihi kuota". Untuk mengatasi masalah ini, tinjau setelan kuota Anda dan tingkatkan setelan yang hampir terlampaui. Autoscaler cluster menambahkan node baru dan Pod dijadwalkan.

  3. Jika tidak, telusuri peristiwa noScaleUp dan tinjau kolom berikut:

    • unhandledPodGroups: berisi informasi tentang Pod (atau pengontrol Pod).
    • reason: memberikan alasan global yang menunjukkan peningkatan skala dapat diblokir.
    • skippedMigs: memberikan alasan mengapa beberapa MIG dapat dilewati.
  4. Lihat bagian berikut yang berisi kemungkinan alasan untuk peristiwa noScaleUp:

    Contoh NoScaleUp: Anda menemukan peristiwa noScaleUp untuk Pod, dan semua MIG di kolom rejectedMigs memiliki ID pesan "no.scale.up.mig.failing.predicate" alasan yang sama dengan dua parameter:"NodeAffinity" dan "node(s) did not match node selector". Setelah melihat daftar pesan error, Anda mendapati bahwa Anda "tidak dapat meningkatkan MIG karena predikat gagal untuknya"; parameter adalah nama predikat yang gagal dan alasan kegagalannya. Untuk mengatasi masalah ini, tinjau spesifikasi Pod, dan temukan bahwa pemilih node tidak cocok dengan MIG mana pun di cluster. Anda hapus pemilih itu dari spesifikasi Pod dan buat ulang Pod-nya. Autoscaler cluster menambahkan node baru dan Pod dijadwalkan.

  5. Jika tidak ada peristiwa noScaleUp, gunakan metode proses debug lain untuk menyelesaikan masalah tersebut.

Tidak ada penurunan skala pada cluster

Skenario: Ada node di cluster yang hanya menggunakan 10% CPU dan memorinya selama beberapa hari terakhir. Meskipun pemakaiannya rendah, autoscaler cluster tidak menghapus node seperti yang diharapkan.

Solusi:

  1. Di Logs Explorer, temukan detail logging untuk peristiwa penskala otomatis cluster, seperti yang dijelaskan di bagian Melihat peristiwa.
  2. Telusuri peristiwa scaleDown yang berisi node yang diinginkan di kolom nodesToBeRemoved. Anda dapat memfilter entri log, termasuk memfilter berdasarkan nilai kolom JSON tertentu. Pelajari lebih lanjut di Kueri log lanjutan.
    1. Dalam peristiwa scaleDown, telusuri peristiwa EventResult yang berisi eventId terkait.
    2. Lihat kolom errorMsg dan lihat daftar kemungkinan pesan error scaleDown.
  3. Jika tidak, telusuri peristiwa noScaleDown yang memiliki node yang diinginkan di kolom nodes. Tinjau kolom reason untuk mengetahui alasan global apa pun yang menunjukkan bahwa penurunan skala dapat diblokir.
  4. Lihat bagian berikut yang berisi kemungkinan alasan untuk peristiwa noScaleDown:

    Contoh NoScaleDown: Anda menemukan peristiwa noScaleDown yang berisi alasan per node untuk node Anda. ID pesannya adalah "no.scale.down.node.pod.has.local.storage" dan terdapat satu parameter: "test-single-pod". Setelah melihat daftar pesan error, Anda akan mengetahui bahwa hal ini menunjukkan bahwa "Pod memblokir penurunan skala karena meminta penyimpanan lokal". Anda membaca FAQ Autoscaler Cluster Kubernetes dan mencari tahu bahwa solusinya adalah menambahkan anotasi "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" ke Pod. Setelah menerapkan anotasi, autoscaler cluster akan menurunkan skala cluster dengan benar.

  5. Jika tidak ada peristiwa noScaleDown, gunakan metode proses debug lain untuk menyelesaikan masalah tersebut.

Pesan

Peristiwa yang dihasilkan oleh autoscaler cluster menggunakan pesan berparameter untuk memberikan penjelasan tentang peristiwa tersebut. Kolom parameters tersedia dengan kolom messageId, seperti dalam contoh log untuk peristiwa NoScaleUp.

Bagian ini memberikan deskripsi untuk berbagai messageId dan parameternya yang sesuai. Namun, bagian ini tidak berisi semua pesan yang memungkinkan, dan dapat diperluas kapan saja.

Error ScaleUp

Pesan error untuk peristiwa scaleUp ditemukan dalam peristiwa eventResult yang sesuai, di kolom resultInfo.results[].errorMsg.

Pesan Deskripsi Mitigasi
"scale.up.error.out.of.resources" Peristiwa scaleUp gagal karena beberapa MIG tidak dapat ditingkatkan karena kurangnya resource.

Parameter: ID MIG yang gagal.

Ikuti langkah-langkah pemecahan masalah ketersediaan resource.
"scale.up.error.quota.exceeded" Peristiwa scaleUp gagal karena beberapa MIG tidak dapat ditingkatkan, karena melampaui kuota Compute Engine.

Parameter: ID MIG yang gagal.

Periksa tab Error pada MIG di Konsol Google Cloud untuk melihat kuota yang terlampaui. Ikuti petunjuk untuk meminta penambahan kuota.
"scale.up.error.waiting.for.instances.timeout" Peristiwa scaleUp gagal karena instance di beberapa MIG gagal muncul tepat waktu.

Parameter: ID MIG yang gagal.

Pesan ini bersifat sementara. Jika masalah berlanjut, hubungi Dukungan Google Cloud untuk penyelidikan lebih lanjut.
"scale.up.error.ip.space.exhausted" Peristiwa scaleUp gagal karena cluster tidak memiliki cukup ruang alamat IP yang belum dialokasikan untuk menambahkan node atau Pod baru.

Parameter: ID MIG yang gagal.

Lihat langkah pemecahan masalah untuk mengatasi kurangnya ruang alamat IP untuk node atau pod.
"scale.up.error.service.account.deleted" Peristiwa scaleUp gagal karena akun layanan yang digunakan oleh Cluster Autoscaler telah dihapus.

Parameter: ID MIG yang gagal.

Libatkan Dukungan Google Cloud untuk penyelidikan lebih lanjut.

Error ScaleDown

Pesan error untuk peristiwa scaleDown ditemukan dalam peristiwa eventResult yang sesuai, di kolom resultInfo.results[].errorMsg.

Pesan Deskripsi Mitigasi
"scale.down.error.failed.to.mark.to.be.deleted" Peristiwa scaleDown gagal karena node tidak dapat ditandai untuk dihapus.

Parameter: Nama node yang gagal.

Pesan ini bersifat sementara. Jika masalah berlanjut, hubungi Dukungan Google Cloud untuk penyelidikan lebih lanjut.
"scale.down.error.failed.to.evict.pods" Peristiwa scaleDown gagal karena beberapa Pod tidak dapat dikeluarkan dari node.

Parameter: Nama node yang gagal.

Tinjau praktik terbaik untuk Anggaran Gangguan Pod guna memastikan bahwa aturan mengizinkan penghapusan replika aplikasi jika dapat diterima.
"scale.down.error.failed.to.delete.node.min.size.reached" Peristiwa scaleDown gagal karena sebuah node tidak dapat dihapus karena ukuran cluster sudah minimal.

Parameter: Nama node yang gagal.

Tinjau nilai minimum yang ditetapkan untuk penskalaan otomatis node pool, lalu sesuaikan setelan jika perlu.

Alasan peristiwa NoScaleUp

Alasan tingkat atas NoScaleUp

Pesan alasan tingkat atas untuk peristiwa noScaleUp muncul di kolom noDecisionStatus.noScaleUp.reason. Pesan ini berisi alasan tingkat atas mengapa autoscaler cluster tidak dapat meningkatkan skala cluster.

Pesan Deskripsi Mitigasi
"no.scale.up.in.backoff" noScaleUp terjadi karena peningkatan skala berada dalam periode backoff (diblokir sementara). Ini adalah pesan sementara yang mungkin terjadi selama peristiwa peningkatan skala dengan Pod dalam jumlah besar. Jika pesan ini terus berlanjut, hubungi Dukungan Google Cloud untuk penyelidikan lebih lanjut.

Alasan penyediaan otomatis node tingkat atas NoScaleUp

Pesan alasan penyediaan otomatis node tingkat atas untuk peristiwa noScaleUp muncul di kolom noDecisionStatus.noScaleUp.napFailureReason. Pesan ini berisi alasan utama mengapa autoscaler cluster tidak dapat menyediakan node pool baru.

Pesan Deskripsi Mitigasi
"no.scale.up.nap.disabled" Penyediaan otomatis node tidak diaktifkan di tingkat cluster. Jika penyediaan otomatis node dinonaktifkan, node baru tidak akan disediakan secara otomatis jika Pod yang tertunda memiliki persyaratan yang tidak dapat dipenuhi oleh node pool yang ada. Tinjau konfigurasi cluster dan lihat Mengaktifkan penyediaan otomatis Node.

Alasan tingkat MIG NoScaleUp

Pesan alasan tingkat MIG untuk peristiwa noScaleUp muncul di kolom noDecisionStatus.noScaleUp.skippedMigs[].reason dan noDecisionStatus.noScaleUp.unhandledPodGroups[].rejectedMigs[].reason. Pesan ini berisi alasan mengapa autoscaler cluster tidak dapat meningkatkan ukuran MIG tertentu.

Pesan Deskripsi Mitigasi
"no.scale.up.mig.skipped" Tidak dapat meningkatkan skala MIG karena dilewati selama simulasi.

Parameter: alasan mengapa pod dilewati (misalnya, persyaratan pod tidak dapat dibaca).

Tinjau parameter yang disertakan dalam pesan error dan tangani mengapa MIG dilewati.
"no.scale.up.mig.failing.predicate" Tidak dapat meningkatkan skala MIG karena tidak memenuhi persyaratan predikat untuk Pod yang tertunda.

Parameter: Nama predikat yang gagal, alasan kegagalan yang dapat dibaca manusia.

Meninjau persyaratan Pod, seperti aturan afinitas, taint atau toleransi, dan persyaratan resource.

Alasan penyediaan otomatis node tingkat grup Pod NoScaleUp

Pesan alasan penyediaan otomatis node tingkat grup pod untuk peristiwa noScaleUp muncul di kolom noDecisionStatus.noScaleUp.unhandledPodGroups[].napFailureReasons[]. Pesan ini berisi alasan mengapa autoscaler cluster tidak dapat menyediakan node pool baru untuk mengakomodasi grup Pod tertentu.

Pesan Deskripsi Mitigasi
"no.scale.up.nap.pod.gpu.no.limit.defined" Penyediaan otomatis node tidak dapat menyediakan grup node apa pun karena Pod yang tertunda memiliki permintaan GPU, tetapi batas resource GPU tidak ditetapkan di tingkat cluster.

Parameter: Jenis GPU yang diminta.

Tinjau permintaan GPU Pod yang tertunda, dan update konfigurasi penyediaan otomatis node tingkat cluster untuk batas GPU.
"no.scale.up.nap.pod.gpu.type.not.supported" Penyediaan otomatis node tidak menyediakan grup node apa pun untuk Pod karena memiliki permintaan untuk jenis GPU yang tidak diketahui.

Parameter: Jenis GPU yang diminta.

Periksa konfigurasi Pod yang tertunda untuk jenis GPU guna memastikan bahwa jenis GPU tersebut cocok dengan jenis GPU yang didukung.
"no.scale.up.nap.pod.zonal.resources.exceeded" Penyediaan otomatis node tidak menyediakan grup node apa pun untuk Pod di zona ini karena hal tersebut akan melanggar batas resource maksimum seluruh cluster, melebihi resource yang tersedia dalam zona, atau hal tersebut bukanlah jenis mesin yang sesuai dengan permintaan.

Parameter: Nama zona yang dipertimbangkan.

Tinjau dan update batas resource maksimum seluruh cluster, permintaan resource Pod, atau zona yang tersedia untuk penyediaan otomatis node.
"no.scale.up.nap.pod.zonal.failing.predicates" Penyediaan otomatis node tidak menyediakan grup node apa pun untuk Pod di zona ini karena predikat yang gagal.

Parameter: Nama zona yang dipertimbangkan, alasan yang dapat dibaca manusia mengapa predikat gagal.

Tinjau persyaratan Pod yang tertunda, seperti aturan afinitas, taint, toleransi, atau persyaratan resource.

Alasan peristiwa NoScaleDown

Alasan tingkat atas NoScaleDown

Pesan alasan tingkat atas untuk peristiwa noScaleDown muncul di kolom noDecisionStatus.noScaleDown.reason. Pesan ini berisi alasan tingkat atas mengapa autoscaler cluster tidak dapat menurunkan skala cluster.

Pesan Deskripsi Mitigasi
"no.scale.down.in.backoff" Peristiwa noScaleDown terjadi karena penurunan skala terjadi dalam periode backoff (diblokir sementara). Peristiwa ini seharusnya bersifat sementara, dan mungkin terjadi jika baru-baru ini ada peristiwa peningkatan skala. Ikuti langkah-langkah mitigasi yang terkait dengan alasan tingkat rendah atas kegagalan penurunan skala. Setelah alasan yang mendasari terselesaikan, autoscaler cluster akan keluar dari backoff. Jika pesan tetap ada setelah mengatasi alasan yang mendasarinya, hubungi Dukungan Google Cloud untuk melakukan penyelidikan lebih lanjut.
"no.scale.down.in.progress" Peristiwa noScaleDown terjadi karena penurunan skala diblokir hingga node sebelumnya yang dijadwalkan untuk dihapus. Peristiwa ini seharusnya bersifat sementara, karena Pod pada akhirnya akan dihapus secara paksa. Jika pesan ini sering muncul, Anda dapat meninjau nilai gracefulTerminationPeriod untuk menurunkan skala pemblokiran Pod. Jika ingin mempercepat resolusi, Anda juga dapat menghapus Pod secara paksa jika tidak diperlukan lagi.

Alasan tingkat node NoScaleDown

Pesan alasan tingkat node untuk peristiwa noScaleDown muncul di kolom noDecisionStatus.noScaleDown.nodes[].reason. Pesan ini berisi alasan mengapa autoscaler cluster tidak dapat menghapus node tertentu.

Pesan Deskripsi Mitigasi
"no.scale.down.node.scale.down.disabled.annotation" Node tidak dapat dihapus karena memiliki anotasi scale-down-disabled. Tinjau anotasi yang mencegah penurunan skala dengan mengikuti petunjuk di FAQ Autoscaler Cluster Kubernetes.
"no.scale.down.node.node.group.min.size.reached" Node tidak dapat dihapus karena grup node-nya sudah mencapai ukuran minimumnya. Tinjau dan adjust nilai minimum yang ditetapkan untuk penskalaan otomatis node pool.
"no.scale.down.node.minimal.resource.limits.exceeded" Penurunan skala node yang kurang dimanfaatkan akan diblokir karena akan melanggar batas resource minimum seluruh cluster yang ditetapkan untuk penyediaan otomatis node. Tinjau batas resource minimum seluruh cluster.
"no.scale.down.node.no.place.to.move.pods" Penurunan skala node yang kurang dimanfaatkan akan diblokir karena sedang menjalankan Pod yang tidak dapat dipindahkan ke node lain di cluster. Jika Anda memperkirakan bahwa Pod harus dijadwalkan ulang, tinjau persyaratan penjadwalan Pod pada node yang kurang dimanfaatkan untuk menentukan apakah Pod dapat dipindahkan ke node lain dalam cluster. Pesan ini diharapkan jika Anda tidak mengharapkan Pod dijadwalkan ulang karena tidak ada node lain yang dapat dijadwalkan.
"no.scale.down.node.pod.not.backed.by.controller" Pod memblokir penurunan skala dari node yang kurang dimanfaatkan karena Pod tidak memiliki pengontrol yang dikenal oleh Autoscaler Cluster Kubernetes (ReplicationController, DaemonSet, Job, StatefulSet, atau ReplicaSet). Pelajari lebih lanjut jenis pod apa yang dapat mencegah autoscaler cluster menghapus node di FAQ Autoscaler Cluster Kubernetes.

Parameter: Nama pod pemblokiran.

Tetapkan anotasi "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" untuk Pod atau tentukan pengontrol (ReplicationController, DaemonSet, Job, StatefulSet, atau ReplicaSet).
"no.scale.down.node.pod.has.local.storage" Pod memblokir penurunan skala karena meminta penyimpanan lokal. Pelajari lebih lanjut jenis Pod yang dapat mencegah autoscaler cluster menghapus node di FAQ Autoscaler Cluster Kubernetes.

Parameter: Nama pod pemblokiran.

Menyetel anotasi "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" untuk Pod jika data dalam penyimpanan lokal untuk Pod tidak penting.
"no.scale.down.node.pod.not.safe.to.evict.annotation" Pod memblokir penurunan skala karena memiliki anotasi "tidak aman untuk dikeluarkan". Lihat FAQ Autoscaler Cluster Kubernetes untuk detail selengkapnya.

Parameter: Nama pod pemblokiran.

Jika Pod dapat dikeluarkan dengan aman, update anotasi ke "cluster-autoscaler.kubernetes.io/safe-to-evict": "true".
"no.scale.down.node.pod.kube.system.unmovable" Pod memblokir penurunan skala karena merupakan Pod non-DaemonSet, tidak dicerminkan, tanpa PodDisruptionBudget dalam namespace kube-system.

Parameter: Nama pod pemblokiran.

Ikuti petunjuk di FAQ Autoscaler Cluster Kubernetes untuk menetapkan PodDisruptionBudget guna mengaktifkan autoscaler cluster untuk memindahkan Pod di namespace kube-system.
"no.scale.down.node.pod.not.enough.pdb" Pod memblokir penurunan skala karena sisa PodDisruptionBudget tidak cukup. Lihat FAQ Autoscaler Cluster Kubernetes untuk detail selengkapnya.

Parameter: Nama pod pemblokiran.

Tinjau PodDisruptionBudget untuk Pod, lihat praktik terbaik untuk PodDisruptionBudget. Anda mungkin dapat menyelesaikan pesan dengan menskalakan aplikasi atau mengubah PodDisruptionBudget untuk mengizinkan Pod yang tidak tersedia lainnya.
"no.scale.down.node.pod.controller.not.found" Pod memblokir penurunan skala karena pengontrolnya (misalnya, Deployment atau ReplicaSet) tidak dapat ditemukan. Tinjau log untuk mengetahui tindakan yang diambil yang membuat Pod berjalan setelah pengontrolnya dihapus. Untuk menyelesaikannya, Anda dapat menghapus Pod secara manual.
"no.scale.down.node.pod.unexpected.error" Penurunan skala di node yang kurang dimanfaatkan akan diblokir karena Pod memiliki status error yang tidak terduga. Libatkan Dukungan GCP untuk penyelidikan lebih lanjut.

Langkah selanjutnya