Visualizzazione degli eventi di scalabilità automatica del cluster


Il gestore della scalabilità automatica del cluster Google Kubernetes Engine (GKE) emette eventi di visibilità, che sono disponibili come voci di log in Cloud Logging. Questa pagina fornisce informazioni su quando e perché il gestore della scalabilità automatica dei cluster GKE prende decisioni di scalabilità automatica. Per saperne di più, consulta le seguenti sezioni:

Requisiti di disponibilità

La possibilità di visualizzare gli eventi registrati per il gestore della scalabilità automatica dei cluster è disponibile nelle seguenti versioni del cluster:

Tipo di evento Versione cluster
status, scaleUp, scaleDown, eventResult 1.15.4-gke.7 e versioni successive
nodePoolCreated e nodePoolDeleted. 1.15.4-gke.18 e versioni successive
noScaleUp 1.16.6-gke.3 e versioni successive
noScaleDown 1.16.8-gke.2 e versioni successive

Per visualizzare gli eventi di scalabilità automatica, devi abilitare Cloud Operations for GKE nel tuo cluster. Gli eventi non vengono prodotti se Cloud Operations for GKE è disabilitato.

Visualizzazione degli eventi

Gli eventi di visibilità per il gestore della scalabilità automatica dei cluster vengono archiviati in un log di Cloud Logging, nello stesso progetto in cui si trova il cluster GKE. Puoi anche visualizzare questi eventi dalle notifiche nella pagina di Google Kubernetes Engine in Cloud Console.

Visualizzazione dei log eventi di visibilità

Per visualizzare i log, procedi nel seguente modo:

  1. In Cloud Console, vai alla pagina Cluster Kubernetes.

    Vai ai cluster Kubernetes

  2. Seleziona il nome del cluster per visualizzarne la pagina Dettagli cluster.

  3. Nella pagina Dettagli cluster, fai clic sulla scheda Log.

  4. Nella scheda Log, fai clic sulla scheda Log del gestore della scalabilità automatica per visualizzare i log.

  5. (Facoltativo) Per applicare filtri più avanzati in modo da limitare 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 relative agli eventi di visibilità nella pagina di Google Kubernetes Engine, esegui questo comando:

  1. Vai alla pagina Google Kubernetes Engine in Cloud Console:

    Vai a Google Kubernetes Engine

  2. Controlla la colonna Notifiche per i cluster specifici per trovare le notifiche relative alla scalabilità.

  3. Fai clic sulla notifica per informazioni dettagliate, sulle azioni consigliate e per accedere ai log di questo evento.

Tipi di eventi

Tutti gli eventi registrati sono in formato JSON e si trovano nel campo jsonPayload di una voce di log. Tutti i timestamp negli eventi sono timestamp UNIX secondi.

Ecco un riepilogo dei tipi di eventi emessi dal gestore della scalabilità automatica dei 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 di destinazione di tutti i pool di nodi con scalabilità automatica come osservato dal gestore della scalabilità automatica dei 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 dei cluster fa lo scale down del cluster.
eventResult Si verifica quando un evento scaleUp o scaledown viene completato correttamente o non riuscito.
nodePoolCreated Si verifica quando il gestore della scalabilità automatica dei cluster con 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 dei cluster non può fare lo scale up del cluster per soddisfare i pod.
noScaleDown Si verifica quando sono presenti nodi di cui è stata bloccata l'eliminazione dal gestore della scalabilità automatica dei cluster.

Evento di stato

Viene generato periodicamente un evento status che descrive le dimensioni effettive di tutti i pool di nodi con scalabilità automatica e le dimensioni di destinazione di tutti i pool di nodi con scalabilità automatica come osservati dal gestore della scalabilità automatica dei cluster.

Esempio

L'esempio di log seguente mostra un evento status:

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

Evento ScaleUp

Viene emesso 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 facendo lo scale up dei gruppi di istanze gestite (MIG) sottostanti per i pool di nodi.

L'evento contiene informazioni su quali MIG sono stati scalati, da quanti nodi e su quali pod non pianificabili hanno attivato l'evento.

L'elenco dei pod di attivazione è troncato a 50 voci arbitrarie. Il numero effettivo di pod di attivazione è indicato nel campo triggeringPodsTotalCount.

Esempio

L'esempio di log seguente 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 dei cluster fa lo scale down del cluster. Questo evento contiene informazioni sui nodi che vengono rimossi e su quali pod devono essere rimossi.

