Con Google Kubernetes Engine (GKE), puoi ricevere indicazioni prescrittive su come ottimizzare i tuoi cluster.
GKE monitora i tuoi cluster e, se esistono potenziali ottimizzazioni, fornisce indicazioni tramite Recommender, un servizio Google Cloud che genera insight e suggerimenti per l'utilizzo delle risorse su Google Cloud. Per GKE, i motori per i suggerimenti forniscono due tipi di informazioni:
- Un insight spiega che GKE ha rilevato che l'utilizzo del cluster può essere ottimizzato in qualche modo.
- Un suggerimento spiega come ottimizzare l'utilizzo del cluster.
GKE fornisce queste informazioni nella console Google Cloud e puoi trovarle anche con Google Cloud CLI e l'API Recommender. GKE fornisce motori per suggerimenti per argomenti tra cui:
- Deprecazioni: mitiga l'esposizione a funzionalità o API Kubernetes deprecate.
- Operazioni e connettività: risolvi i problemi relativi alla connettività del control plane e dei nodi e all'utilizzo degli indirizzi IP.
- Ottimizzazione dei costi: implementa configurazioni e pratiche ottimizzate per i costi. Ad esempio, identifica i cluster GKE inattivi, i cluster GKE con provisioning eccessivo e i workload con provisioning eccessivo.
- Scalabilità: implementa pratiche di miglioramento dell'affidabilità, come lo scale up dei cluster GKE con provisioning insufficiente e dei workload con provisioning insufficiente.
- Richieste e limiti di risorse: imposta richieste e limiti di risorse per evitare l'interruzione improvvisa dei pod in caso di pressione sulle risorse del nodo e migliorare l'accuratezza dell'allocazione dei costi.
- Agones: isola il controller Agones nel cluster.
- Interruzioni: garantiscono la continuità e la recuperabilità dei workload durante la manutenzione.
- Webhook: assicurati la stabilità del control plane quando utilizzi i webhook.
- Protezione dei dati: assicurati che i workload siano protetti da eventi dannosi.
- Credenziali del cluster: ruota le credenziali del cluster per evitare interruzioni.
- Canali di rilascio: registra i cluster in un canale di rilascio.
- Periodi di manutenzione: scegli un periodo di tempo ricorrente in cui viene eseguita la manutenzione del cluster GKE.
- Versioni supportate: assicurati che i cluster eseguano una versione supportata che rispetti anche la policy di disallineamento delle versioni di GKE. Per maggiori dettagli, consulta le sezioni Upgrade automatici al termine del supporto e Policy di disallineamento della versione di GKE nella pagina di riferimento.
- Autorizzazioni account di servizio del nodo: assicurati che i service account del nodo dispongano delle autorizzazioni critiche necessarie per le normali operazioni di GKE.
- CRD: garantisci operazioni del cluster stabili correggendo le CRD configurate in modo errato con un bundle CA non valido.
- Utilizzo di etcd: assicurati che il database etcd disponga di spazio di archiviazione sufficiente per evitare l'instabilità del cluster.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il comando
gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Ruoli obbligatori
Assicurati di disporre delle autorizzazioni necessarie per i suggerimenti e gli insight di Kubernetes, con i seguenti ruoli di base o ruoli predefiniti:
Visualizza insight e suggerimenti con uno dei seguenti ruoli:
Visualizza e aggiorna lo stato di insight e suggerimenti (ad esempio, ignora un suggerimento):
Visualizza approfondimenti e consigli
Puoi visualizzare insight e suggerimenti con Google Cloud CLI, nella consoleGoogle Cloud o con l'API Recommender.
Console
Quando visualizzi i suggerimenti nella console, hai due opzioni. Puoi utilizzare il prospetto generale nella parte superiore della visualizzazione per vedere i risultati aggregati dei suggerimenti per l'integrità, l'upgrade e l'ottimizzazione dei costi in tutti i cluster del progetto.
In alternativa, puoi visualizzare un elenco di suggerimenti per cluster.
Per visualizzare i suggerimenti utilizzando lo scorecard, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud :
Per visualizzare il numero di cluster interessati dai singoli suggerimenti, fai clic su Visualizza suggerimenti nella categoria che vuoi visualizzare: Integrità, Upgrade o Costo. Nel riquadro della barra laterale visualizzato, un elenco di suggerimenti indica quanti cluster sono interessati da ciascun suggerimento.
Per visualizzare ulteriori informazioni, inclusi i nomi dei cluster interessati, fai clic sul nome del suggerimento.
Per visualizzare ulteriori dettagli per ogni cluster interessato, fai di nuovo clic sul suggerimento.
Per visualizzare i suggerimenti per cluster, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud :
Controlla la colonna Notifiche per cluster specifici per trovare insight e suggerimenti.
Per visualizzare ulteriori informazioni, fai clic sull'insight. Nel riquadro della barra laterale visualizzato, puoi vedere i dettagli di questo insight, inclusi eventuali suggerimenti associati.
gcloud
In genere, a un insight corrisponde un suggerimento. Gli insight vengono recuperati con gcloud recommender insights e i suggerimenti con gcloud recommender recommendations.
Visualizza l'elenco degli insight per i cluster di una zona specifica (per i cluster di zona) o di una regione specifica (per i cluster regionali):
gcloud recommender insights list \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="insightSubtype:SUBTYPE"Sostituisci quanto segue:
PROJECT_ID: l'ID progetto Google Cloud per il progetto in cui si trovano i cluster.LOCATION: la regione o la zona esatta del cluster. Per i cluster di zona, devi fornire la zona esatta (ad es.us-central1-c). Per i cluster regionali, devi fornire la regione esatta (ad es.us-central1).FORMAT: modifica il formato di output in YAML. Questo flag è facoltativo.SUBTYPE: un sottotipo di insight, ad esempioDEPRECATION_K8S_1_23_CERTIFICATE. In questo modo, l'output viene limitato agli insight di un sottotipo specificato. Questo flag è facoltativo.
In alternativa, se hai già un ID insight, puoi visualizzare i dettagli dell'insight eseguendo questo comando:
gcloud recommender insights describe INSIGHT \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMATSostituisci
INSIGHTcon il valore dell'ID insight, specificato alla fine dell'URL dal camponameper l'insight.L'output include ulteriori dettagli sul comportamento rilevato da GKE nel cluster.
Visualizza l'elenco dei suggerimenti per i cluster di una zona specifica (per i cluster di zona) o di una regione specifica (per i cluster regionali):
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="recommenderSubtype:SUBTYPE"Sostituisci
SUBTYPEcon un sottotipo di motore per suggerimenti, ad esempioDEPRECATION_K8S_1_23_CERTIFICATE. In questo modo, l'output viene limitato ai suggerimenti di un sottotipo specificato. Questo flag è facoltativo.In alternativa, se hai già un ID suggerimento, puoi visualizzarlo eseguendo questo comando:
gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMATSostituisci
RECOMMENDATION_IDcon il valore salvato diassociatedRecommendations.recommendationdall'output comando nel passaggio 1.L'output fornisce indicazioni sulle azioni che potresti dover intraprendere per ottimizzare l'utilizzo di GKE da parte del cluster.
API
A ogni insight corrisponde un consiglio. Gli insight vengono recuperati con la risorsa REST: projects.locations.insightTypes.insights e i suggerimenti con la risorsa REST: projects.locations.recommenders.recommendations.
Visualizza l'elenco degli insight per i cluster di una zona specifica (per i cluster di zona) o di una regione specifica (per i cluster regionali):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPESostituisci quanto segue:
PROJECT_ID: l'ID progetto Google Cloud per il progetto in cui si trovano i cluster.LOCATION: la regione o la zona esatta del cluster. Per i cluster di zona, devi fornire la zona esatta (ad es.us-central1-c). Per i cluster regionali, devi fornire la regione esatta (ad es.us-central1).SUBTYPE: un sottotipo di insight, ad esempioDEPRECATION_K8S_1_23_CERTIFICATE. In questo modo, l'output viene limitato agli insight di un sottotipo specificato. Questo flag è facoltativo.
In alternativa, se hai già un ID insight, puoi visualizzare i dettagli sull'insight effettuando la seguente richiesta:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHTSostituisci
INSIGHTcon il valore dell'ID insight, specificato alla fine dell'URL dal camponameper l'insight.Il corpo della risposta include i dettagli sul comportamento rilevato da GKE nel tuo cluster.
Visualizza l'elenco dei suggerimenti per i cluster di una zona specifica (per i cluster di zona) o di una regione specifica (per i cluster regionali):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPESostituisci
SUBTYPEcon un sottotipo di motore per suggerimenti, ad esempioDEPRECATION_K8S_1_23_CERTIFICATE. In questo modo, l'output viene limitato ai suggerimenti di un sottotipo specificato. Questo flag è facoltativo.In alternativa, se hai già un ID suggerimento, puoi visualizzare il suggerimento effettuando la seguente richiesta:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_IDSostituisci
RECOMMENDATION_IDcon il valore salvato diassociatedRecommendations.recommendationdal corpo della risposta nel passaggio 1.Il corpo della risposta fornisce indicazioni sulle azioni che potresti dover intraprendere per ottimizzare l'utilizzo di GKE da parte del tuo cluster.
Esportazione di insight e suggerimenti in BigQuery
Puoi utilizzare BigQuery per esportare e analizzare insight e suggerimenti per l'intera organizzazione. Per saperne di più, consulta Esporta i suggerimenti in BigQuery.
Ignora o ripristina i consigli
Se non vuoi più visualizzare un suggerimento per un cluster nella consoleGoogle Cloud , ignoralo. Ad esempio, potresti farlo se hai valutato il suggerimento e hai deciso di non implementarlo.
Se ignori il suggerimento, questo non viene visualizzato per nessun utente che visualizza il cluster nella console. Dopo aver ignorato il suggerimento, questo non viene più visualizzato anche se GKE rileva lo stesso comportamento.
Quando ignori un suggerimento, lo nascondi solo per tutti gli utenti nella console. Il suggerimento rimane rilevabile con Google Cloud CLI e l'API Recommender.
Ignora un suggerimento
Per ignorare il suggerimento, segui le istruzioni per visualizzare insight e suggerimenti nella consoleGoogle Cloud per aprire il riquadro della barra laterale, che contiene ulteriori dettagli. In questo riquadro, fai clic sul pulsante Ignora.
Ignora i suggerimenti utilizzando Google Cloud CLI
Per ignorare un suggerimento utilizzando gcloud CLI, devi individuare il "valore etag" del suggerimento attivo e contrassegnarlo come ignorato.
Elenca i suggerimenti attivi: per trovare il suggerimento che vuoi ignorare, elenca i suggerimenti attivi per il tuo cluster. Per escludere i suggerimenti già ignorati o che hanno avuto esito positivo o negativo, utilizza il flag
--filter:gcloud recommender recommendations list \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATION \ --filter="stateInfo.state=ACTIVE"Sostituisci quanto segue:
RECOMMENDER_ID: l'ID del motore per suggerimenti.PROJECT_ID: l'ID progetto Google Cloud per il progetto in cui si trovano i cluster.LOCATION: la regione o la zona esatta del cluster. Per i cluster a livello di zona, devi fornire la zona esatta (ad esempious-central1-c). Per i cluster a livello di regione, devi fornire la regione esatta (ad esempious-central1).
Recupera l'etag: trova
RECOMMENDATION_IDdall'output precedente e descrivilo per recuperare lo stato attuale eetag:gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATIONSostituisci quanto segue:
RECOMMENDATION_ID: l'ID del suggerimento che vuoi ignorare.
Prendi nota del valore
etagnell'output (ad esempio,"a770e444b0088a35").Contrassegna come ignorato: esegui il comando
mark-dismissed. L'API Recommender richiede l'esattoetagper evitare race condition.gcloud recommender recommendations mark-dismissed RECOMMENDATION_ID \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATION \ --etag='"ETAG_VALUE"'Sostituisci quanto segue:
ETAG_VALUE: il valoreetagrestituito dal comando describe.
Ripristina un suggerimento ignorato
Puoi ripristinare un suggerimento ignorato seguendo le istruzioni per ripristinare un suggerimento.
Passaggi successivi
- Scopri di più sui motori per suggerimenti