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 il modo in cui il gestore della scalabilità automatica dei cluster gestisce la scalabilità del cluster e comprende i motivi alla base delle sue decisioni.
Il gestore della scalabilità automatica dei 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 scalabilità automatica per visualizzare i log.
(Facoltativo) Per applicare filtri più avanzati e restringere i risultati, fai clic sull'icona con la freccia sul lato destro della pagina per visualizzare i log Esplora log.
Visualizzazione delle notifiche degli eventi di visibilità
Per visualizzare le notifiche degli eventi di visibilità nella pagina di Google Kubernetes Engine, esegui la seguenti:
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 dei cluster fa lo scale up del cluster. |
scaleDown |
Si verifica quando il gestore della scalabilità automatica del cluster riduce le dimensioni del cluster. |
eventResult |
Si verifica quando un evento scaleUp o scaledown viene completato correttamente o meno. |
nodePoolCreated |
Si verifica quando il gestore della scalabilità automatica dei cluster provisioning automatico dei nodi abilitato crea un nuovo pool di nodi. |
nodePoolDeleted |
Si verifica quando il gestore della scalabilità automatica dei cluster 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 di scaleup
Viene generato un evento scaleUp
quando il gestore della scalabilità automatica dei cluster fa 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 saperne di più su come funziona lo scale up, consulta
Come funziona lo scale up?
nelle domande frequenti sul gestore della scalabilità automatica
del cluster Kubernetes.
L'evento contiene informazioni su quali MIG sono stati sottoposti a scale up, per numero di nodi e quali pod non pianificabili hanno attivato l'evento.
L'elenco dei pod di attivazione viene troncato a 50 voci arbitrarie. La
il numero effettivo di pod di attivazione è disponibile nell'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 generato un evento scaleDown
quando il gestore della scalabilità automatica dei cluster fa lo scale down del cluster.
Per scoprire di più su come funziona la riduzione, consulta
Come funziona la riduzione?
nelle domande frequenti sul gestore della scalabilità automatica dei cluster Kubernetes.
I campi cpuRatio
e memRatio
descrivono l'utilizzo di CPU e memoria di
al 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 dei cluster ha fatto lo scale down 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
: il valore di Compute Engine del cluster regione, 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 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. R
dell'elenco di eventi eventResult vengono aggregati nel campo results
.
Per diagnosticare gli errori, consulta le sezioni Errori scaleUp e Errori scaleDown.
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 generato un evento nodePoolCreated
quando il gestore della scalabilità automatica dei cluster con provisioning automatico dei nodi
abilitato 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 del tipo "best effort", ovvero non coprono tutti possibili motivi per cui il gestore della scalabilità automatica dei cluster non può fare 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 arbitrariamente tra 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 di 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 viene impedito il gestore della scalabilità automatica dei cluster dallo scale up. Fai riferimento alla sezione NoScaleUp di primo livello motivi per informazioni.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). Consulta i motivi del provisioning automatico dei nodi di primo livello NoScaleUp per i dettagli.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 dalla considerazione per qualsiasi pod durante un tentativo di scale up (ad esempio, perché l'aggiunta di un altro nodo superare i limiti delle risorse a livello di cluster). Fai riferimento ai motivi a livello di MIG NoScaleUp. per i dettagli.unhandledPodGroups
: contiene informazioni sul motivo per cui un determinato gruppo di pod non pianificabili non attiva lo scale up. I pod vengono raggruppati il loro controllore immediato. I pod senza controller sono raggruppati per le istanze server autonomamente. Ogni gruppo di pod contiene un pod di esempio arbitrario e il numero di pod nel gruppo, oltre ai 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 ogni 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). Fai riferimento ai motivi a livello di MIG NoScaleUp. per i dettagli.
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 sono presenti nodi che
bloccata dall'eliminazione da parte del gestore della scalabilità automatica dei cluster.
- I nodi che non possono essere rimossi perché il loro utilizzo è elevato non sono inclusi negli eventi noScaleDown.
- Gli eventi NoScaledown sono il massimo impegno, ovvero non coprono tutti 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. Ciascuna motivo permanente viene emesso solo ogni due minuti.
- L'elenco dei nodi è troncato a 50 voci arbitrarie. Il numero effettivo di
puoi trovare i nodi 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 viene impedito il gestore della scalabilità automatica dei cluster dallo scale down (ad esempio, un periodo di backoff dopo lo scale up di recente). Per maggiori dettagli, consulta la sezione Motivi di primo livello di NoScaleDown.nodes[].reason
: fornisce i motivi per ogni nodo per cui è stato impedito al gestore della scalabilità automatica dei cluster di eliminare un determinato nodo (ad esempio, non c'è un luogo dove spostare i pod del nodo). Fai riferimento ai motivi a livello di nodo NoScaledown per i dettagli.
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 dei cluster usano messaggi con parametri per
dare spiegazioni per l'evento. Il campo parameters
è disponibile
con il campo messageId
, come in questo esempio di log 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 i passaggi per la 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 gruppi di istanze gestite. a causa del superamento della quota di 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 indagini. |
"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 in Spazio di indirizzi IP libero insufficiente 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 per 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 del motivo di primo livello per gli eventi noScaleUp
vengono visualizzati nel
noDecisionStatus.noScaleUp.reason
. 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 è possibile fare lo scale up perché è in un periodo di backoff (temporaneamente) bloccato). Messaggio che può essere visualizzato durante lo scale up con un numero elevato di pod. | Questo messaggio dovrebbe essere temporaneo. 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
Vengono visualizzati messaggi sul motivo del provisioning automatico dei nodi di primo livello per noScaleUp
eventi
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 ha 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 la dimensione
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 gruppo di istanze gestite è stato ignorato (ad esempio, mancanza di un pod requisito). | 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. | Rivedi i requisiti dei 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[]
. La
messaggio contiene un motivo per cui il gestore della scalabilità automatica dei cluster non può eseguire il provisioning di un nuovo nodo
per pianificare un particolare 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 il pod in attesa ha una richiesta GPU, 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 il livello di cluster configurazione del provisioning automatico dei nodi 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é ha 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 in questa zona a causa di predicati con errori. | 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 in errore. | 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ò fare lo scale down perché non è stato possibile fare lo scale down di 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. A per saperne di più, consulta Specificare un budget di interruzione per la tua applicazione nella documentazione di Kubernetes. |
"scale.down.error.failed.to.delete.node.min.size.reached" |
Il gestore della scalabilità automatica dei cluster non può fare lo scale down perché non è stato possibile eliminare un nodo poiché le dimensioni del cluster sono già minime. | Nome del nodo con errori. | Rivedi il valore minimo impostato per la scalabilità automatica del pool di nodi e modifica le impostazioni in base alle esigenze. Per saperne di più, consulta Errore: i nodi nel cluster hanno raggiunto le dimensioni minime. |
Motivi per un evento noScaledown
Un evento noScaleDown
viene emesso periodicamente quando sono presenti nodi che
bloccata dall'eliminazione da parte del gestore della scalabilità automatica dei cluster. Gli eventi noScaleDown
sono basati su un approccio di tipo best effort e non coprono tutti i casi possibili.
Motivi di primo livello di NoScaleDown
I messaggi del motivo di primo livello per gli eventi noScaleDown
vengono visualizzati nel
noDecisionStatus.noScaleDown.reason
. Il messaggio contiene una
motivo per cui il gestore della scalabilità automatica dei cluster non può fare 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 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 lo scale down perché era ancora in corso uno scale down precedente. |
Questo messaggio dovrebbe essere transitorio, poiché il pod verrà eventualmente rimosso. Se questo messaggio appare di frequente, rivedi le periodo di tolleranza per l'arresto per i pod che bloccano fare lo scale down. A la risoluzione, puoi anche eliminare il pod se necessario più tempo. |
Motivi a livello di nodo NoScaleDown
I messaggi del motivo a livello di nodo per noScaleDown
eventi vengono visualizzati nel
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 dei cluster non può rimuovere un nodo dal pool di nodi perché
sul nodo è annotato
cluster-autoscaler.kubernetes.io/scale-down-disabled: true .
|
N/D | Il gestore della scalabilità automatica dei cluster ignora i nodi con questa annotazione senza in base al loro utilizzo e questo messaggio viene registrato indipendentemente fattore di utilizzo del nodo. Se vuoi che il gestore della scalabilità automatica fare lo scale down di questi nodi, rimuovi l'annotazione. |
"no.scale.down.node.node.group.min.size.reached" |
Il gestore della scalabilità automatica dei cluster non può eseguire lo scale down se la dimensione del gruppo di nodi ha superato il limite minimo. Ciò accade perché la rimozione dei nodi violerebbe limiti minimi di risorse a livello di cluster definiti nel nodo le impostazioni di provisioning automatico. |
N/D | Controlla il valore minimo impostato per la scalabilità automatica del pool di nodi. Se vuoi gestore della scalabilità automatica dei cluster per fare lo scale down di questo nodo, il valore minimo. |
"no.scale.down.node.minimal.resource.limits.exceeded" |
Il gestore della scalabilità automatica dei cluster non può ridurre i nodi perché violerebbe i limiti minimi di risorse a livello di cluster. Questi sono i limiti delle risorse impostati per il provisioning automatico dei nodi. |
N/D | Esamina i limiti per la memoria e le vCPU e, se vuoi che il gestore della scalabilità automatica del cluster riduca questo nodo, aumenta i limiti. |
"no.scale.down.node.no.place.to.move.pods" |
Il gestore della scalabilità automatica dei cluster non può fare lo scale down perché non è possibile spostare di 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. A per saperne di più, consulta Errore: Non c'è posto in cui 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 eseguire 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 o StatefulSet o ReplicaSet. |
Nome del pod di blocco. | Impostare l'annotazione
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"
per il pod o definisci un controller accettabile. |
"no.scale.down.node.pod.has.local.storage" |
Il pod sta bloccando lo scale down perché dispone di archiviazione locale. | Nome del pod di blocco. | Imposta un'annotazione
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"
per il pod se i dati nello spazio di archiviazione locale del pod non sono critici.
Questo errore si verifica solo per i cluster che utilizzano una versione precedente alla 1.22. |
"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 file manifest del pod
aggiorna l'annotazione in
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true" . |
"no.scale.down.node.pod.kube.system.unmovable" |
Il pod sta bloccando 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 risorse sufficienti PodDisruptionBudget. | Nome del pod di blocco. | Rivedi il PodDisruptionBudget per il pod e valuta la possibilità di renderlo meno restrittivo. Per saperne di più, vedi Errore: PodDisruptionBudget insufficiente. |
"no.scale.down.node.pod.controller.not.found" |
Il pod sta bloccando fare lo scale down perché il suo controller (ad esempio, un Deployment o ReplicaSet). | 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. Da risolvere per questo problema, elimina manualmente il pod. |
"no.scale.down.node.pod.unexpected.error" |
Il pod sta bloccando 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 relativi allo 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à.