I campi cpuRatio e memRatio descrivono l'utilizzo della CPU e della memoria del nodo, come percentuale. Questo utilizzo è la somma di richieste di pod diviso per l'utilizzo nodo allocabile e non reale.

L'elenco dei pod rimossi viene troncato a 50 voci arbitrarie. Il numero effettivo di pod rimossi è riportato nel campo evictedPodsTotalCount.

Esempio

L'esempio di log seguente 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"
          }
        }
      ]
    }
  }
}

Evento EventResult

Viene emesso un evento eventResult quando un evento scaleUp o scaledown viene completato o senza successo. 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 è aggregato nel campo results.

Per diagnosticare gli errori, consulta le sezioni Errori di scale up ed Errori di scale down.

Esempio

L'esempio di log seguente 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 provisioning automatico dei nodi attivato 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, nel campo triggeringScaleUpId è incluso il valore eventId dell'evento scaleUp corrispondente.

Esempio

L'esempio di log seguente 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 NodePool

Quando viene emesso un evento nodePoolDeleted quando il gestore della scalabilità automatica dei cluster con provisioning automatico dei nodi abilitato elimina un pool di nodi.

Esempio

L'esempio di log seguente mostra un evento nodePoolDeleted:

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

Evento NoScaleUp

Viene generato periodicamente un evento noScaleUp quando sono presenti pod non pianificabili nel cluster e il gestore della scalabilità automatica dei cluster non può fare lo scale up del cluster per supportare i pod.

  • Gli eventi noScaleUp sono il massimo tentativo, ovvero questi eventi non coprono tutti i 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 permanente viene emesso solo ogni due minuti.
  • Tutti i motivi possono essere suddivisi arbitrariamente su più eventi. Ad esempio, non può essere garantito che tutti i motivi MIG rifiutati per un singolo gruppo di pod vengano 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 è indicato nel campo unhandledPodGroupsTotalCount.

Campi del motivo

I seguenti campi aiutano a spiegare perché non è avvenuto lo scale up:

  • reason: fornisce un motivo globale per cui si impedisce l'esecuzione dello scale up del cluster del gestore della scalabilità automatica. Per maggiori dettagli, consulta la sezione Motivi 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 MIG è stato ignorato. Il gestore della scalabilità automatica del cluster ignora alcuni MIG dalla considerazione per qualsiasi pod durante un tentativo di scale up (ad esempio, perché l'aggiunta di un altro nodo supererebbe i limiti delle risorse a livello di cluster). Per maggiori dettagli, consulta la sezione Motivi per il livello MIG NoNo.
  • 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 controller immediato. I pod senza controller sono in gruppi. 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 il gruppo di pod in questione (ad esempio, i pod hanno vincoli di affinità). Per informazioni dettagliate, consulta la sezione Motivi del provisioning automatico dei nodi a livello di pod NoScaleUp
    • rejectedMigs[].reason: motivi per MIG per cui il gestore della scalabilità automatica dei cluster non può aumentare le dimensioni di un determinato MIG per ospitare questo gruppo di pod (ad esempio, il nodo MIG è troppo piccolo per i pod). Per maggiori dettagli, consulta la sezione Motivi per il livello MIG NoNo.

Esempio

L'esempio di log seguente 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 NoScale Down

Viene generato periodicamente un evento noScaleDown quando ci sono nodi che sono bloccati dall'eliminazione dal gestore della scalabilità automatica dei cluster.

  • I nodi che non possono essere rimossi perché il loro utilizzo è elevato non sono inclusi negli eventi noScale Down.
  • Gli eventi NoScale Down sono il massimo tentativo, ovvero questi eventi non coprono tutti i possibili motivi per cui lo scale down automatico del cluster non può eseguire lo scale down.
  • Gli eventi NoScale Down vengono limitati per limitare il volume dei log prodotti. Ogni motivo permanente verrà emesso solo ogni due minuti.
  • L'elenco dei nodi viene troncato a 50 voci arbitrarie. Il numero effettivo di nodi è indicato nel campo nodesTotalCount.

Campi del motivo

I seguenti campi aiutano a spiegare perché non è avvenuto lo scale down:

  • reason: fornisce un motivo globale per cui si impedisce lo scale down automatico del gestore della scalabilità automatica del cluster (ad esempio un periodo di backoff dopo il scale up recente). Per maggiori dettagli, consulta la sezione Motivi di primo livello NoScale Down.
  • nodes[].reason: fornisce i motivi per nodo per cui al gestore della scalabilità automatica dei cluster viene impedito di eliminare un determinato nodo (ad esempio, non c'è spazio per spostare i pod del nodo). Per maggiori dettagli, consulta la sezione Motivi per il livello di nodo NoScale Down.

Esempio

L'esempio di log seguente 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"
      }
    }
  }
}

