Questa pagina fornisce informazioni sugli eventi di visibilità emessi dal gestore della scalabilità automatica dei cluster in Google Kubernetes Engine (GKE). Analizzando questi eventi, puoi ottenere informazioni su come il gestore della scalabilità automatica del cluster gestisce la scalabilità del cluster e comprendere i motivi alla base delle sue decisioni.
Il gestore della scalabilità automatica del cluster GKE emette eventi di visibilità, disponibili come voci di log in Cloud Logging. Gli eventi descritti in questa guida sono separati dagli eventi Kubernetes prodotti dal gestore della scalabilità automatica del cluster.
Requisiti
Per visualizzare gli eventi del gestore della scalabilità automatica, devi attivare Cloud Logging nel tuo cluster. Gli eventi non verranno generati se la registrazione è disabilitata.
Visualizzazione degli eventi
Gli eventi di visibilità per il gestore della scalabilità automatica del cluster vengono archiviati in un log Cloud Logging nello stesso progetto in cui si trova il cluster GKE. Puoi visualizzare questi eventi anche dalle notifiche nella pagina Google Kubernetes Engine della console Google Cloud.
Visualizzazione dei log degli eventi di visibilità
Per visualizzare i log:
Nella console Google Cloud, vai alla pagina Cluster Kubernetes.
Seleziona il nome del cluster per visualizzare la pagina Dettagli cluster.
Nella pagina Dettagli cluster, fai clic sulla scheda Log.
Nella scheda Log, fai clic sulla scheda Log di Autoscaler per visualizzare i log.
(Facoltativo) Per applicare filtri più avanzati per restringere i risultati, fai clic sul pulsante con la freccia sul lato destro della pagina per visualizzare i log in Esplora log.
Visualizzazione delle notifiche relative agli eventi di visibilità
Per visualizzare le notifiche degli eventi di visibilità nella pagina Google Kubernetes Engine, svolgi i seguenti passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud:
Controlla la colonna Notifiche per cluster specifici per trovare le notifiche relative al ridimensionamento.
Fai clic sulla notifica per visualizzare informazioni dettagliate, azioni consigliate e accedere ai log per questo evento.
Tipi di eventi
Tutti gli eventi registrati sono in formato JSON e sono disponibili nel campo jsonPayload di una voce di log. Tutti i timestamp negli eventi sono timestamp in secondi UNIX.
Di seguito è riportato un riepilogo dei tipi di eventi emessi dal gestore della scalabilità automatica del cluster:
Tipo di evento | Descrizione |
---|---|
status |
Si verifica periodicamente e descrive le dimensioni di tutti i pool di nodi con scalabilità automatica e le dimensioni target di tutti i pool di nodi con scalabilità automatica osservate dal gestore della scalabilità automatica del cluster. |
scaleUp |
Si verifica quando il gestore della scalabilità automatica del cluster esegue lo scale up del cluster. |
scaleDown |
Si verifica quando il gestore della scalabilità automatica del cluster esegue lo scale down del cluster. |
eventResult |
Si verifica quando un evento scaleUp o scaleDown viene completato correttamente o non correttamente. |
nodePoolCreated |
Si verifica quando il gestore della scalabilità automatica del cluster con il provisioning automatico dei nodi abilitato crea un nuovo pool di nodi. |
nodePoolDeleted |
Si verifica quando il gestore della scalabilità automatica dei cluster con provisioning automatico dei nodi abilitato elimina un pool di nodi. |
noScaleUp |
Si verifica quando nel cluster sono presenti pod non pianificabili e il gestore della scalabilità automatica del cluster non può eseguire lo scale up del cluster per ospitare i pod. |
noScaleDown |
Si verifica quando l'eliminazione di alcuni nodi è bloccata dal gestore della scalabilità automatica del cluster. |
Evento di stato
Viene emesso periodicamente un evento status
che descrive le dimensioni effettive di tutti i pool di nodi con scalabilità automatica e le dimensioni target di tutti i pool di nodi con scalabilità automatica come osservato dal gestore della scalabilità automatica dei cluster.
Esempio
Il seguente esempio di log mostra un evento status
:
{
"status": {
"autoscaledNodesCount": 4,
"autoscaledNodesTarget": 4,
"measureTime": "1582898536"
}
}
Evento ScaleUp
Viene emesso un evento scaleUp
quando il gestore della scalabilità automatica del cluster esegue lo scale up del cluster.
Il gestore della scalabilità automatica aumenta le dimensioni dei pool di nodi del cluster eseguendo lo scale up dei gruppi di istanze gestite (MIG) sottostanti per i pool di nodi. Per scoprire di più su come funziona lo scale up, consulta la sezione Come funziona lo scale up? nelle domande frequenti sul gestore della scalabilità automatica dei cluster Kubernetes.
L'evento contiene informazioni su quali MIG sono stati sottoposti a scalabilità, su quanti nodi e su quali pod non pianificabili hanno attivato l'evento.
L'elenco dei pod di attivazione viene troncato a 50 voci arbitrarie. Il
numero effettivo di pod attivati è disponibile nel campo triggeringPodsTotalCount
.
Esempio
Il seguente esempio di log mostra un evento 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
}
}
}
Evento ScaleDown
Viene emesso un evento scaleDown
quando il gestore della scalabilità automatica del cluster esegue il ridimensionamento del cluster.
Per scoprire di più su come funziona fare lo scale down il basso, consulta la sezione Come funziona fare lo scale down verso il basso? nelle domande frequenti sul gestore della scalabilità automatica dei cluster Kubernetes.
I campi cpuRatio
e memRatio
descrivono l'utilizzo della CPU e della memoria del nodo in percentuale. Questo utilizzo è la somma delle richieste di pod divisa per il numero di nodi allocabili, non l'utilizzo reale.
L'elenco dei pod espulsi viene troncato a 50 voci arbitrarie. Il numero effettivo di pod espulsi è disponibile nel campo evictedPodsTotalCount
.
Utilizza la seguente query per verificare se il gestore della scalabilità automatica del cluster ha ridotto il numero di nodi:
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" )
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.COMPUTE_REGION
: la regione Compute Engine del cluster, ad esempious-central1
.
Esempio
Il seguente esempio di log mostra un evento 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"
}
}
]
}
}
}
Puoi anche visualizzare l'evento scale-down
sui nodi senza carichi di lavoro in esecuzione
(in genere solo i pod di sistema creati dai DaemonSet).
Utilizza la seguente query per visualizzare i log degli eventi:
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")
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.CLUSTER_NAME
: il nome del cluster.COMPUTE_REGION
: la regione Compute Engine del cluster, ad esempious-central1
.
Evento EventResult
Un evento eventResult
viene emesso quando un evento scaleUp o scaleDown si completa correttamente o non correttamente. Questo evento contiene un elenco di ID evento
(dal campo eventId
negli eventi scaleUp o scaleDown), insieme ai messaggi
di errore. Un messaggio di errore vuoto indica che l'evento è stato completato correttamente. Un
elenco di eventi eventResult viene aggregato nel campo results
.
Per diagnosticare gli errori, consulta le sezioni Errori di scale up e Errori di scale down.
Esempio
Il seguente esempio di log mostra un evento 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"
}
]
}
}
Evento NodePoolCreated
Viene emesso un evento nodePoolCreated
quando il gestore della scalabilità automatica dei cluster con il provisioning automatico dei nodi attivo crea un nuovo pool di nodi. Questo evento contiene il nome del
pool di nodi creato e un elenco dei relativi MIG sottostanti. Se il pool di nodi è stato creato a causa di un
evento scaleUp, il eventId
dell'evento scaleUp corrispondente è incluso nel
campo triggeringScaleUpId
.
Esempio
Il seguente esempio di log mostra un evento 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"
}
}
}
Evento NodePoolDeleted
Viene emesso un evento nodePoolDeleted
quando il gestore della scalabilità automatica dei cluster con il
provisioning automatico dei nodi attivo elimina un pool di nodi.
Esempio
Il seguente esempio di log mostra un evento nodePoolDeleted
:
{
"decision": {
"decideTime": "1585830461",
"eventId": "68b0d1c7-b684-4542-bc19-f030922fb820",
"nodePoolDeleted": {
"nodePoolNames": [
"nap-n1-highcpu-8-ydj4ewil"
]
}
}
}
Evento NoScaleUp
Un evento noScaleUp
viene emesso periodicamente quando nel cluster sono presenti pod non pianificabili e il gestore della scalabilità automatica del cluster non può eseguire lo scale up del cluster per ospitare i pod.
- Gli eventi noScaleUp sono di tipo best effort, ovvero non coprono tutti i possibili motivi per cui il gestore della scalabilità automatica dei cluster non può eseguire lo scale up.
- Gli eventi noScaleUp vengono limitati per limitare il volume dei log prodotti. Ogni motivo persistente viene emesso solo ogni paio di minuti.
- Tutti i motivi possono essere suddivisi in modo arbitrario in più eventi. Ad esempio, non è garantito che tutti i motivi di rifiuto del gruppo MIG per un singolo gruppo di pod verranno visualizzati nello stesso evento.
- L'elenco dei gruppi di pod non gestiti viene troncato a 50 voci arbitrarie. Il
numero effettivo di gruppi di pod non gestiti è disponibile nel
campo
unhandledPodGroupsTotalCount
.
Campi Motivo
I seguenti campi aiutano a spiegare perché non è stato eseguito lo scale up:
reason
: fornisce un motivo globale per cui è stato impedito lo scale up del gestore della scalabilità automatica dei cluster. Per maggiori dettagli, consulta la sezione Ragioni di primo livello NoScaleUp.napFailureReason
: fornisce un motivo globale che impedisce al gestore della scalabilità automatica dei cluster di eseguire il provisioning di pool di nodi aggiuntivi (ad esempio, il provisioning automatico dei nodi è disabilitato). Per maggiori dettagli, consulta la sezione Motivi del provisioning automatico dei nodi di primo livello NoScaleUp.skippedMigs[].reason
: fornisce informazioni sul motivo per cui un determinato gruppo di istanze gestite è stato saltato. Il gestore della scalabilità automatica dei cluster ignora alcuni MIG per qualsiasi pod durante un tentativo di scale up (ad esempio perché l'aggiunta di un altro nodo supererebbe i limiti di risorse a livello di cluster). Per maggiori dettagli, consulta la sezione Motivi di NoScaleUp a livello di MIG.unhandledPodGroups
: contiene informazioni sul motivo per cui un determinato gruppo di pod non pianificabili non attiva lo scale up. I pod sono raggruppati in base al loro controller immediato. I pod senza un controller sono raggruppati da soli. Ogni gruppo di pod contiene un pod di esempio arbitrario e il numero di pod nel gruppo, nonché i seguenti motivi:napFailureReasons
: motivi per cui il gestore della scalabilità automatica dei cluster non può eseguire il provisioning di un nuovo pool di nodi per soddisfare le esigenze di questo gruppo di pod (ad esempio, i pod hanno vincoli di affinità). Per maggiori dettagli, consulta la sezione Motivi per cui non è stato eseguito lo scale up a livello di pod con il provisioning automatico dei nodi.rejectedMigs[].reason
: motivi per MIG per cui il gestore della scalabilità automatica dei cluster non può aumentare le dimensioni di un determinato MIG per adattarsi a questo gruppo di pod (ad esempio, il nodo del MIG è troppo piccolo per i pod). Per maggiori dettagli, consulta la sezione Motivi di NoScaleUp a livello di MIG.
Esempio
Il seguente esempio di log mostra un evento 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
}
}
}
Evento NoScaleDown
Un evento noScaleDown
viene emesso periodicamente quando esistono nodi la cui eliminazione è bloccata dal gestore della scalabilità automatica del cluster.
- I nodi che non possono essere rimossi perché il loro utilizzo è elevato non sono inclusi negli eventi noScaleDown.
- Gli eventi noScaleDown sono di tipo best effort, ovvero non coprono tutti i possibili motivi per cui il gestore della scalabilità automatica dei cluster non può fare lo scale down.
- Gli eventi NoScaleDown vengono limitati per limitare il volume dei log prodotti. Ogni motivo persistente verrà emesso solo ogni due minuti.
- L'elenco dei nodi viene troncato a 50 voci arbitrarie. Il numero effettivo di
nodi è disponibile nel campo
nodesTotalCount
.
Campi Motivo
I seguenti campi aiutano a spiegare perché non è stato eseguito lo scale down:
reason
: fornisce un motivo globale per cui è stato impedito lo scale down del gestore della scalabilità automatica dei cluster (ad esempio, un periodo di backoff dopo lo scale up recente). Per maggiori dettagli, consulta la sezione Motivi di primo livello di NoScaleDown.nodes[].reason
: fornisce i motivi per ogni nodo per cui al gestore della scalabilità automatica dei cluster è stato impedito di eliminare un determinato nodo (ad esempio, non c'è un luogo dove spostare i pod del nodo). Per maggiori dettagli, consulta la sezione Motivi a livello di nodo NoScaleDown.
Esempio
Il seguente esempio di log mostra un evento 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"
}
}
}
}
Messaggi
Gli eventi emessi dal gestore della scalabilità automatica del cluster utilizzano messaggi con parametri per fornire spiegazioni sull'evento. Il campo parameters
è disponibile insieme al campo messageId
, ad esempio in questo log di esempio per un evento NoScaleUp.
Questa sezione fornisce descrizioni di vari messageId
e dei relativi parametri. Tuttavia, questa sezione non contiene tutti i messaggi possibili e può essere estesa in qualsiasi momento.
Errori di ScaleUp
Puoi trovare i messaggi di errore relativi agli eventi scaleUp
nell'evento eventResult
corrispondente, nel campo resultInfo.results[].errorMsg
.
Messaggio | Dettagli | Parametri | Attenuazione |
---|---|---|---|
"scale.up.error.out.of.resources" |
Gli errori delle risorse si verificano quando provi a richiedere nuove risorse in una zona che non può soddisfare la tua richiesta a causa dell'attuale indisponibilità di una risorsa Compute Engine, ad esempio GPU o CPU. | ID MIG non riusciti. | Segui la procedura di risoluzione dei problemi di disponibilità delle risorse nella documentazione di Compute Engine. |
"scale.up.error.quota.exceeded" |
L'evento scaleUp non è riuscito perché non è stato possibile aumentare alcuni MIG per il superamento della quota Compute Engine. | ID MIG non riusciti. | Controlla la scheda Errori del gruppo di istanze gestite nella console Google Cloud per vedere quale quota viene superata. Dopo aver scoperto quale quota viene superata, segui le istruzioni per richiedere un aumento della quota. |
"scale.up.error.waiting.for.instances.timeout" |
Impossibile eseguire lo scale up del gruppo di istanze gestite a causa del timeout. | ID MIG non riusciti. | Questo messaggio dovrebbe essere transitorio. Se il problema persiste, contatta l'assistenza clienti Google Cloud per ulteriori accertamenti. |
"scale.up.error.ip.space.exhausted" |
Impossibile fare lo scale up perché le istanze in alcuni gruppi di istanze gestite hanno esaurito gli indirizzi IP. Ciò significa che il cluster non dispone di uno spazio di indirizzi IP non allocati sufficiente da utilizzare per aggiungere nuovi nodi o pod. | ID MIG non riusciti. | Segui la procedura di risoluzione dei problemi descritta in Spazio indirizzi IP non sufficiente per i pod. |
"scale.up.error.service.account.deleted" |
Impossibile fare lo scale up perché l'account di servizio è stato eliminato. | ID MIG non riusciti. | Prova a annullare l'eliminazione dell'account di servizio. Se la procedura non va a buon fine, contatta l'assistenza clienti Google Cloud per ulteriori accertamenti. |
Motivi di un evento noScaleUp
Un evento noScaleUp
viene emesso periodicamente quando nel cluster sono presenti pod non pianificabili e il gestore della scalabilità automatica dei cluster non può eseguire lo scale up del cluster per pianificare i pod. Gli eventi noScaleUp
sono basati sul criterio del massimo impegno e non coprono tutti i casi possibili.
Motivi di primo livello di NoScaleUp
I messaggi di motivo di primo livello per gli eventi noScaleUp
vengono visualizzati nel
noDecisionStatus.noScaleUp.reason
campo. Il messaggio contiene un motivo di primo livello per cui il gestore della scalabilità automatica dei cluster non può eseguire lo scale up del cluster.
Messaggio | Dettagli | Attenuazione |
---|---|---|
"no.scale.up.in.backoff" |
Non è stato fatto lo scale up perché è in un periodo di backoff (temporaneamente bloccato). Questo messaggio può verificarsi durante gli eventi di scalata con un numero elevato di pod. | Questo messaggio dovrebbe essere transitorio. Controlla questo errore dopo qualche minuto. Se il messaggio persiste, contatta l'assistenza clienti Google Cloud per ulteriori indagini. |
Motivi del provisioning automatico dei nodi di primo livello NoScaleUp
I messaggi relativi al motivo del provisioning automatico dei nodi di primo livello per gli eventi noScaleUp
vengono visualizzati
nel campo noDecisionStatus.noScaleUp.napFailureReason
. Il messaggio contiene un motivo di primo livello per cui il gestore della scalabilità automatica dei cluster non può eseguire il provisioning di nuovi pool di nodi.
Messaggio | Dettagli | Attenuazione |
---|---|---|
"no.scale.up.nap.disabled" |
Non è stato possibile eseguire lo scale up del provisioning automatico dei nodi perché il provisioning automatico dei nodi non è abilitato a livello di cluster. Se il provisioning automatico dei nodi è disabilitato, il provisioning dei nuovi nodi non verrà eseguito automaticamente se il pod in attesa contiene requisiti che non possono essere soddisfatti dai pool di nodi esistenti. |
Rivedi la configurazione del cluster e valuta la possibilità di attivare il provisioning automatico dei nodi. |
Motivi di NoScaleUp a livello di MIG
I messaggi di motivo a livello di MIG per gli eventi noScaleUp
vengono visualizzati nei campi
noDecisionStatus.noScaleUp.skippedMigs[].reason
e
noDecisionStatus.noScaleUp.unhandledPodGroups[].rejectedMigs[].reason
.
Il messaggio contiene un motivo per cui il gestore della scalabilità automatica dei cluster non può aumentare le dimensioni di un determinato gruppo di istanze gestite.
Messaggio | Dettagli | Parametri | Attenuazione |
---|---|---|---|
"no.scale.up.mig.skipped" |
Impossibile fare lo scale up di un gruppo di istanze gestite perché è stato ignorato durante la simulazione. | Motivi per cui il MIG è stato ignorato (ad esempio, manca un requisito per i pod). | Esamina i parametri inclusi nel messaggio di errore e risolvi il motivo per cui la MIG è stata ignorata. |
"no.scale.up.mig.failing.predicate" |
Impossibile fare lo scale up di un pool di nodi a causa di un predicato di pianificazione non riuscito per i pod in attesa. | Nome del predicato con errore e motivi dell'errore. | Esamina i requisiti del pod, ad esempio regole di affinità, incompatibilità o tolleranze e requisiti delle risorse. |
Motivi per cui non è stato eseguito lo scale up del provisioning automatico dei nodi a livello di gruppo di pod
I messaggi relativi al motivo del provisioning automatico dei nodi a livello di gruppo di pod per gli eventi noScaleUp
vengono visualizzati nel
noDecisionStatus.noScaleUp.unhandledPodGroups[].napFailureReasons[]
. Il messaggio contiene un motivo per cui il gestore della scalabilità automatica dei cluster non può eseguire il provisioning di un nuovo pool di nodi per pianificare un determinato gruppo di pod.
Messaggio | Dettagli | Parametri | Attenuazione |
---|---|---|---|
"no.scale.up.nap.pod.gpu.no.limit.defined" |
Il provisioning automatico dei nodi non ha potuto eseguire il provisioning di alcun gruppo di nodi perché un pod in attesa ha una richiesta GPU, ma i limiti delle risorse GPU non sono definiti a livello di cluster. | Tipo di GPU richiesto. | Rivedi la richiesta GPU del pod in attesa e aggiorna la configurazione del provisioning automatico dei nodi a livello di cluster per i limiti di GPU. |
"no.scale.up.nap.pod.gpu.type.not.supported" |
Il provisioning automatico dei nodi non ha eseguito il provisioning di alcun gruppo di nodi per il pod perché contiene richieste per un tipo di GPU sconosciuto. | Tipo di GPU richiesto. | Controlla la configurazione del pod in attesa per il tipo di GPU per assicurarti che corrisponda a un tipo di GPU supportato. |
"no.scale.up.nap.pod.zonal.resources.exceeded" |
Il provisioning automatico dei nodi non ha eseguito il provisioning di alcun gruppo di nodi per il pod in questa zona perché ciò violerebbe i limiti massimi di risorse a livello di cluster, supererebbe le risorse disponibili nella zona oppure non esiste un tipo di macchina adatto alla richiesta. | Nome della zona considerata. | Rivedi e aggiorna i limiti massimi delle risorse a livello di cluster, le richieste di risorse dei pod o le zone disponibili per il provisioning automatico dei nodi. |
"no.scale.up.nap.pod.zonal.failing.predicates" |
Il provisioning automatico dei nodi non ha eseguito il provisioning di alcun gruppo di nodi per il pod in questa zona a causa di predicati non funzionanti. | Nome della zona considerata e motivi per cui i predicati non sono riusciti. | Esamina i requisiti del pod in attesa, ad esempio regole di affinità, contaminazioni, tolleranze o requisiti delle risorse. |
Errori di riduzione
Puoi trovare i messaggi di eventi di errore per gli eventi scaleDown
nell'evento eventResult
corrispondente, nel campo resultInfo.results[].errorMsg
.
Messaggio di evento | Dettagli | Parametro | Attenuazione |
---|---|---|---|
"scale.down.error.failed.to.mark.to.be.deleted" |
Non è stato possibile contrassegnare un nodo per l'eliminazione. | Nome del nodo con errori. | Questo messaggio dovrebbe essere transitorio. Se il problema persiste, contatta l'assistenza clienti Google Cloud per ulteriori accertamenti. |
"scale.down.error.failed.to.evict.pods" |
Il gestore della scalabilità automatica dei cluster non può eseguire fare lo scale down perché non è stato possibile rimuovere alcuni pod da un nodo. | Nome del nodo con errori. | Esamina PodDisruptionBudget per il pod e assicurati che le regole consentano l'eliminazione delle repliche dell'applicazione, se accettabile. Per approfondire, consulta Specificare un budget di interruzione per l'applicazione nella documentazione di Kubernetes. |
"scale.down.error.failed.to.delete.node.min.size.reached" |
Il gestore della scalabilità automatica dei cluster non può eseguire fare lo scale down perché non è stato possibile eliminare un nodo a causa delle dimensioni già minime del cluster. | Nome del nodo con errori. | Rivedi il valore minimo impostato per la scalabilità automatica pool di nodi e modifica le impostazioni in base alle esigenze. Per saperne di più, consulta la sezione Errore: i nodi del cluster hanno raggiunto le dimensioni minime. |
Motivi di un evento noScaleDown
Un evento noScaleDown
viene emesso periodicamente quando esistono nodi la cui eliminazione è bloccata dal gestore della scalabilità automatica del cluster. Gli eventi noScaleDown
sono di tipo best effort e non coprono tutti i casi possibili.
Motivi di primo livello di NoScaleDown
I messaggi di motivo di primo livello per gli eventi noScaleDown
vengono visualizzati nel
noDecisionStatus.noScaleDown.reason
campo. Il messaggio contiene un motivo di primo livello per cui il gestore della scalabilità automatica dei cluster non può eseguire lo scale down del cluster.
Messaggio di evento | Dettagli | Attenuazione |
---|---|---|
"no.scale.down.in.backoff" |
Il gestore della scalabilità automatica dei cluster non può eseguire fare lo scale down perché è in un periodo di backoff (bloccato temporaneamente). | Questo messaggio dovrebbe essere temporaneo e può verificarsi quando si è verificato un evento di ridimensionamento recente. Se il messaggio persiste, contatta l'assistenza clienti Google Cloud per ulteriori accertamenti. |
"no.scale.down.in.progress" |
Il gestore della scalabilità automatica dei cluster non può eseguire fare lo scale down perché era ancora in corso uno fare lo scale down precedente. |
Questo messaggio dovrebbe essere transitorio, poiché il pod verrà eventualmente rimosso. Se questo messaggio si verifica di frequente, controlla il periodo di tolleranza prima dell'interruzione per il blocco del ridimensionamento dei pod. Per velocizzare la risoluzione, puoi anche eliminare il pod se non è più necessario. |
Motivi a livello di nodo NoScaleDown
I messaggi di motivo a livello di nodo per gli eventi noScaleDown
vengono visualizzati in
noDecisionStatus.noScaleDown.nodes[].reason field
. Il messaggio contiene un motivo per cui il gestore della scalabilità automatica dei cluster non può rimuovere un determinato nodo.
Messaggio di evento | Dettagli | Parametri | Attenuazione |
---|---|---|---|
"no.scale.down.node.scale.down.disabled.annotation" |
Il gestore della scalabilità automatica del cluster non può rimuovere un nodo dal pool di nodi perché
il nodo è annotato con
cluster-autoscaler.kubernetes.io/scale-down-disabled: true .
|
N/D | Il gestore della scalabilità automatica dei cluster salta i nodi con questa annotazione senza considerare il loro utilizzo e questo messaggio viene registrato indipendentemente dal fattore di utilizzo del nodo. Se vuoi che il gestore della scalabilità automatica del cluster riduca questi nodi, rimuovi l'annotazione. |
"no.scale.down.node.node.group.min.size.reached" |
Il gestore della scalabilità automatica dei cluster non può eseguire fare lo scale down se la dimensione del gruppo di nodi ha superato il limite minimo. Questo accade perché la rimozione dei nodi violerebbe i limiti minimi di risorse a livello di cluster definiti nelle impostazioni di provisioning automatico dei nodi. |
N/D | Controlla il valore minimo impostato per la scalabilità automatica del pool di nodi. Se vuoi che il gestore della scalabilità automatica del cluster riduca questo nodo, modifica il valore minimo. |
"no.scale.down.node.minimal.resource.limits.exceeded" |
Il gestore della scalabilità automatica dei cluster non può fare lo scale down i nodi perché violerebbe i limiti minimi di risorse a livello di cluster. Questi sono i limiti di risorse impostati per il provisioning automatico dei nodi. |
N/D | Rivedi i limiti per la memoria e le vCPU e, se vuoi che il gestore della scalabilità automatica dei cluster fare lo scale down questo nodo, diminuisci i limiti. |
"no.scale.down.node.no.place.to.move.pods" |
Il gestore della scalabilità automatica dei cluster non può eseguire fare lo scale down perché non è possibile spostare i pod. | N/D | Se prevedi che il pod debba essere ripianificato, esamina i requisiti di pianificazione dei pod sul nodo sottoutilizzato per determinare se possono essere spostati in un altro nodo del cluster. Per approfondire, consulta Errore: nessun luogo per spostare i pod. |
"no.scale.down.node.pod.not.backed.by.controller" |
Il pod sta bloccando fare lo scale down perché non è supportato da un controller. Nello specifico, il gestore della scalabilità automatica dei cluster non è in grado di fare lo scale down di un nodo sottoutilizzato a causa di un pod che non dispone di un controller riconosciuto. I controller consentiti includono ReplicationController, DaemonSet, Job, StatefulSet o ReplicaSet. |
Nome del pod di blocco. | Imposta l'annotazione
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"
per il pod o definisci un controller accettabile. |
"no.scale.down.node.pod.not.safe.to.evict.annotation" |
Un pod sul nodo ha l'annotazione safe-to-evict=false . |
Nome del pod di blocco. | Se il pod può essere rimosso in sicurezza, modifica il manifest del pod e
aggiorna l'annotazione su
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true" . |
"no.scale.down.node.pod.kube.system.unmovable" |
Il pod sta bloccando fare lo scale down perché è un pod senza DaemonSet,
senza mirroring e senza PodDisruptionBudget nello
spazio dei nomi kube-system . |
Nome del pod di blocco. | Per impostazione predefinita, i pod nello spazio dei nomi Per risolvere il problema, aggiungi un PodDisruptionBudget
per i pod |
"no.scale.down.node.pod.not.enough.pdb" |
Il pod sta bloccando fare lo scale down perché non dispone di un PodDisruptionBudget sufficiente. | Nome del pod di blocco. | Rivedi il PodDisruptionBudget per il pod e valuta la possibilità di renderlo meno restrittivo. Per saperne di più, consulta Errore: PodDisruptionBudget non sufficiente. |
"no.scale.down.node.pod.controller.not.found" |
Il pod sta bloccando fare lo scale down perché non è possibile trovare il relativo controller (ad esempio un deployment o un set di repliche). | N/D | Per determinare quali azioni sono state intraprese che hanno lasciato il pod in esecuzione dopo la rimozione del relativo controller, esamina i log. Per risolvere il problema, elimina manualmente il pod. |
"no.scale.down.node.pod.unexpected.error" |
Il pod sta bloccando fare lo scale down a causa di un errore imprevisto. | N/D | La causa principale di questo errore è sconosciuta. Contatta l'assistenza clienti Google Cloud per ulteriori accertamenti. |
Passaggi successivi
- Scopri di più sul gestore della scalabilità automatica dei cluster.
- Scopri come utilizzare il provisioning automatico dei nodi.
- Risolvi i problemi di scale down del gestore della scalabilità automatica dei cluster.
- Risolvi i problemi relativi allo scale up del gestore della scalabilità automatica dei cluster.
- Guarda un video di YouTube sulla risoluzione dei problemi di scalabilità.