Visualizzare gli eventi di scalabilità automatica del cluster


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:

  1. Nella console Google Cloud, vai alla pagina Cluster Kubernetes.

    Vai ai cluster Kubernetes

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

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

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

  5. (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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud:

    Vai a Google Kubernetes Engine

  2. Controlla la colonna Notifiche per cluster specifici per trovare le notifiche relative al ridimensionamento.

  3. 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 esempio us-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 esempio us-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 kube-system non vengono rimossi gestore della scalabilità automatica dei cluster.

Per risolvere il problema, aggiungi un PodDisruptionBudget per i pod kube-system o utilizza una combinazione di incompatibilità e tolleranze per separare i pod kube-system dal tuo dei pod dell'applicazione. Per saperne di più, consulta Error: kube-system Pod unmoveable.

"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