Risoluzione dei problemi di scalabilità

Questa sezione fornisce indicazioni su come risolvere i problemi di scalabilità degli eventi.

Impossibile fare lo scale up del cluster

Scenario: ho creato un pod nel mio cluster, ma si trova nello stato In attesa dell'ultima ora. Il gestore della scalabilità automatica dei cluster non ha eseguito il provisioning di nuovi nodi per ospitare il pod.

Soluzione:

  1. In Esplora log, trova i dettagli di logging per gli eventi del gestore della scalabilità automatica dei cluster, come descritto nella sezione Visualizzazione degli eventi.
  2. Cerca nel campo triggeringPods gli eventi scaleUp che contengono il pod desiderato. Puoi filtrare le voci di log, anche in base a un determinato valore di campo JSON. Scopri di più nella pagina Query avanzate dei log.

    1. Trova una EventResult che contiene lo stesso eventId dell'evento scaleUp.
    2. Esamina il campo errorMsg e consulta l'elenco di possibili messaggi di errore scaleup.

    Esempio di errore di scale up: per un evento scaleUp, scopri che l'errore è "scale.up.error.quota.exceeded", che indica che "Un evento scaleUp non è riuscito perché non è stato possibile aumentare alcuni MIG a causa del superamento della quota. Per risolvere il problema, rivedi le impostazioni della quota e aumenta le impostazioni che stanno per essere superate. Il gestore della scalabilità automatica dei cluster aggiunge un nuovo nodo e il pod è pianificato.

  3. In caso contrario, cerca gli eventi noScaleUp ed esamina i seguenti campi:

    • unhandledPodGroups: contiene informazioni sul pod (o sul controller del pod).
    • reason: fornisce i motivi globali che indicano che lo scale up potrebbe essere bloccato.
    • skippedMigs: fornisce i motivi per cui alcuni MIG potrebbero essere ignorati.
  4. Fai riferimento alle seguenti sezioni che contengono i possibili motivi per gli eventi noScaleUp:

    Esempio di scale up: hai trovato un evento noScaleUp per il pod e tutti i MIG nel campo rejectedMigs hanno lo stesso ID messaggio di "no.scale.up.mig.failing.predicate" con due parametri: "NodeAffinity" e "node(s) did not match node selector". Dopo aver consultato l'elenco dei messaggi di errore, ti rendi conto che "non è possibile fare lo scale up di un MIG, perché un predicato non funziona."I parametri sono il nome del predicato in errore e il motivo del fallimento. Per risolvere il problema, esamina la specifica dei pod e scopri che ha un selettore nodo che non corrisponde a MIG nel cluster. Elimina il selettore dalle specifiche del pod e ricrealo. Il gestore della scalabilità automatica dei cluster aggiunge un nuovo nodo e il pod viene pianificato.

  5. Se non ci sono eventi noScaleUp, utilizza altri metodi di debug per risolvere il problema.

Scale down del cluster non riuscito

Scenario: nel mio cluster è presente un nodo che ha utilizzato solo il 10% della sua CPU e della sua memoria negli ultimi due giorni. Nonostante il ridotto utilizzo, il gestore della scalabilità automatica dei cluster non ha eliminato il nodo come previsto.

Soluzione:

  1. In Esplora log, trova i dettagli di logging per gli eventi del gestore della scalabilità automatica dei cluster, come descritto nella sezione Visualizzazione degli eventi.
  2. Cerca gli eventi scaleDown che contengono il nodo desiderato nel campo nodesToBeRemoved. Puoi filtrare le voci di log, incluso il filtro in base a un determinato valore del campo JSON. Scopri di più nella pagina Query avanzate dei log.
    1. Nell'evento scaleDown, cerca un evento EventResult che contiene l'elemento eventId associato.
    2. Esamina il campo errorMsg e consulta l'elenco di possibili messaggi di errore scaledown.
  3. In alternativa, cerca gli eventi noScaleDown che contengono il nodo desiderato nel campo nodes. Controlla il campo reason per verificare se ci sono motivi globali che potrebbero indicare che lo scale down potrebbe essere bloccato.
  4. Fai riferimento alle sezioni seguenti che contengono i possibili motivi per gli eventi noScaleDown:

    Esempio di scale down: hai trovato un evento noScaleDown che contiene un motivo per nodo per il nodo. L'ID messaggio è "no.scale.down.node.pod.has.local.storage" e esiste un unico parametro: "test-single-pod". Dopo aver consultato l'elenco dei messaggi di errore, scopri che il "pod sta bloccando lo scale down perché richiede l'archiviazione locale". Consulta le Domande frequenti su Kubernetes Cluster Autoscaler e scopri che la soluzione è aggiungere un'annotazione "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" al pod. Dopo aver applicato l'annotazione, il gestore della scalabilità automatica dei cluster esegue lo scale down corretto del cluster.

  5. Se non ci sono eventi noScaleDown, utilizza altri metodi di debug per risolvere il problema.

