Questa pagina fornisce informazioni sugli eventi decisionali emessi dal gestore della scalabilità automatica dei pod verticale in Google Kubernetes Engine (GKE). Analizzando questi eventi, puoi ottenere informazioni su come il controller del gestore della scalabilità automatica pod verticale gestisce la scalabilità del carico di lavoro e comprendere il processo decisionale alla base delle sue azioni.
Il gestore della scalabilità automatica verticale dei pod genera eventi decisionali, che vengono archiviati come voci di log in Cloud Logging.
Prima di iniziare
Assicurati di completare i seguenti prerequisiti:
Seleziona o crea un progetto
Puoi utilizzare un progetto esistente o crearne uno nuovo per questo tutorial.
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Abilita le API
Abilita le API GKE e Cloud Logging.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Configura Cloud Shell
In questo tutorial utilizzi Cloud Shell per eseguire i comandi gcloud e kubectl. Cloud Shell è un ambiente shell per la gestione delle risorse ospitate su Cloud de Confiance by S3NS. È preinstallato con
Google Cloud CLI e lo strumento a riga di comando kubectl.
Nella console Cloud de Confiance , attiva Cloud Shell.
Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console.
Prima di eseguire i comandi in questo tutorial, assicurati che il progetto predefinito sia impostato sull'ID progetto in cui vuoi eseguire il deployment dell'app di esempio. Se non è già impostato, esegui questo comando in Cloud Shell:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con il tuo ID progetto.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per attivare la generazione di log e per accedere ai log ed elaborarli, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Per attivare la registrazione degli eventi di scalabilità automatica verticale dei pod nel cluster:
Amministratore cluster Kubernetes Engine (
roles/container.clusterAdmin) -
Per accedere ai log e utilizzare Esplora log e Observability Analytics:
Logs Viewer (
roles/logging.viewer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Requisiti
- Il cluster GKE deve eseguire la versione
1.36.0-gke.1601000o successive. - Abilita Cloud Logging nel tuo cluster GKE.
- Assicurati di avere un gestore della scalabilità automatica del pod verticale che vuoi monitorare. Assicurati che i campi del gestore di scalabilità automatica pod verticale non includano dati sensibili.
Costi
Si applicano i prezzi di Cloud Logging quando abiliti Cloud Logging e raccogli i log delle decisioni di scalabilità automatica pod verticale.
Abilita i log delle decisioni di Vertical Pod Autoscaler
I comandi nelle sezioni seguenti consentono di esportare i log
generati da KCP_VPA e salvarli nella
destinazione logName="projects/PROJECT_ID/logs/container.googleapis.com%2Fvpa-controller"
in Cloud Logging.
Abilitare i log in un nuovo cluster
Per creare un nuovo cluster con i log delle decisioni KCP_VPA abilitati, esegui il
seguente comando.
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--project=PROJECT_ID \
--logging=SYSTEM,KCP_VPA
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster che vuoi creare o aggiornare.PROJECT_ID: il tuo ID progetto Cloud de Confiance .LOCATION: le regioni o zone di computing per il tuo cluster.
Abilitare i log su un cluster esistente
Per abilitare i log delle decisioni KCP_VPA su un cluster esistente:
Rivedi la configurazione esistente del cluster. Se il cluster ha già configurato componenti di logging specifici, decidi se vuoi aggiungere o sovrascrivere la configurazione di logging esistente.
Per abilitare i log delle decisioni del gestore di scalabilità automatica pod verticale, esegui questo comando. Se stai aggiungendo a una configurazione esistente, aggiungi anche la configurazione di logging esistente al comando.
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --project=PROJECT_ID \ --logging=SYSTEM,KCP_VPASostituisci quanto segue:
CLUSTER_NAME: il nome del cluster da creare o aggiornare.PROJECT_ID: il tuo Cloud de Confiance ID progetto.LOCATION: le regioni o zone di computing per il tuo cluster.
Verifica che la registrazione sia abilitata
Per verificare che i log delle decisioni KCP_VPA siano abilitati su un cluster,
recupera la configurazione di logging aggiornata del cluster e controlla l'elenco dei log. Per farlo, esegui questo comando:
gcloud container clusters describe CLUSTER_NAME \
--location=LOCATION \
--flatten=loggingConfig \
--format='csv[delimiter=",",no-heading](componentConfig.enableComponents)'
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster.LOCATION: le regioni o zone di computing per il tuo cluster.
Quando i log delle decisioni KCP_VPA sono abilitati su un cluster, l'output è simile al seguente:
SYSTEM_COMPONENTS,APISERVER,CONTROLLER_MANAGER,SCHEDULER,KCP_VPA
Visualizza i log di Vertical Pod Autoscaler in Esplora log
Puoi monitorare il comportamento del Vertical Pod Autoscaler in Esplora log. Per visualizzare i log del gestore di scalabilità automatica pod verticale, completa i seguenti passaggi:
Vai alla pagina Esplora log:
Seleziona Tutti i nomi di log e cerca
vpa-controller.L'esploratore dei log mostra tutti i log del gestore della scalabilità automatica del pod verticale, inclusi i log di tutti i cluster che hanno abilitato i log del gestore della scalabilità automatica del pod verticale nel progetto.
Puoi filtrare i log utilizzando il nome del cluster o del carico di lavoro. Ad esempio, per elencare gli eventi di un carico di lavoro specifico in un cluster, specifica il nome del cluster e del carico di lavoro utilizzando la seguente query:
resource.labels.cluster_name="CLUSTER_NAME" AND jsonPayload.target.name="WORKLOAD_NAME"Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster.WORKLOAD_NAME: il nome del workload.
Disabilita i log delle decisioni di scalabilità automatica verticale dei pod
Per disattivare i log delle decisioni
KCP_VPAsu un cluster esistente, esegui questo comando:gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --project=PROJECT_ID \ --logging=SYSTEMVerifica che i log delle decisioni
KCP_VPAsiano disattivati. Per farlo, esegui il seguente comando:gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --flatten=loggingConfig \ --format='csv[delimiter=",",no-heading](componentConfig.enableComponents)'Quando i log delle decisioni di
KCP_VPAvengono disattivati su un cluster, l'output è simile al seguente:SYSTEM_COMPONENTS,APISERVER,CONTROLLER_MANAGER,SCHEDULER
Tipi di log
Gli eventi decisionali per il gestore della scalabilità automatica verticale dei pod vengono archiviati in
Cloud Logging, nella
posizione logName="projects/PROJECT_ID/logs/container.googleapis.com%2Fvpa-controller"
che si trova in _Default bucket nello stesso progetto del cluster GKE. Tutti gli eventi registrati sono in formato JSON e si trovano nel campo
jsonPayload di una voce di log.
Il tipo e la frequenza dei log generati dipendono dalla modalità di scalabilità automatica verticale dei pod configurata per il tuo workload. Esistono quattro tipi di log VPA, classificati in base all'operazione che eseguono:
- Aggiornamento del consiglio: ogni scalatore automatico dei pod verticali genera un nuovo log di aggiornamento del consiglio ogni minuto.
- Evict Pod: ogni gestore della scalabilità automatica pod verticale genera un log di espulsione del pod per ogni pod quando il gestore della scalabilità automatica pod verticale decide di ridimensionare in modalità
Recreate. - Applica suggerimento per l'espulsione: ogni scalabilità automatica verticale dei pod genera
un log di applicazione del suggerimento per ogni pod quando la scalabilità automatica verticale dei pod
decide di ridimensionare in modalità
Recreate. - Applica il suggerimento sul posto: ogni scalabilità automatica verticale dei pod genera
un log di applicazione del suggerimento sul posto per ogni pod quando la scalabilità automatica verticale dei pod decide di ridimensionare in modalità
InPlaceOrRecreate.
I tipi di log che il controller può emettere dipendono dalla modalità del gestore della scalabilità automatica verticale dei pod. La tabella seguente elenca i log che possono essere emessi per ogni modalità.
| Modalità di scalabilità automatica verticale dei pod | Tipi di log che possono essere emessi |
|---|---|
Auto (deprecato) o Recreate |
|
InPlaceOrRecreate |
|
Per un gestore della scalabilità automatica pod verticale con modalità InPlaceOrRecreate, quando In-place resize non va a buon fine, il gestore della scalabilità automatica si comporta come in modalità Recreate.
Suggerimento per l'aggiornamento
È possibile generare un log di consigli per l'aggiornamento con le seguenti
modalità di scalabilità automatica verticale dei pod: Auto (ritirata), Recreate
e InPlaceOrRecreate.
Il jsonPayload di questo log delle decisioni include i seguenti campi:
| Campo | Descrizione |
|---|---|
vpaName |
Il nome dell'assistente vocale. |
vpaNamespace |
Lo spazio dei nomi del VPA. |
target |
Il workload a cui è destinato questo VPA.
|
operation |
L'operazione in esecuzione. Il valore è uno dei seguenti:
|
state |
Stato dell'operazione. Il valore è uno dei seguenti:
|
reason |
Il motivo spiega perché l'operazione è stata saltata o non è riuscita. Per l'operazione |
recommendedResources |
Il suggerimento non elaborato. È esattamente lo stesso del campo Status.Recommendation nell'oggetto VPA.
|
confidence |
Affidabilità del consiglio. Questo campo esiste quando lo stato è succeeded. Il valore è uno dei seguenti:
|
Esempio di log dei consigli di aggiornamento:
{
"insertId": "ehz6w9d304v4zttg",
"jsonPayload": {
"state": "SUCCEEDED",
"instance": {
"vm_name": "my-unique-vm-identifier",
"zone": "us-central1-c"
},
"recommendedResources": [
{
"lowerBound": {
"memory": "5Mi",
"cpu": "5m"
},
"containerName": "nginx",
"uncappedTarget": {
"memory": "5Mi",
"cpu": "1m"
},
"upperBound": {
"memory": "5Mi",
"cpu": "5m"
},
"target": {
"memory": "5Mi",
"cpu": "5m"
}
}
],
"operation": "UPDATE_RECOMMENDATION",
"target": {
"name": "my-workload",
"kind": "Deployment",
"apiVersion": "apps/v1"
},
"vpaNamespace": "default",
"vpaName": "my-vpa"
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"component_location": "us-central1-c",
"project_id": "my-project",
"cluster_name": "my-cluster",
"location": "us-central1-c",
"component_name": "vpa-controller"
}
},
"timestamp": "2026-01-22T19:28:16.069635605Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:28:17.750678359Z"
}
Rimuovi pod
Un log di eliminazione dei pod è disponibile con la modalità VPA Auto (ritirata) e Recreate.
Questo tipo di log è possibile anche con la modalità VPA InPlaceOrRecreate se l'operazione In-place resize non va a buon fine.
Il jsonPayload di questo log delle decisioni include i seguenti campi:
| Campo | Descrizione |
|---|---|
vpaName |
Il nome dell'assistente vocale. |
vpaNamespace |
Lo spazio dei nomi del VPA. |
target |
Il workload a cui è destinato questo VPA.
|
operation |
L'operazione in esecuzione. Il valore è uno dei seguenti:
|
state |
Lo stato dell'operazione. Il valore è uno dei seguenti:
|
reason |
Il motivo spiega perché l'operazione è stata saltata o non è riuscita. Per l'operazione |
pod |
Il nome del pod. |
Esempio di log di eliminazione del pod:
{
"insertId": "8x278gc4f75oowf4",
"jsonPayload": {
"target": {
"kind": "Deployment",
"apiVersion": "apps/v1",
"name": "my-deployment"
},
"operation": "EVICT_POD",
"vpaName": "my-vpa",
"pod": "my-deployment-856ff7966-gr4rh",
"state": "SUCCEEDED",
"vpaNamespace": "default",
"instance": {
"vm_name": "my-unique-vm-identifier",
"zone": "us-central1-c"
}
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"component_name": "vpa-controller",
"cluster_name": "my-cluster",
"component_location": "us-central1-c",
"location": "us-central1-c",
"project_id": "my-project"
}
},
"timestamp": "2026-01-22T19:26:25.283067078Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:26:27.766941073Z"
}
Applica il suggerimento all'espulsione
Un suggerimento di applicazione nel log di espulsione è disponibile con la modalità VPA
Auto (ritirata) e Recreate. Questo tipo di log è possibile anche con la modalità VPA
InPlaceOrRecreate se In-place resize non va a buon fine.
Il jsonPayload di questo log delle decisioni include i seguenti campi:
| Campo | Descrizione |
|---|---|
vpaName |
Il nome dell'assistente vocale. |
vpaNamespace |
Lo spazio dei nomi del VPA. |
target |
Il workload a cui è destinato questo VPA.
|
operation |
L'operazione in esecuzione. Il valore è uno dei seguenti:
|
state |
Stato dell'operazione. Il valore è uno dei seguenti:
|
reason |
Il motivo spiega perché l'operazione è stata saltata o non è riuscita. Per l'operazione |
pod |
Il nome del pod. |
appliedResources |
Le risorse applicate al pod.
|
confidence |
L'affidabilità del suggerimento. Questo campo esiste quando lo stato è succeeded. Il valore è uno dei seguenti:
|
Esempio di applicazione del consiglio nel log di espulsione:
{
"insertId": "366tcmgdkq94eppg",
"jsonPayload": {
"appliedResources": [
{
"containerName": "my-container",
"requests": {
"memory": "15Mi",
"cpu": "15m"
}
}
],
"vpaName": "my-vpa",
"vpaNamespace": "default",
"instance": {
"zone": "us-central1-c",
"vm_name": "my-unique-vm-identifier"
},
"pod": "my-deployment-856ff7966-%",
"state": "SUCCEEDED",
"target": {
"name": "my-deployment",
"kind": "Deployment",
"apiVersion": "apps/v1"
},
"operation": "APPLY_RECOMMENDATION_ON_EVICTION"
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"location": "us-central1-c",
"component_location": "us-central1-c",
"cluster_name": "my-cluster",
"component_name": "vpa-controller",
"project_id": "my-project"
}
},
"timestamp": "2026-01-22T19:26:25.344313199Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:26:32.744122156Z"
}
Applica il consiglio sul posto
Un log di applicazione dei suggerimenti è disponibile con la modalità VPA
InPlaceOrRecreate.
Il jsonPayload di questo log delle decisioni include i seguenti campi:
| Campo | Descrizione |
|---|---|
vpaName |
Il nome dell'assistente vocale. |
vpaNamespace |
Lo spazio dei nomi del VPA. |
target |
Il workload a cui è destinato questo VPA.
|
operation |
L'operazione in esecuzione. Il valore è uno dei seguenti:
|
state |
Lo stato dell'operazione. Il valore è uno dei seguenti:
|
reason |
Il motivo spiega perché l'operazione è stata saltata o non è riuscita. Per l'operazione |
pod |
Il nome del pod. |
appliedResources |
Le risorse applicate al pod.
|
confidence |
L'affidabilità del suggerimento. Questo campo esiste quando lo stato è succeeded. Il valore è uno dei seguenti:
|
Esempio di applicazione del consiglio nel log dei luoghi:
{
"insertId": "suzfuepgyiwap7hb",
"jsonPayload": {
"pod": "my-deployment-cdc7fd7b4-grxlk",
"vpaNamespace": "default",
"state": "SUCCEEDED",
"target": {
"name": "my-deployment",
"apiVersion": "apps/v1",
"kind": "Deployment"
},
"operation": "APPLY_RECOMMENDATION_IN_PLACE",
"appliedResources": [
{
"containerName": "my-container",
"limits": {
"cpu": "10m",
"memory": "10Mi"
},
"requests": {
"cpu": "5m",
"memory": "5Mi"
}
}
],
"instance": {
"zone": "us-central1-c",
"vm_name": "my-unique-vm-identifier"
},
"vpaName": "my-vpa"
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"project_id": "my-project",
"component_location": "us-central1-c",
"cluster_name": "my-cluster",
"location": "us-central1-c",
"component_name": "vpa-controller"
}
},
"timestamp": "2026-01-22T19:26:25.214095375Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:26:27.766941073Z"
}
Risoluzione dei problemi
Questa sezione descrive i problemi e i passaggi per la risoluzione relativi agli eventi del gestore della scalabilità automatica verticale dei pod.
Nessun evento
Se non vedi eventi di decisione del gestore della scalabilità automatica pod verticale, assicurati di aver eseguito tutte le seguenti operazioni:
- Hai abilitato Cloud Logging per il cluster.
- Hai attivato i log
KCP_VPAper il cluster. - Hai eseguito il deployment di almeno un oggetto
vpaconfigurato correttamente nel cluster.
Per visualizzare la configurazione dell'oggetto vpa, esegui questo comando:
kubectl describe vpa $VPA_NAME
Se ancora non vedi alcun log KCP_VPA, contatta l'Cloud de Confiance assistenza.
Passaggi successivi
- Consulta la sezione Informazioni sui log di GKE.
- Comprendere i log di GKE.
- Scopri come trovare log GKE specifici utilizzando le query di esempio.
- Scopri di più sulla scalabilità automatica verticale dei pod.