Halaman ini memberikan informasi tentang peristiwa visibilitas yang dikeluarkan oleh autoscaler cluster di Google Kubernetes Engine (GKE). Dengan menganalisis peristiwa ini, Anda bisa mendapatkan insight tentang cara autoscaler cluster mengelola penskalaan cluster dan memahami alasan di balik keputusannya.
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
Untuk melihat peristiwa autoscaler, 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:
Di Konsol Google Cloud, buka halaman Kubernetes Clusters.
Pilih nama cluster untuk melihat halaman Cluster Details-nya.
Di halaman Cluster Details, klik tab Logs.
Di tab Logs, klik tab Autoscaler Logs untuk melihat log.
(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:
Buka halaman Google Kubernetes Engine di Konsol Google Cloud:
Periksa kolom Notifications untuk cluster tertentu guna menemukan notifikasi yang terkait dengan penskalaan.
Klik notifikasi untuk informasi mendetail, 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, sepertius-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 yang berikut ini:
PROJECT_ID
: project ID Anda.CLUSTER_NAME
: nama cluster.COMPUTE_REGION
: region Compute Engine cluster, sepertius-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"
}
}
}
}
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 ini.
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
Anda dapat menemukan pesan error peristiwa untuk peristiwa scaleUp
dalam peristiwa eventResult
yang sesuai, di kolom resultInfo.results[].errorMsg
.
Pesan | Detail | Parameter | Mitigasi |
---|---|---|---|
"scale.up.error.out.of.resources" |
Error resource terjadi saat Anda mencoba meminta resource baru di zona yang tidak dapat mengakomodasi permintaan karena saat ini tidak tersedianya resource Compute Engine, seperti GPU atau CPU. | ID MIG gagal. | Ikuti langkah-langkah pemecahan masalah ketersediaan resource dalam dokumentasi Compute Engine. |
"scale.up.error.quota.exceeded" |
Peristiwa scaleUp gagal karena beberapa MIG tidak dapat ditingkatkan, karena melampaui kuota Compute Engine. | ID MIG gagal. | Periksa tab Error pada MIG di Konsol Google Cloud untuk melihat kuota yang terlampaui. Setelah mengetahui kuota mana yang terlampaui, ikuti petunjuk untuk meminta penambahan kuota. |
"scale.up.error.waiting.for.instances.timeout" |
Peningkatan skala grup instance terkelola gagal karena waktu tunggu habis. | ID MIG gagal. | Pesan ini harus bersifat sementara. Jika masalah berlanjut, hubungi Cloud Customer Care untuk penyelidikan lebih lanjut. |
"scale.up.error.ip.space.exhausted" |
Tidak dapat diskalakan karena instance di beberapa grup instance terkelola kehabisan IP. Artinya, cluster tidak memiliki cukup ruang alamat IP yang belum dialokasikan untuk digunakan guna menambahkan node atau Pod baru. | ID MIG gagal. | Ikuti langkah-langkah pemecahan masalah di Ruang alamat IP yang kosong tidak cukup untuk Pod. |
"scale.up.error.service.account.deleted" |
Tidak dapat menskalakan karena akun layanan telah dihapus. | ID MIG gagal. | Coba batalkan penghapusan akun layanan. Jika prosedur tersebut tidak berhasil, hubungi Cloud Customer Care untuk penyelidikan lebih lanjut. |
Alasan 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 menjadwalkan Pod. Peristiwa noScaleUp
adalah upaya terbaik, dan tidak mencakup semua kemungkinan kasus.
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 | Detail | Mitigasi |
---|---|---|
"no.scale.up.in.backoff" |
Tidak ada peningkatan skala karena peningkatan skala berada dalam periode backoff (diblokir sementara). Pesan ini dapat terjadi selama peristiwa peningkatan skala dengan Pod dalam jumlah besar. | Pesan ini harus bersifat sementara. Periksa error ini setelah beberapa menit. Jika pesan ini terus berlanjut, hubungi Cloud Customer Care 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 | Detail | Mitigasi |
---|---|---|
"no.scale.up.nap.disabled" |
Penyediaan otomatis node tidak dapat diskalakan karena 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 pertimbangkan untuk 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 | Detail | Parameter | Mitigasi |
---|---|---|---|
"no.scale.up.mig.skipped" |
Tidak dapat meningkatkan skala MIG karena dilewati selama simulasi. | Alasan MIG dilewati (misalnya, persyaratan Pod tidak ada). | Tinjau parameter yang disertakan dalam pesan error dan tangani mengapa MIG dilewati. |
"no.scale.up.mig.failing.predicate" |
Tidak dapat meningkatkan skala node pool karena predikat penjadwalan gagal untuk Pod yang tertunda. | Nama predikat yang gagal dan alasan kegagalannya. | Tinjau 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 menjadwalkan grup Pod tertentu.
Pesan | Detail | Parameter | 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. | 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. | 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 di zona, atau tidak ada jenis mesin yang sesuai dengan permintaan. | 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. | Nama zona yang dipertimbangkan dan alasan kegagalan predikat. | Tinjau persyaratan Pod yang tertunda, seperti aturan afinitas, taint, toleransi, atau persyaratan resource. |
Error ScaleDown
Anda dapat menemukan pesan peristiwa error untuk peristiwa scaleDown
dalam peristiwa eventResult
yang sesuai, di kolom resultInfo.results[].errorMsg
.
Pesan peristiwa | Detail | Parameter | Mitigasi |
---|---|---|---|
"scale.down.error.failed.to.mark.to.be.deleted" |
Node tidak dapat ditandai untuk dihapus. | Nama node gagal. | Pesan ini harus bersifat sementara. Jika masalah berlanjut, hubungi Cloud Customer Care untuk penyelidikan lebih lanjut. |
"scale.down.error.failed.to.evict.pods" |
Autoscaler cluster tidak dapat menskalakan ke bawah karena beberapa Pod tidak dapat dikeluarkan dari node. | Nama node gagal. | Tinjau PodDisruptionBudget untuk Pod dan pastikan aturan mengizinkan penghapusan replika aplikasi jika dapat diterima. Untuk mempelajari lebih lanjut, lihat Menentukan Anggaran Gangguan untuk Aplikasi Anda dalam dokumentasi Kubernetes. |
"scale.down.error.failed.to.delete.node.min.size.reached" |
Autoscaler cluster tidak dapat menskalakan ke bawah karena node tidak dapat dihapus karena cluster sudah berukuran minimal. | Nama node gagal. | Tinjau nilai minimum yang ditetapkan untuk penskalaan otomatis node pool, lalu sesuaikan setelan jika perlu. Untuk mempelajari lebih lanjut, lihat Error: Node dalam cluster telah mencapai ukuran minimum. |
Alasan peristiwa noScaleDown
Peristiwa noScaleDown
akan dihasilkan secara berkala saat ada node yang diblokir agar tidak dihapus oleh autoscaler cluster. Peristiwa noScaleDown
adalah upaya terbaik, dan tidak mencakup semua kasus yang memungkinkan.
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 peristiwa | Detail | Mitigasi |
---|---|---|
"no.scale.down.in.backoff" |
Autoscaler cluster tidak dapat menurunkan skala karena penurunan skala berada dalam periode backoff (diblokir sementara). | Pesan ini seharusnya bersifat sementara, dan dapat terjadi jika baru-baru ini ada peristiwa peningkatan skala. Jika pesan terus muncul, hubungi Cloud Customer Care untuk penyelidikan lebih lanjut. |
"no.scale.down.in.progress" |
Autoscaler cluster tidak dapat menskalakan ke bawah karena penurunan skala sebelumnya masih berlangsung. |
Pesan ini seharusnya bersifat sementara, karena Pod pada akhirnya akan dihapus. Jika pesan ini sering muncul, tinjau masa tenggang penghentian untuk penurunan skala pemblokiran Pod. Untuk mempercepat resolusi, Anda juga dapat menghapus Pod jika tidak diperlukan lagi. |
Alasan tingkat node NoScaleDown
Pesan alasan tingkat node untuk peristiwa noScaleDown
muncul di
noDecisionStatus.noScaleDown.nodes[].reason field
. Pesan ini berisi alasan mengapa autoscaler cluster tidak dapat menghapus node tertentu.
Pesan peristiwa | Detail | Parameter | Mitigasi |
---|---|---|---|
"no.scale.down.node.scale.down.disabled.annotation" |
Autoscaler cluster tidak dapat menghapus node dari node pool karena node dianotasikan dengan cluster-autoscaler.kubernetes.io/scale-down-disabled: true .
|
T/A | Autoscaler cluster melewati node dengan anotasi ini tanpa mempertimbangkan penggunaannya dan pesan ini dicatat ke dalam log, terlepas dari faktor penggunaan node. Jika Anda ingin autoscaler cluster menurunkan skala node ini, hapus anotasi. |
"no.scale.down.node.node.group.min.size.reached" |
Autoscaler cluster tidak dapat menskalakan ke bawah jika ukuran grup node telah melampaui batas ukuran minimum. Hal ini terjadi karena menghapus node akan melanggar batas resource minimum seluruh cluster yang ditentukan dalam setelan penyediaan otomatis node Anda. |
T/A | Tinjau nilai minimum yang ditetapkan untuk penskalaan otomatis node pool. Jika Anda ingin autoscaler cluster menskalakan node ini, sesuaikan nilai minimum. |
"no.scale.down.node.minimal.resource.limits.exceeded" |
Autoscaler cluster tidak dapat menskalakan node karena akan melanggar batas resource minimum seluruh cluster. Ini adalah batas resource yang ditetapkan untuk penyediaan otomatis node. |
T/A | Tinjau batas memori dan vCPU Anda, dan jika Anda ingin autoscaler cluster menskalakan node ini, kurangi batas. |
"no.scale.down.node.no.place.to.move.pods" |
Autoscaler cluster tidak dapat menskalakan ke bawah karena tidak ada tempat untuk memindahkan Pod. | T/A | 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. Untuk mempelajari lebih lanjut, lihat Error: Tidak ada tempat untuk memindahkan Pod. |
"no.scale.down.node.pod.not.backed.by.controller" |
Pod memblokir penurunan skala karena tidak didukung oleh pengontrol. Secara khusus, autoscaler cluster tidak dapat menskalakan node yang kurang dimanfaatkan karena Pod tidak memiliki pengontrol yang dikenal. Pengontrol yang diizinkan mencakup ReplicationController, DaemonSet, Job, StatefulSet, atau ReplicaSet. |
Nama Pod pemblokiran. | Tetapkan anotasi
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"
untuk Pod atau tentukan pengontrol yang dapat diterima. |
"no.scale.down.node.pod.not.safe.to.evict.annotation" |
Pod di node memiliki anotasi safe-to-evict=false . |
Nama Pod pemblokiran. | Jika Pod dapat dikeluarkan dengan aman, edit manifes Pod dan
perbarui 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 di namespace kube-system . |
Nama Pod pemblokiran. | Secara default, Pod di namespace Untuk mengatasi masalah ini, tambahkan PodDisruptionBudget
untuk Pod |
"no.scale.down.node.pod.not.enough.pdb" |
Pod memblokir penurunan skala karena tidak memiliki PodDisruptionBudget yang memadai. | Nama Pod pemblokiran. | Tinjau PodDisruptionBudget untuk Pod dan pertimbangkan untuk membuatnya tidak terlalu ketat. Untuk mempelajari lebih lanjut, lihat Error: PodDisruptionBudget tidak cukup. |
"no.scale.down.node.pod.controller.not.found" |
Pod memblokir penurunan skala karena pengontrolnya (misalnya, Deployment atau ReplicaSet) tidak dapat ditemukan. | T/A | Untuk menentukan tindakan yang diambil yang membuat Pod berjalan setelah pengontrolnya dihapus, tinjau log. Untuk mengatasi masalah ini, hapus Pod secara manual. |
"no.scale.down.node.pod.unexpected.error" |
Pod memblokir penurunan skala karena error yang tidak terduga. | T/A | Penyebab utama error ini tidak diketahui. Hubungi Layanan Pelanggan Cloud untuk penyelidikan lebih lanjut. |
Langkah selanjutnya
- Pelajari autoscaler cluster lebih lanjut.
- Pelajari cara menggunakan penyediaan otomatis node.
- Memecahkan masalah autoscaler cluster yang tidak menskalakan ke bawah.
- Memecahkan masalah autoscaler cluster yang tidak melakukan penskalaan.
- Tonton video YouTube tentang cara memecahkan masalah dan menyelesaikan masalah penskalaan.