Messaggi

Gli eventi emessi dal gestore della scalabilità automatica dei cluster utilizzano messaggi con parametri per fornire spiegazioni per l'evento. Il campo parameters è disponibile con il campo messageId, ad esempio in questo log di esempio per un evento NoScaleUp.

Questa sezione fornisce descrizioni per vari messageId e i relativi parametri. Tuttavia, questa sezione non contiene tutti i messaggi possibili e può essere estesa in qualsiasi momento.

Errori di scale up

I messaggi di errore per gli eventi scaleUp vengono trovati nell'evento eventResult corrispondente, nel campo resultInfo.results[].errorMsg.

Messaggio Descrizione Attenuazione

"scale.up.error.out.of.resources"
L'evento scaleUp non è riuscito perché non è stato possibile aumentare alcuni MIG per mancanza di risorse.

Parametri: ID MIG non riusciti.

Segui i passaggi per la risoluzione dei problemi di disponibilità delle risorse.

"scale.up.error.quota.exceeded"
L'evento scaleUp non è riuscito perché non è stato possibile aumentare alcuni MIG, a causa del superamento della quota di Compute Engine.

Parametri: ID MIG non riusciti.

Controlla la scheda Errori del MIG in Cloud Console per vedere quale quota viene superata. Segui le istruzioni per richiedere un aumento della quota.

"scale.up.error.waiting.for.instances.timeout"
L'evento scaleUp non è riuscito perché le istanze in alcuni MIG non sono riuscite a essere visualizzate in tempo.

Parametri: ID MIG non riusciti.

Questo messaggio è temporaneo. Se il problema persiste, contatta l'assistenza Google Cloud per ulteriori indagini.

"scale.up.error.ip.space.exhausted"
L'evento scaleUp non è riuscito perché il cluster non dispone di spazio sufficiente per gli indirizzi IP non allocati per l'aggiunta di nuovi nodi o pod.

Parametri: ID MIG non riusciti.

Fai riferimento ai passaggi per la risoluzione dei problemi per risolvere la mancanza di spazio di indirizzi IP per i nodi o i pod.

"scale.up.error.service.account.deleted"
L'evento scaleUp non è riuscito perché è stato eliminato un account di servizio utilizzato dal gestore della scalabilità automatica dei cluster.

Parametri: ID MIG non riusciti.

Coinvolgi l'assistenza di Google Cloud per ulteriori indagini.

Errori di scale down

I messaggi di errore per gli eventi scaleDown vengono trovati nell'evento eventResult corrispondente, nel campo resultInfo.results[].errorMsg.

Messaggio Descrizione Attenuazione

"scale.down.error.failed.to.mark.to.be.deleted"
L'evento scaledown non è riuscito perché non è stato possibile contrassegnare un nodo per l'eliminazione.

Parametri: nome del nodo non funzionante.

Questo messaggio è temporaneo. Se il problema persiste, contatta l'assistenza Google Cloud per ulteriori indagini.

"scale.down.error.failed.to.evict.pods"
L'evento scaledown non è riuscito perché non è stato possibile rimuovere alcuni pod da un nodo.

Parametri: nome del nodo non funzionante.

Consulta le best practice per i budget di interruzione dei pod per assicurarti che le regole consentano l'eliminazione delle repliche delle applicazioni quando sono accettabili.

"scale.down.error.failed.to.delete.node.min.size.reached"
L'evento scale down non è riuscito perché non è stato possibile eliminare un nodo a causa delle dimensioni già minime del cluster.

Parametri: nome del nodo non funzionante.

Rivedi il valore minimo impostato per la scalabilità automatica del pool di nodi e modifica le impostazioni in base alle esigenze.

Motivi per un evento NoScaleUp

Motivi di primo livello NoScaleUp

I messaggi di motivo di primo livello per gli eventi noScaleUp vengono visualizzati nel campo noDecisionStatus.noScaleUp.reason. Il messaggio contiene un motivo di primo livello per cui il gestore della scalabilità automatica dei cluster non può fare lo scale up del cluster.

Messaggio Descrizione Attenuazione

"no.scale.up.in.backoff"
Si è verificato un noScaleUp perché lo scale up è in un periodo di backoff (bloccato temporaneamente). Questo è un messaggio transitorio che potrebbe verificarsi durante eventi di scale up con un numero elevato di pod. Se il messaggio persiste, contatta l'assistenza di 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 Descrizione Attenuazione

"no.scale.up.nap.disabled"
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 consulta Abilitare il provisioning automatico dei nodi.

Motivi del livello MIG NoScaleUp

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 MIG.

Messaggio Descrizione Attenuazione

"no.scale.up.mig.skipped"
Impossibile fare lo scale up di un MIG perché è stato ignorato durante la simulazione.

Parametri: motivi leggibili per cui è stato ignorato (ad esempio, manca un requisito del pod).

Esamina i parametri inclusi nel messaggio di errore e spiega perché il MIG è stato ignorato.

"no.scale.up.mig.failing.predicate"
Impossibile fare lo scale up di un MIG perché non soddisfa i requisiti del predicato per i pod in attesa.

Parametri: nome del predicato in errore, motivo leggibile per il suo errore.

Rivedi i requisiti del pod, ad esempio le regole di affinità, le incompatibilità o le tolleranze e i requisiti delle risorse.

Motivi del provisioning automatico dei nodi a livello di gruppo NoScaleUp

I messaggi relativi al motivo del provisioning automatico dei nodi a livello di pod per gli eventi noScaleUp vengono visualizzati nel campo 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 supportare un determinato gruppo di pod.

Messaggio Descrizione Attenuazione

"no.scale.up.nap.pod.gpu.no.limit.defined"
Il provisioning automatico dei nodi non può 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.

Parametri: tipo di GPU richiesto.

Rivedi la richiesta GPU in attesa di pod e aggiorna la configurazione del provisioning automatico dei nodi a livello di cluster.

"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.

Parametri: tipo di GPU richiesto.

Controlla la configurazione in sospeso del tipo di GPU per verificare 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 delle risorse a livello di cluster, supererebbe le risorse disponibili nella zona o non esiste alcun tipo di macchina in grado di soddisfare la richiesta.

Parametri: 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 errori nei predicati.

Parametri: nome della zona considerata, motivi leggibili per cui i predicati non sono riusciti.

Rivedi i requisiti del pod in sospeso, ad esempio regole di affinità, incompatibilità, tolleranze o requisiti delle risorse.

Motivi per un evento NoScale Down

Motivi di primo livello NoScale Down

I messaggi di motivo di primo livello per gli eventi noScaleDown vengono visualizzati nel campo noDecisionStatus.noScaleDown.reason. Il messaggio contiene un motivo di primo livello per cui il gestore della scalabilità automatica dei cluster non può fare lo scale down del cluster.

Messaggio Descrizione Attenuazione

"no.scale.down.in.backoff"
Si è verificato un evento noScale Down perché lo scale down è in un periodo di backoff (bloccato temporaneamente). Questo evento dovrebbe essere temporaneo e potrebbe verificarsi quando si è verificato un evento di scale up recente. Segui i passaggi di mitigazione associati ai motivi di livello inferiore per i fallimenti dello scale down. Una volta risolti i motivi sottostanti, il gestore della scalabilità automatica dei cluster uscirà dal backoff. Se il messaggio persiste dopo aver risolto i motivi alla base, contatta l'assistenza Google Cloud per ulteriori indagini.

"no.scale.down.in.progress"
Si è verificato un evento noScale Down perché lo scale down è bloccato finché il nodo precedente pianificato per la rimozione non viene eliminato. Questo evento deve essere temporaneo, perché il pod verrà rimosso forzatamente. Se questo messaggio si verifica spesso, puoi esaminare il valore gracefulTerminationPeriod per lo scale down del blocco dei pod. Se vuoi accelerare la risoluzione, puoi anche eliminare forzatamente il pod quando non è più necessario.

Motivi a livello di nodo NoScale Down

I messaggi relativi ai motivi a livello di nodo per gli eventi noScaleDown vengono visualizzati nel campo noDecisionStatus.noScaleDown.nodes[].reason. Il messaggio contiene un motivo per cui il gestore della scalabilità automatica dei cluster non può rimuovere un determinato nodo.

Messaggio Descrizione Attenuazione

"no.scale.down.node.scale.down.disabled.annotation"
Impossibile rimuovere il nodo perché ha un'annotazione scale-down-disabled. Esamina l'annotazione che impedisce lo scale down seguendo le istruzioni riportate nelle Domande frequenti sulla scalabilità automatica dei cluster Kubernetes.

"no.scale.down.node.node.group.min.size.reached"
Impossibile rimuovere il nodo perché il suo gruppo di nodi ha già le sue dimensioni minime. Rivedi e modifica il valore minimo impostato per la scalabilità automatica del pool di nodi.

"no.scale.down.node.minimal.resource.limits.exceeded"
Lo scale down di un nodo sottoutilizzato è bloccato perché violi i limiti minimi di risorse a livello di cluster impostati per il provisioning automatico dei nodi. Rivedi i limiti minimi delle risorse a livello di cluster.

"no.scale.down.node.no.place.to.move.pods"
Lo scale down di un nodo sottoutilizzato è bloccato perché è in esecuzione un pod che non può essere spostato in un altro nodo del cluster. Se prevedi che il pod debba essere riprogrammato, esamina i requisiti di pianificazione dei pod sul nodo sottoutilizzato per determinare se possono essere spostati in un altro nodo del cluster. Questo messaggio è previsto se non prevedi che il pod venga riprogrammato poiché non ci sono altri nodi in cui programmarlo.

"no.scale.down.node.pod.not.backed.by.controller"
Il pod sta bloccando lo scale down di un nodo sottoutilizzato perché non ha un controller (ad esempio Deployment o ReplicaSet). Per saperne di più, consulta le domande frequenti sul gestore della scalabilità automatica dei cluster Kubernetes su quali tipi di pod possono impedire alla scalabilità automatica dei cluster di rimuovere un nodo.

Parametri: nome del pod di blocco.

Imposta un'annotazione "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" per il pod o definisci un controller (ad esempio Deployment o ReplicaSet).

"no.scale.down.node.pod.has.local.storage"
Il pod sta bloccando lo scale down perché richiede l'archiviazione locale. Per saperne di più, consulta le domande frequenti sul gestore della scalabilità automatica dei cluster Kubernetes su quali tipi di pod possono impedire alla scalabilità automatica dei cluster di rimuovere un nodo.

Parametri: 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 per il pod non sono fondamentali.

"no.scale.down.node.pod.not.safe.to.evict.annotation"
Il pod sta bloccando lo scale down perché è presente un'annotazione "espulsione". Per maggiori dettagli, consulta le Domande frequenti su Kubernetes Cluster Autoscaler.

Parametri: nome del pod di blocco.

Se il pod può essere rimosso in modo sicuro, aggiorna l'annotazione a "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.

Parametri: nome del pod di blocco.

Segui le istruzioni nelle Domande frequenti sul gestore della scalabilità automatica dei cluster Kubernetes per impostare un oggetto PodDisruptionBudget in modo da consentire al gestore della scalabilità automatica dei cluster di spostare i pod nello spazio dei nomi kube-system.

"no.scale.down.node.pod.not.enough.pdb"
Il pod sta bloccando lo scale down perché non è ancora presente PodDisruptionBudget sufficiente. Per maggiori dettagli, consulta le Domande frequenti su Kubernetes Cluster Autoscaler.

Parametri: nome del pod di blocco.

Rivedi il PodDisruptionBudget per il pod, consulta le best practice per PodDisruptionBudget. Potresti essere in grado di risolvere il messaggio scalando l'applicazione o modificando PodDisruptionBudget per consentire un numero maggiore di pod non disponibili.

"no.scale.down.node.pod.controller.not.found"
Il pod sta bloccando lo scale down perché non è possibile trovare il controller (ad esempio Deployment o ReplicaSet). Esamina i log per determinare quali azioni sono state eseguite che hanno lasciato in esecuzione un pod dopo la rimozione del controller. Per risolvere il problema, puoi eliminare manualmente il pod.

"no.scale.down.node.pod.unexpected.error"
Lo scale down di un nodo sottoutilizzato è bloccato perché include un pod in uno stato di errore imprevisto. Rivolgiti all'assistenza GCP per ulteriori indagini.

Passaggi successivi