Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Soluzione per il monitoraggio EKS dell'infrastruttura Amazon con Amazon Managed Grafana

Modalità Focus
Soluzione per il monitoraggio EKS dell'infrastruttura Amazon con Amazon Managed Grafana - Grafana gestito da Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Il monitoraggio dell'infrastruttura Amazon Elastic Kubernetes Service è uno degli scenari più comuni per i quali vengono utilizzati Amazon Managed Grafana. Questa pagina descrive un modello che fornisce una soluzione per questo scenario. La soluzione può essere installata utilizzando AWS Cloud Development Kit (AWS CDK)o con Terraform.

Questa soluzione configura:

  • Il tuo spazio di lavoro Amazon Managed Service for Prometheus per archiviare le metriche dal tuo cluster EKS Amazon e crea un raccoglitore gestito per analizzare le metriche e inviarle a quell'area di lavoro. Per ulteriori informazioni, consulta Ingest metrics with managed collectors. AWS

  • Raccolta dei log dal tuo EKS cluster Amazon tramite un CloudWatch agente. I log vengono archiviati e interrogati CloudWatch da Amazon Managed Grafana. Per ulteriori informazioni, consulta Logging for Amazon EKS

  • Il tuo spazio di lavoro Amazon Managed Grafana per recuperare i log e le metriche e creare dashboard e avvisi per aiutarti a monitorare il tuo cluster.

L'applicazione di questa soluzione creerà dashboard e avvisi che:

  • Valuta lo stato generale EKS del cluster Amazon.

  • Mostra lo stato e le prestazioni del piano di EKS controllo di Amazon.

  • Mostra lo stato e le prestazioni del piano EKS dati Amazon.

  • Visualizza approfondimenti sui EKS carichi di lavoro Amazon nei namespace Kubernetes.

  • Visualizza l'utilizzo delle risorse in tutti i namespace, incluso l'utilizzo della memoria, del disco e della rete. CPU

Informazioni su questa soluzione

Questa soluzione configura uno spazio di lavoro Amazon Managed Grafana per fornire parametri per il tuo cluster Amazon. EKS Le metriche vengono utilizzate per generare dashboard e avvisi.

Le metriche ti aiutano a gestire EKS i cluster Amazon in modo più efficace fornendo informazioni sullo stato e sulle prestazioni del piano dati e di controllo di Kubernetes. Puoi comprendere il tuo EKS cluster Amazon a livello di nodo, ai pod, fino al livello di Kubernetes, incluso il monitoraggio dettagliato dell'utilizzo delle risorse.

La soluzione offre funzionalità sia preventive che correttive:

  • Le funzionalità anticipatorie includono:

    • Gestisci l'efficienza delle risorse guidando le decisioni di pianificazione. Ad esempio, per fornire prestazioni e affidabilità SLAs agli utenti interni del EKS cluster Amazon, puoi allocare risorse di memoria sufficienti CPU ai loro carichi di lavoro in base al monitoraggio dell'utilizzo cronologico.

    • Previsioni di utilizzo: in base all'utilizzo attuale delle risorse del EKS cluster Amazon come nodi, volumi persistenti supportati da Amazon o Application Load Balancers EBS, puoi pianificare in anticipo, ad esempio, un nuovo prodotto o progetto con richieste simili.

    • Individua tempestivamente potenziali problemi: ad esempio, analizzando le tendenze del consumo di risorse a livello di namespace Kubernetes, puoi comprendere la stagionalità dell'utilizzo del carico di lavoro.

  • Le funzionalità correttive includono:

    • Riduci il tempo medio di rilevamento (MTTD) dei problemi sull'infrastruttura e sul livello di carico di lavoro Kubernetes. Ad esempio, esaminando la dashboard per la risoluzione dei problemi, puoi testare rapidamente le ipotesi su cosa è andato storto ed eliminarle.

    • Determina in quale parte dello stack si è verificato un problema. Ad esempio, il piano di EKS controllo di Amazon è completamente gestito da AWS e alcune operazioni come l'aggiornamento di una distribuzione Kubernetes potrebbero non riuscire se il API server è sovraccarico o la connettività è compromessa.

L'immagine seguente mostra un esempio della cartella dashboard per la soluzione.

Un'immagine che mostra un esempio di cartella dashboard Grafana creata utilizzando questa soluzione.

Puoi scegliere una dashboard per visualizzare maggiori dettagli, ad esempio, scegliendo di visualizzare le risorse di elaborazione per i carichi di lavoro, verrà visualizzata una dashboard, come quella mostrata nell'immagine seguente.

Un'immagine che mostra un esempio di dashboard Grafana che mostra CPU l'utilizzo creato con questa soluzione.

Le metriche vengono elaborate con un intervallo di raschiatura di 1 minuto. I dashboard mostrano le metriche aggregate a 1 minuto, 5 minuti o più, in base alla metrica specifica.

I log vengono visualizzati anche nelle dashboard, in modo da poter interrogare e analizzare i log per trovare le cause principali dei problemi. L'immagine seguente mostra un pannello di controllo dei log.

Un'immagine che mostra un esempio di dashboard Grafana con log, creata utilizzando questa soluzione.

Per un elenco delle metriche tracciate da questa soluzione, consulta. Elenco delle metriche tracciate

Per un elenco degli avvisi creati dalla soluzione, consulta. Elenco degli avvisi creati

Costi

Questa soluzione crea e utilizza risorse nell'area di lavoro. Ti verrà addebitato l'utilizzo standard delle risorse create, tra cui:

  • Accesso agli spazi di lavoro Amazon Managed Grafana da parte degli utenti. Per ulteriori informazioni sui prezzi, consulta i prezzi di Amazon Managed Grafana.

  • Inserimento e archiviazione delle metriche di Amazon Managed Service for Prometheus, incluso l'uso del raccoglitore agentless di Amazon Managed Service for Prometheus e l'analisi metrica (elaborazione di esempi di query). Il numero di parametri utilizzati da questa soluzione dipende dalla configurazione e dall'utilizzo del EKS cluster Amazon.

    Puoi visualizzare i parametri di ingestione e archiviazione in Amazon Managed Service for Prometheus utilizzando Per CloudWatch ulteriori informazioni, consulta i parametri CloudWatchnella Guida per l'utente di Amazon Managed Service for Prometheus.

    Puoi stimare il costo utilizzando il calcolatore dei prezzi nella pagina dei prezzi di Amazon Managed Service for Prometheus. Il numero di parametri dipenderà dal numero di nodi del cluster e dai parametri prodotti dalle applicazioni.

  • CloudWatch Inserimento, archiviazione e analisi dei log. Per impostazione predefinita, la conservazione dei log è impostata per non scadere mai. Puoi modificarlo in CloudWatch. Per ulteriori informazioni sui prezzi, consulta la pagina CloudWatch dei prezzi di Amazon.

  • Costi di rete. È possibile che vengano addebitati costi AWS di rete standard per diverse zone di disponibilità, regioni o altro traffico.

I calcolatori dei prezzi, disponibili nella pagina dei prezzi di ciascun prodotto, possono aiutarti a comprendere i costi potenziali della tua soluzione. Le seguenti informazioni possono aiutare a calcolare un costo base per la soluzione in esecuzione nella stessa zona di disponibilità del EKS cluster Amazon.

Product Metrica della calcolatrice Valore

Amazon Managed Service per Prometheus

Serie Active

8000 (base)

15.000 (per nodo)

Intervallo di raccolta medio

60 (secondi)

Amazon Managed Service per Prometheus (gestore di raccolta)

Numero di collezionisti

1

Numero di campioni

15 (base)

150 (per nodo)

Numero di regole

161

Intervallo medio di estrazione delle regole

60 (secondi)

Grafana gestito da Amazon

Numero di editori/amministratori attivi

1 (o più, in base ai tuoi utenti)

CloudWatch (Registri)

Registri standard: dati inseriti

24,5 GB (base)

0,5 GB (per nodo)

Archiviazione/archiviazione dei registri (registri standard e forniti)

Sì all'archiviazione dei log: presupponendo una conservazione di 1 mese

Registri e dati previsti scansionati

Ogni query di log insights di Grafana analizzerà tutti i contenuti dei log del gruppo nel periodo di tempo specificato.

Questi numeri sono i numeri di base per una soluzione che funziona EKS senza software aggiuntivo. In questo modo si otterrà una stima dei costi base. Inoltre, esclude i costi di utilizzo della rete, che varieranno a seconda che l'area di lavoro Amazon Managed Grafana, l'area di lavoro Amazon Managed Service for Prometheus e il EKS cluster Amazon si trovino nella stessa zona di disponibilità, e. Regione AWS VPN

Nota

Quando un elemento di questa tabella include un (base) valore e un valore per risorsa (ad esempio,(per node)), dovresti aggiungere il valore di base al valore per risorsa moltiplicato per il numero di quella risorsa a tua disposizione. Ad esempio, per Serie temporali attive medie, inserisci un numero che sia8000 + the number of nodes in your cluster * 15,000. Se hai 2 nodi, devi inserire38,000, che è8000 + ( 2 * 15,000 ).

Prerequisiti

Questa soluzione richiede che siano state effettuate le seguenti operazioni prima di utilizzarla.

  1. Devi avere o creare un cluster Amazon Elastic Kubernetes Service che desideri monitorare e il cluster deve avere almeno un nodo. Il cluster deve avere l'accesso agli endpoint API del server impostato in modo da includere l'accesso privato (può anche consentire l'accesso pubblico).

    La modalità di autenticazione deve includere API l'accesso (può essere impostata su una delle due opzioni APIAPI_AND_CONFIG_MAP). Ciò consente all'implementazione della soluzione di utilizzare le voci di accesso.

    Nel cluster devono essere installati i seguenti componenti (true per impostazione predefinita quando si crea il cluster tramite la console, ma devono essere aggiunti se si crea il cluster utilizzando AWS API or AWS CLI): AWS CNI, Core DNS e AddOns Kube-proxy.

    Salva il nome del cluster da specificare in seguito. È possibile trovarlo nei dettagli del cluster nella EKS console Amazon.

    Nota

    Per informazioni dettagliate su come creare un EKS cluster Amazon, consulta la sezione Guida introduttiva ad Amazon EKS.

  2. Devi creare uno spazio di lavoro Amazon Managed Service for Prometheus nello stesso spazio del tuo cluster Amazon. Account AWS EKS Per i dettagli, consulta la Guida per l'utente di Create a workspace nella Amazon Managed Service for Prometheus User Guide.

    Salva l'area di lavoro Amazon Managed Service for ARN Prometheus per specificarlo in seguito.

  3. Devi creare uno spazio di lavoro Amazon Managed Grafana con Grafana versione 9 o successiva, nello stesso del tuo cluster Amazon. Regione AWS EKS Per dettagli sulla creazione di un nuovo spazio di lavoro, consulta. Crea uno spazio di lavoro Amazon Managed Grafana

    Il ruolo dell'area di lavoro deve disporre delle autorizzazioni per accedere ad Amazon Managed Service per Prometheus e Amazon. CloudWatch APIs Il modo più semplice per farlo è utilizzare le autorizzazioni gestite dal servizio e selezionare Amazon Managed Service for Prometheus e. CloudWatch Puoi anche aggiungere manualmente le politiche e al tuo ruolo nell'area di AmazonPrometheusQueryAccesslavoro AmazonGrafanaCloudWatchAccess. IAM

    Salva l'ID e l'endpoint dell'area di lavoro Amazon Managed Grafana per specificarli in un secondo momento. L'ID è nel modulo. g-123example L'ID e l'endpoint sono disponibili nella console Amazon Managed Grafana. L'endpoint serve URL per l'area di lavoro e include l'ID. Ad esempio https://g-123example.grafana-workspace.<region>.amazonaws.com/.

  4. Se stai distribuendo la soluzione con Terraform, devi creare un bucket Amazon S3 accessibile dal tuo account. Questo verrà utilizzato per archiviare i file di stato Terraform per la distribuzione.

    Salva l'ID del bucket Amazon S3 per specificarlo in seguito.

  5. Per visualizzare le regole di avviso di Amazon Managed Service for Prometheus, devi abilitare gli avvisi Grafana per l'area di lavoro Amazon Managed Grafana.

    Inoltre, Amazon Managed Grafana deve disporre delle seguenti autorizzazioni per le tue risorse Prometheus. È necessario aggiungerle alle politiche gestite dal servizio o gestite dal cliente descritte in Autorizzazioni e policy di Amazon Managed Grafana per le fonti di dati AWS.

    • aps:ListRules

    • aps:ListAlertManagerSilences

    • aps:ListAlertManagerAlerts

    • aps:GetAlertManagerStatus

    • aps:ListAlertManagerAlertGroups

    • aps:PutAlertManagerSilences

    • aps:DeleteAlertManagerSilence

Nota

Sebbene non sia strettamente necessario per configurare la soluzione, devi configurare l'autenticazione degli utenti nel tuo spazio di lavoro Amazon Managed Grafana prima che gli utenti possano accedere ai dashboard creati. Per ulteriori informazioni, consulta Autentica gli utenti nelle aree di lavoro Amazon Managed Grafana.

Utilizzo di questa soluzione

Questa soluzione configura AWS l'infrastruttura per supportare i parametri di reporting e monitoraggio da un cluster AmazonEKS. Puoi installarlo utilizzando AWS Cloud Development Kit (AWS CDK)o con Terraform.

Using AWS CDK

Un modo in cui questa soluzione ti viene fornita è come AWS CDK applicazione. Fornirai informazioni sulle risorse che desideri utilizzare e la soluzione creerà lo scraper, i log e i dashboard per te.

Nota

I passaggi seguenti presuppongono che si disponga di un ambiente con e AWS CLI AWS CDK, e sia Node.js che installato. NPM Utilizzerai make e brew semplificherai la compilazione e altre azioni comuni.

Utilizzare questa soluzione per monitorare un EKS cluster Amazon con AWS CDK
  1. Assicurati di aver completato tutti i passaggi relativi ai prerequisiti.

  2. Scarica tutti i file per la soluzione da Amazon S3. I file si trovano in s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac e puoi scaricarli con il seguente comando Amazon S3. Esegui questo comando da una cartella nel tuo ambiente a riga di comando.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac/ .

    Non è necessario modificare questi file.

  3. Nell'ambiente a riga di comando (dalla cartella in cui sono stati scaricati i file della soluzione), esegui i comandi seguenti.

    Imposta le variabili di ambiente necessarie. Sostituisci REGION AMG_ENDPOINTEKS_CLUSTER, e AMP_ARN con il tuo Regione AWS endpoint di spazio di lavoro Amazon Managed Grafana (nel modulo)http://g-123example.grafana-workspace.us-east-1.amazonaws.com, il nome del EKS cluster Amazon e l'area di lavoro Amazon Managed Service for Prometheus. ARN

    export AWS_REGION=REGION export AMG_ENDPOINT=AMG_ENDPOINT export EKS_CLUSTER_NAME=EKS_CLUSTER export AMP_WS_ARN=AMP_ARN
  4. È necessario creare un token di account di servizio con ADMIN accesso per chiamare Grafana HTTPAPIs. Per informazioni dettagliate, consultare Usa gli account di servizio per l'autenticazione con Grafana HTTP APIs. È possibile utilizzare il AWS CLI con i seguenti comandi per creare il token. Dovrai sostituirlo GRAFANA_ID con l'ID del tuo spazio di lavoro Grafana (sarà nel modulo). g-123example Questa chiave scadrà dopo 7.200 secondi o 2 ore. È possibile modificare l'ora (seconds-to-live), se necessario. L'implementazione richiede meno di un'ora.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for calling APIs export AMG_API_KEY=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)

    Rendi disponibile la API chiave AWS CDK aggiungendola a AWS Systems Manager con il seguente comando. Sostituiscila AWS_REGION con la regione in cui verrà eseguita la soluzione (nel modulous-east-1).

    aws ssm put-parameter --name "/observability-aws-solution-eks-infra/grafana-api-key" \ --type "SecureString" \ --value $AMG_API_KEY \ --region AWS_REGION \ --overwrite
  5. Esegui il make comando seguente, che installerà tutte le altre dipendenze per il progetto.

    make deps
  6. Infine, esegui il AWS CDK progetto:

    make build && make pattern aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME deploy
  7. [Facoltativo] Una volta completata la creazione dello stack, puoi utilizzare lo stesso ambiente per creare più istanze dello stack per altri EKS cluster Amazon nella stessa regione, purché soddisfi gli altri prerequisiti per ciascuno (inclusi spazi di lavoro Amazon Managed Grafana e Amazon Managed Service for Prometheus separati). Dovrai ridefinire i comandi con i nuovi parametri. export

Una volta completata la creazione dello stack, il tuo spazio di lavoro Amazon Managed Grafana verrà popolato con una dashboard che mostra le metriche per il tuo cluster Amazon. EKS La visualizzazione delle metriche richiederà alcuni minuti, non appena lo scraper inizierà a raccogliere le metriche.

Using Terraform

Un modo in cui questa soluzione ti viene fornita è come soluzione Terraform. Fornirai informazioni sulle risorse che desideri utilizzare e la soluzione creerà lo scraper, i log e i dashboard per te.

Per utilizzare questa soluzione per monitorare un EKS cluster Amazon con Terraform
  1. Assicurati di aver completato tutti i passaggi relativi ai prerequisiti.

  2. Scarica tutti i file per la soluzione da Amazon S3. I file si trovano in s3://aws-observability-solutions/EKS/OSS/Terraform/v3.0.0/ e puoi scaricarli con il seguente comando Amazon S3. Esegui questo comando da una cartella nel tuo ambiente a riga di comando, quindi cambia la directory nella cartella da cui eseguirai la distribuzione.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/Terraform/v3.0.0/ . cd eks-monitoring

    Non è necessario modificare questi file.

  3. Nell'ambiente a riga di comando (dalla cartella in cui sono stati scaricati i file della soluzione), esegui i comandi seguenti.

    Imposta le variabili di ambiente necessarie. Sostituisci REGIONAMG_ENDPOINT,EKS_CLUSTER,AMP_ARN, eS3_ID, con l'endpoint dell'area di lavoro Amazon Managed Grafana (nel modulous-east-1), il nome del EKS cluster Amazon, l'area di lavoro Amazon Managed Service for Prometheus e l'ID del bucket Amazon S3 Regione AWS dove desideri che vengano distribuite le nuove risorse (ad esempiohttp://g-123example.grafana-workspace.us-east-1.amazonaws.com). ARN

    export TF_VAR_aws_region=REGION export TF_VAR_amg_endpoint=AMG_ENDPOINT export TF_VAR_eks_cluster_name=EKS_CLUSTER export TF_VAR_amp_ws_arn=AMP_ARN export TF_VAR_s3_bucket_id=S3_ID
  4. È necessario creare un token di account di servizio con ADMIN accesso per chiamare Grafana HTTPAPIs. Per informazioni dettagliate, consultare Usa gli account di servizio per l'autenticazione con Grafana HTTP APIs. È possibile utilizzare il AWS CLI con i seguenti comandi per creare il token. Dovrai sostituirlo GRAFANA_ID con l'ID del tuo spazio di lavoro Grafana (sarà nel modulo). g-123example Questa chiave scadrà dopo 7.200 secondi o 2 ore. È possibile modificare l'ora (seconds-to-live), se necessario. L'implementazione richiede meno di un'ora.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for running Terraform export TF_VAR_grafana_api_key=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)
    Nota

    Il primo passaggio precedente, la creazione di un account di servizio per l'area di lavoro non è necessaria se disponi già di un account di servizio. In questo caso, sostituiscilo $GRAFANA_SA_ID con l'ID del tuo account di servizio.

  5. Esegui il seguente terraform comando per inizializzare Terraform con la soluzione.

    terraform init -reconfigure \ -backend-config="bucket=${TF_VAR_s3_bucket_id}" \ -backend-config="region=${TF_VAR_aws_region}" \ -backend-config="key=state/${TF_VAR_eks_cluster_name}/terraform.tfstate"
  6. Infine, implementa il progetto Terraform:

    terraform apply

Una volta completata la creazione della soluzione, il tuo spazio di lavoro Amazon Managed Grafana verrà popolato con una dashboard che mostra le metriche per il tuo cluster Amazon. EKS La visualizzazione delle metriche richiederà alcuni minuti, non appena lo scraper inizierà a raccogliere le metriche.

Un modo in cui questa soluzione ti viene fornita è come AWS CDK applicazione. Fornirai informazioni sulle risorse che desideri utilizzare e la soluzione creerà lo scraper, i log e i dashboard per te.

Nota

I passaggi seguenti presuppongono che si disponga di un ambiente con e AWS CLI AWS CDK, e sia Node.js che installato. NPM Utilizzerai make e brew semplificherai la compilazione e altre azioni comuni.

Utilizzare questa soluzione per monitorare un EKS cluster Amazon con AWS CDK
  1. Assicurati di aver completato tutti i passaggi relativi ai prerequisiti.

  2. Scarica tutti i file per la soluzione da Amazon S3. I file si trovano in s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac e puoi scaricarli con il seguente comando Amazon S3. Esegui questo comando da una cartella nel tuo ambiente a riga di comando.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac/ .

    Non è necessario modificare questi file.

  3. Nell'ambiente a riga di comando (dalla cartella in cui sono stati scaricati i file della soluzione), esegui i comandi seguenti.

    Imposta le variabili di ambiente necessarie. Sostituisci REGION AMG_ENDPOINTEKS_CLUSTER, e AMP_ARN con il tuo Regione AWS endpoint di spazio di lavoro Amazon Managed Grafana (nel modulo)http://g-123example.grafana-workspace.us-east-1.amazonaws.com, il nome del EKS cluster Amazon e l'area di lavoro Amazon Managed Service for Prometheus. ARN

    export AWS_REGION=REGION export AMG_ENDPOINT=AMG_ENDPOINT export EKS_CLUSTER_NAME=EKS_CLUSTER export AMP_WS_ARN=AMP_ARN
  4. È necessario creare un token di account di servizio con ADMIN accesso per chiamare Grafana HTTPAPIs. Per informazioni dettagliate, consultare Usa gli account di servizio per l'autenticazione con Grafana HTTP APIs. È possibile utilizzare il AWS CLI con i seguenti comandi per creare il token. Dovrai sostituirlo GRAFANA_ID con l'ID del tuo spazio di lavoro Grafana (sarà nel modulo). g-123example Questa chiave scadrà dopo 7.200 secondi o 2 ore. È possibile modificare l'ora (seconds-to-live), se necessario. L'implementazione richiede meno di un'ora.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for calling APIs export AMG_API_KEY=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)

    Rendi disponibile la API chiave AWS CDK aggiungendola a AWS Systems Manager con il seguente comando. Sostituiscila AWS_REGION con la regione in cui verrà eseguita la soluzione (nel modulous-east-1).

    aws ssm put-parameter --name "/observability-aws-solution-eks-infra/grafana-api-key" \ --type "SecureString" \ --value $AMG_API_KEY \ --region AWS_REGION \ --overwrite
  5. Esegui il make comando seguente, che installerà tutte le altre dipendenze per il progetto.

    make deps
  6. Infine, esegui il AWS CDK progetto:

    make build && make pattern aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME deploy
  7. [Facoltativo] Una volta completata la creazione dello stack, puoi utilizzare lo stesso ambiente per creare più istanze dello stack per altri EKS cluster Amazon nella stessa regione, purché soddisfi gli altri prerequisiti per ciascuno (inclusi spazi di lavoro Amazon Managed Grafana e Amazon Managed Service for Prometheus separati). Dovrai ridefinire i comandi con i nuovi parametri. export

Una volta completata la creazione dello stack, il tuo spazio di lavoro Amazon Managed Grafana verrà popolato con una dashboard che mostra le metriche per il tuo cluster Amazon. EKS La visualizzazione delle metriche richiederà alcuni minuti, non appena lo scraper inizierà a raccogliere le metriche.

Elenco delle metriche tracciate

Questa soluzione crea uno scraper che raccoglie i parametri dal tuo cluster Amazon. EKS Queste metriche vengono archiviate in Amazon Managed Service for Prometheus e quindi visualizzate nelle dashboard di Amazon Managed Grafana. Per impostazione predefinita, lo scraper raccoglie tutte le metriche compatibili con Prometheus esposte dal cluster. L'installazione nel cluster di software che produce più metriche aumenterà le metriche raccolte. Se lo desideri, puoi ridurre il numero di metriche aggiornando lo scraper con una configurazione che filtra le metriche.

Le seguenti metriche vengono tracciate con questa soluzione, in una configurazione di base EKS del cluster Amazon senza software aggiuntivo installato.

Parametro Descrizione/Scopo

aggregator_unavailable_apiservice

I APIServices cui indicatori sono contrassegnati come non disponibili suddivisi per APIService nome.

apiserver_admission_webhook_admission_duration_seconds_bucket

Istogramma di latenza del webhook di ammissione in secondi, identificato per nome e suddiviso per ogni operazione, API risorsa e tipo (convalida o ammissione).

apiserver_current_inflight_requests

Numero massimo di richieste in volo attualmente utilizzate da questo apiserver per tipo di richiesta nell'ultimo secondo.

apiserver_envelope_encryption_dek_cache_fill_percent

Percentuale degli slot di cache attualmente occupati dalla cache. DEKs

apiserver_flowcontrol_current_executing_requests

Numero di richieste nella fase iniziale (per unaWATCH) o qualsiasi (per una nonWATCH) esecuzione nel sottosistema API Priorità ed equità.

apiserver_flowcontrol_rejected_requests_total

Numero di richieste rifiutate nella fase iniziale (per aWATCH) o in qualsiasi fase (per una nonWATCH) esecuzione nel sottosistema API Priorità ed equità.

apiserver_flowcontrol_request_concurrency_limit

Numero nominale di postazioni di esecuzione configurate per ogni livello di priorità.

apiserver_flowcontrol_request_execution_seconds_bucket

L'istogramma ristretto della durata della fase iniziale (per unaWATCH) o qualsiasi (per una fase diversaWATCH) dell'esecuzione della richiesta nel sottosistema API Priorità ed equità.

apiserver_flowcontrol_request_queue_length_after_enqueue_count

Il conteggio della fase iniziale (per unaWATCH) o di qualsiasi fase (per una nonWATCH) fase di esecuzione della richiesta nel sottosistema API Priorità ed equità.

apiserver_request

Indica una richiesta API del server.

apiserver_requested_deprecated_apis

Indicatore dei dati obsoleti APIs richiesti, suddivisi per API gruppo, versione, risorsa, sottorisorsa e removed_release.

apiserver_request_duration_seconds

Distribuzione della latenza di risposta in secondi per ogni verbo, valore di dry run, gruppo, versione, risorsa, sottorisorsa, ambito e componente.

apiserver_request_duration_seconds_bucket

L'istogramma a intervalli di distribuzione della latenza di risposta in secondi per ogni verbo, valore di dry run, gruppo, versione, risorsa, sottorisorsa, ambito e componente.

apiserver_request_slo_duration_seconds

La distribuzione della latenza della risposta Service Level Objective (SLO) in secondi per ogni verbo, valore di dry run, gruppo, versione, risorsa, sottorisorsa, ambito e componente.

apiserver_request_terminations_total

Numero di richieste che apiserver ha terminato per legittima difesa.

apiserver_request_total

Contatore di richieste apiserver suddiviso per ogni verbo, valore di dry run, gruppo, versione, risorsa, ambito, componente e codice di risposta. HTTP

container_cpu_usage_seconds_total

Tempo cumulativo di CPU consumato.

container_fs_reads_bytes_total

Conteggio cumulativo dei byte letti.

container_fs_reads_total

Conteggio cumulativo delle letture completate.

container_fs_writes_bytes_total

Conteggio cumulativo dei byte scritti.

container_fs_writes_total

Conteggio cumulativo delle scritture completate.

container_memory_cache

Memoria cache totale delle pagine.

container_memory_rss

Dimensione diRSS.

container_memory_swap

Utilizzo dello scambio di container.

container_memory_working_set_bytes

Set di lavoro attuale.

container_network_receive_bytes_total

Conteggio cumulativo dei byte ricevuti.

container_network_receive_packets_dropped_total

Numero cumulativo di pacchetti persi durante la ricezione.

container_network_receive_packets_total

Numero cumulativo di pacchetti ricevuti.

container_network_transmit_bytes_total

Conteggio cumulativo dei byte trasmessi.

container_network_transmit_packets_dropped_total

Conteggio cumulativo dei pacchetti persi durante la trasmissione.

container_network_transmit_packets_total

Numero cumulativo di pacchetti trasmessi.

etcd_request_duration_seconds_bucket

L'istogramma a intervalli della latenza della richiesta etcd in secondi per ogni operazione e tipo di oggetto.

go_goroutines

Numero di goroutine attualmente esistenti.

go_threads

Numero di thread del sistema operativo creati.

kubelet_cgroup_manager_duration_seconds_bucket

L'istogramma a intervalli della durata in secondi per le operazioni di cgroup manager. Suddiviso per metodo.

kubelet_cgroup_manager_duration_seconds_count

Durata in secondi per le operazioni di cgroup manager. Suddiviso per metodo.

kubelet_node_config_error

Questa metrica è vera (1) se il nodo presenta un errore relativo alla configurazione, false (0) in caso contrario.

kubelet_node_name

Il nome del nodo. Il conteggio è sempre 1.

kubelet_pleg_relist_duration_seconds_bucket

L'istogramma ristretto della durata in secondi in cui rimettere in vendita i pod. PLEG

kubelet_pleg_relist_duration_seconds_count

Il conteggio della durata in secondi per riposizionare i pod. PLEG

kubelet_pleg_relist_interval_seconds_bucket

L'istogramma ristretto dell'intervallo in secondi tra una ripubblicazione e l'altra. PLEG

kubelet_pod_start_duration_seconds_count

Il conteggio della durata in secondi tra il momento in cui Kubelet vede un pod per la prima volta e il pod che inizia a funzionare.

kubelet_pod_worker_duration_seconds_bucket

L'istogramma suddiviso in intervalli della durata in secondi per sincronizzare un singolo pod. Suddiviso per tipo di operazione: creazione, aggiornamento o sincronizzazione.

kubelet_pod_worker_duration_seconds_count

Il conteggio della durata in secondi per sincronizzare un singolo pod. Suddiviso per tipo di operazione: creazione, aggiornamento o sincronizzazione.

kubelet_running_containers

Numero di contenitori attualmente in esecuzione.

kubelet_running_pods

Numero di pod che dispongono di una sandbox Running Pod.

kubelet_runtime_operations_duration_seconds_bucket

L'istogramma suddiviso in intervalli della durata in secondi delle operazioni di runtime. Suddiviso per tipo di operazione.

kubelet_runtime_operations_errors_total

Numero cumulativo di errori di esecuzione per tipo di operazione.

kubelet_runtime_operations_total

Numero cumulativo di operazioni di runtime per tipo di operazione.

kube_node_status_allocatable

La quantità di risorse allocabili per i pod (dopo averne riservate alcune ai demoni di sistema).

kube_node_status_capacity

La quantità totale di risorse disponibili per un nodo.

kube_pod_container_resource_limits (CPU)

Il numero di risorse limite richieste da un contenitore.

kube_pod_container_resource_limits (Memory)

Il numero di risorse limite richieste da un contenitore.

kube_pod_container_resource_requests (CPU)

Il numero di risorse di richiesta richieste da un contenitore.

kube_pod_container_resource_requests (Memory)

Il numero di risorse di richiesta richieste da un contenitore.

kube_pod_owner

Informazioni sul proprietario del Pod.

kube_resourcequota

Le quote di risorse in Kubernetes impongono limiti di utilizzo su risorse come memoria e archiviazione all'interno dei CPU namespace.

node_cpu

Le metriche di CPU utilizzo per un nodo, incluso l'utilizzo per core e l'utilizzo totale.

node_cpu_seconds_total

Secondi CPUs trascorsi in ciascuna modalità.

node_disk_io_time_seconds

La quantità cumulativa di tempo impiegata per eseguire operazioni di I/O su disco per nodo.

node_disk_io_time_seconds_total

La quantità totale di tempo impiegata per eseguire operazioni di I/O su disco per nodo.

node_disk_read_bytes_total

Il numero totale di byte letti dal disco dal nodo.

node_disk_written_bytes_total

Il numero totale di byte scritti su disco dal nodo.

node_filesystem_avail_bytes

La quantità di spazio disponibile in byte sul filesystem di un nodo in un cluster Kubernetes.

node_filesystem_size_bytes

La dimensione totale del filesystem sul nodo.

node_load1

La media di carico di 1 minuto dell'utilizzo di un nodo. CPU

node_load15

La media di caricamento di 15 minuti dell'CPUutilizzo di un nodo.

node_load5

La media di carico in 5 minuti dell'CPUutilizzo di un nodo.

node_memory_Buffers_bytes

La quantità di memoria utilizzata per la memorizzazione nella cache del buffer dal sistema operativo del nodo.

node_memory_Cached_bytes,

La quantità di memoria utilizzata per la memorizzazione nella cache del disco dal sistema operativo del nodo.

node_memory_MemAvailable_bytes

La quantità di memoria disponibile per l'uso da parte di applicazioni e cache.

node_memory_MemFree_bytes

La quantità di memoria libera disponibile sul nodo.

node_memory_MemTotal_bytes

La quantità totale di memoria fisica disponibile sul nodo.

node_network_receive_bytes_total

Il numero totale di byte ricevuti in rete dal nodo.

node_network_transmit_bytes_total

Il numero totale di byte trasmessi in rete dal nodo.

process_cpu_seconds_total

CPUTempo totale impiegato dall'utente e dal sistema, in secondi.

process_resident_memory_bytes

Dimensione della memoria residente in byte.

rest_client_requests_total

Numero di HTTP richieste, partizionate per codice di stato, metodo e host.

rest_client_request_duration_seconds_bucket

L'istogramma a intervalli della latenza delle richieste in secondi. Suddiviso per verbo e host.

storage_operation_duration_seconds_bucket

L'istogramma suddiviso in intervalli della durata delle operazioni di archiviazione.

storage_operation_duration_seconds_count

Il conteggio della durata delle operazioni di archiviazione.

storage_operation_errors_total

Numero cumulativo di errori durante le operazioni di storage.

up

Una metrica che indica se la destinazione monitorata (ad esempio il nodo) è attiva e funzionante.

volume_manager_total_volumes

Il numero totale di volumi gestiti dal gestore dei volumi.

workqueue_adds_total

Numero totale di aggiunte gestite da workqueue.

workqueue_depth

Profondità attuale della coda di lavoro.

workqueue_queue_duration_seconds_bucket

L'istogramma a intervalli che indica per quanto tempo, in secondi, un elemento rimane nella coda di lavoro prima di essere richiesto.

workqueue_work_duration_seconds_bucket

L'istogramma suddiviso in intervalli di tempo in secondi per l'elaborazione di un elemento dalla coda di lavoro.

Elenco degli avvisi creati

Nelle tabelle seguenti sono elencati gli avvisi creati da questa soluzione. Gli avvisi vengono creati come regole in Amazon Managed Service for Prometheus e vengono visualizzati nell'area di lavoro Amazon Managed Grafana.

Puoi modificare le regole, inclusa l'aggiunta o l'eliminazione di regole, modificando il file di configurazione delle regole nel tuo spazio di lavoro Amazon Managed Service for Prometheus.

Questi due avvisi sono avvisi speciali che vengono gestiti in modo leggermente diverso rispetto agli avvisi tipici. Invece di avvisarti di un problema, ti forniscono informazioni che vengono utilizzate per monitorare il sistema. La descrizione include dettagli su come utilizzare questi avvisi.

Alert Descrizione e utilizzo

Watchdog

Si tratta di un avviso destinato a garantire il funzionamento dell'intera pipeline di avvisi. Questo avviso è sempre attivo, quindi dovrebbe essere sempre attivo in Alertmanager e sempre contro un ricevitore. Puoi integrarlo con il tuo meccanismo di notifica per inviare una notifica quando questo avviso non viene attivato. Ad esempio, è possibile utilizzare l'DeadMansSnitchintegrazione in PagerDuty.

InfoInhibitor

Si tratta di un avviso che viene utilizzato per inibire gli avvisi informativi. Di per sé, gli avvisi a livello di informazioni possono essere molto rumorosi, ma sono pertinenti se combinati con altri avvisi. Questo avviso viene attivato ogni volta che viene visualizzato un severity=info avviso e smette di attivarsi quando un altro avviso con una gravità pari o inizia a essere attivato sullo stesso namespace. warning critical Questo avviso deve essere indirizzato a un ricevitore nullo e configurato per inibire gli avvisi con. severity=info

I seguenti avvisi forniscono informazioni o avvisi sul sistema.

Alert Gravità Descrizione

NodeNetworkInterfaceFlapping

warning

L'interfaccia di rete cambia spesso il suo stato

NodeFilesystemSpaceFillingUp

warning

Si prevede che lo spazio disponibile nel file system si esaurirà entro le prossime 24 ore.

NodeFilesystemSpaceFillingUp

critical

Si prevede che lo spazio disponibile nel file system si esaurirà entro le prossime 4 ore.

NodeFilesystemAlmostOutOfSpace

warning

Lo spazio residuo nel file system è inferiore al 5%.

NodeFilesystemAlmostOutOfSpace

critical

Lo spazio residuo nel file system è inferiore al 3%.

NodeFilesystemFilesFillingUp

warning

Si prevede che il file system esaurirà gli inode entro le prossime 24 ore.

NodeFilesystemFilesFillingUp

critical

Si prevede che il file system esaurirà gli inode entro le prossime 4 ore.

NodeFilesystemAlmostOutOfFiles

warning

Nel file system sono rimasti meno del 5% degli inode.

NodeFilesystemAlmostOutOfFiles

critical

Al file system sono rimasti meno del 3% di inode.

NodeNetworkReceiveErrs

warning

L'interfaccia di rete riporta molti errori di ricezione.

NodeNetworkTransmitErrs

warning

L'interfaccia di rete riporta molti errori di trasmissione.

NodeHighNumberConntrackEntriesUsed

warning

Il numero di accessi in conntrack si sta avvicinando al limite.

NodeTextFileCollectorScrapeError

warning

Il raccoglitore di file di testo Node Exporter non è riuscito a raschiare.

NodeClockSkewDetected

warning

È stata rilevata un'inclinazione dell'orologio.

NodeClockNotSynchronizzing

warning

L'orologio non si sincronizza.

NodeRAIDDegraded

critical

RAIDL'array è danneggiato

NodeRAIDDiskFailure

warning

Dispositivo guasto nell'array RAID

NodeFileDescriptorLimit

warning

Si prevede che il kernel esaurirà presto il limite dei descrittori di file.

NodeFileDescriptorLimit

critical

Si prevede che il kernel esaurirà presto il limite dei descrittori di file.

KubeNodeNotReady

warning

Il nodo non è pronto.

KubeNodeUnreachable

warning

Il nodo non è raggiungibile.

KubeletTooManyPods

info

Kubelet sta funzionando a pieno regime.

KubeNodeReadinessFlapping

warning

Lo stato di preparazione del nodo sta lampeggiando.

KubeletPlegDurationHigh

warning

Kubelet Pod Lifecycle Event Generator impiega troppo tempo per essere rimesso in vendita.

KubeletPodStartUpLatencyHigh

warning

La latenza di avvio di Kubelet Pod è troppo alta.

KubeletClientCertificateExpiration

warning

Il certificato del client Kubelet sta per scadere.

KubeletClientCertificateExpiration

critical

Il certificato client Kubelet sta per scadere.

KubeletServerCertificateExpiration

warning

Il certificato del server Kubelet sta per scadere.

KubeletServerCertificateExpiration

critical

Il certificato del server Kubelet sta per scadere.

KubeletClientCertificateRenewalErrors

warning

Kubelet non è riuscito a rinnovare il certificato client.

KubeletServerCertificateRenewalErrors

warning

Kubelet non è riuscito a rinnovare il certificato del server.

KubeletDown

critical

L'obiettivo è scomparso dalla scoperta dell'obiettivo di Prometheus.

KubeVersionMismatch

warning

Diverse versioni semantiche dei componenti Kubernetes in esecuzione.

KubeClientErrors

warning

Il client del server Kubernetes presenta erroriAPI.

KubeClientCertificateExpiration

warning

Il certificato del client sta per scadere.

KubeClientCertificateExpiration

critical

Il certificato client sta per scadere.

KubeAggregatedAPIErrors

warning

Kubernetes API aggregated ha segnalato errori.

KubeAggregatedAPIDown

warning

Kubernetes aggregato non funziona. API

KubeAPIDown

critical

L'obiettivo è scomparso dalla scoperta dell'obiettivo di Prometheus.

KubeAPITerminatedRequests

warning

L'apiserver Kubernetes ha terminato {{$value |}} delle sue richieste in entrata. humanizePercentage

KubePersistentVolumeFillingUp

critical

Persistent Volume si sta riempiendo.

KubePersistentVolumeFillingUp

warning

Persistent Volume si sta riempiendo.

KubePersistentVolumeInodesFillingUp

critical

Persistent Volume Inode si sta riempiendo.

KubePersistentVolumeInodesFillingUp

warning

I Persistent Volume Inode si stanno riempiendo.

KubePersistentVolumeErrors

critical

Persistent Volume sta riscontrando problemi con il provisioning.

KubeCPUOvercommit

warning

Il cluster ha ricevuto un numero eccessivo di richieste di CPU risorse.

KubeMemoryOvercommit

warning

Il cluster ha richiesto risorse di memoria in eccesso.

KubeCPUQuotaOvercommit

warning

Il cluster ha richiesto CPU risorse in eccesso.

KubeMemoryQuotaOvercommit

warning

Il cluster ha richiesto risorse di memoria in eccesso.

KubeQuotaAlmostFull

info

La quota del namespace sarà piena.

KubeQuotaFullyUsed

info

La quota del namespace è completamente utilizzata.

KubeQuotaExceeded

warning

La quota del namespace ha superato i limiti.

CPUThrottlingHigh

info

I processi subiscono una limitazione elevata. CPU

KubePodCrashLooping

warning

Pod è in crash looping.

KubePodNotReady

warning

Pod è in uno stato non pronto da più di 15 minuti.

KubeDeploymentGenerationMismatch

warning

Mancata corrispondenza nella generazione dell'implementazione a causa di un possibile rollback

KubeDeploymentReplicasMismatch

warning

La distribuzione non corrisponde al numero previsto di repliche.

KubeStatefulSetReplicasMismatch

warning

StatefulSet non corrisponde al numero previsto di repliche.

KubeStatefulSetGenerationMismatch

warning

StatefulSet mancata corrispondenza generazionale dovuta a un possibile rollback

KubeStatefulSetUpdateNotRolledOut

warning

StatefulSet l'aggiornamento non è stato implementato.

KubeDaemonSetRolloutStuck

warning

DaemonSet il rollout è bloccato.

KubeContainerWaiting

warning

Contenitore per cialde in attesa per più di 1 ora

KubeDaemonSetNotScheduled

warning

DaemonSet i pod non sono programmati.

KubeDaemonSetMisScheduled

warning

DaemonSet i pod sono programmati male.

KubeJobNotCompleted

warning

Job non è stato completato in tempo

KubeJobFailed

warning

Job non completato.

KubeHpaReplicasMismatch

warning

HPAnon corrisponde al numero di repliche desiderato.

KubeHpaMaxedOut

warning

HPAè in esecuzione al numero massimo di repliche

KubeStateMetricsListErrors

critical

kube-state-metrics sta riscontrando errori nelle operazioni relative all'elenco.

KubeStateMetricsWatchErrors

critical

kube-state-metrics sta riscontrando errori nelle operazioni di controllo.

KubeStateMetricsShardingMismatch

critical

kube-state-metrics lo sharding non è configurato correttamente.

KubeStateMetricsShardsMissing

critical

kube-state-metrics mancano dei frammenti.

KubeAPIErrorBudgetBurn

critical

Il API server sta consumando un budget eccessivo per gli errori.

KubeAPIErrorBudgetBurn

critical

Il API server sta consumando un budget eccessivo per gli errori.

KubeAPIErrorBudgetBurn

warning

Il API server sta consumando un budget eccessivo per gli errori.

KubeAPIErrorBudgetBurn

warning

Il API server sta consumando un budget eccessivo per gli errori.

TargetDown

warning

Uno o più bersagli sono inattivi.

etcdInsufficientMembers

critical

Numero insufficiente di membri del cluster Etcd.

etcdHighNumberOfLeaderChanges

warning

Numero elevato di cambi di leader del cluster Etcd.

etcdNoLeader

critical

Il cluster Etcd non ha un leader.

etcdHighNumberOfFailedGRPCRequests

warning

Cluster Etcd: numero elevato di richieste g non riuscite. RPC

etcdGRPCRequestsSlow

critical

Le RPC richieste del cluster Etcd g sono lente.

etcdMemberCommunicationSlow

warning

La comunicazione tra i membri del cluster Etcd è lenta.

etcdHighNumberOfFailedProposals

warning

Numero elevato di proposte fallite del cluster Etcd.

etcdHighFsyncDurations

warning

Durate di sincronizzazione elevate del cluster Etcd.

etcdHighCommitDurations

warning

Il cluster Etcd ha durate di commit superiori a quelle previste.

etcdHighNumberOfFailedHTTPRequests

warning

Il cluster Etcd ha ricevuto richieste non riuscite. HTTP

etcdHighNumberOfFailedHTTPRequests

critical

Il cluster Etcd ha un numero elevato di richieste non riusciteHTTP.

etcdHTTPRequestsSlow

warning

HTTPLe richieste del cluster Etcd sono lente.

HostClockNotSynchronizing

warning

L'orologio dell'host non si sincronizza.

HostOomKillDetected

warning

Rilevata OOM uccisione dell'host.

Risoluzione dei problemi

Esistono alcuni fattori che possono causare il fallimento della configurazione del progetto. Assicurati di controllare quanto segue.

  • È necessario completare tutti i prerequisiti prima di installare la soluzione.

  • Il cluster deve contenere almeno un nodo prima di tentare di creare la soluzione o accedere alle metriche.

  • Nel EKS cluster Amazon devono essere installati AWS CNI CoreDNS kube-proxy i componenti aggiuntivi. Se non sono installati, la soluzione non funzionerà correttamente. Vengono installati per impostazione predefinita, quando si crea il cluster tramite la console. Potrebbe essere necessario installarli se il cluster è stato creato tramite un AWS SDK.

  • L'installazione EKS di Amazon pod è scaduta. Questo può accadere se la capacità disponibile dei nodi non è sufficiente. Le cause di questi problemi sono molteplici, tra cui:

    • Il EKS cluster Amazon è stato inizializzato con Fargate anziché Amazon. EC2 Questo progetto richiede AmazonEC2.

    • I nodi sono contaminati e quindi non disponibili.

      Puoi usarlo kubectl describe node NODENAME | grep Taints per controllare le macchie. Quindi kubectl taint node NODENAME TAINT_NAME- per rimuovere le macchie. Assicurati di includere il nome - dopo il nome della macchia.

    • I nodi hanno raggiunto il limite di capacità. In questo caso puoi creare un nuovo nodo o aumentare la capacità.

  • Non vedi alcuna dashboard in Grafana: stai utilizzando l'ID dell'area di lavoro Grafana errato.

    Esegui il seguente comando per ottenere informazioni su Grafana:

    kubectl describe grafanas external-grafana -n grafana-operator

    Puoi controllare i risultati per l'area di lavoro URL corretta. Se non è quello che ti aspetti, esegui nuovamente la distribuzione con l'ID dell'area di lavoro corretto.

    Spec: External: API Key: Key: GF_SECURITY_ADMIN_APIKEY Name: grafana-admin-credentials URL: https://g-123example.grafana-workspace.aws-region.amazonaws.com Status: Admin URL: https://g-123example.grafana-workspace.aws-region.amazonaws.com Dashboards: ...
  • Non vedi alcuna dashboard in Grafana: stai utilizzando una API chiave scaduta.

    Per cercare questo caso, è necessario contattare l'operatore grafana e verificare la presenza di errori nei log. Ottieni il nome dell'operatore Grafana con questo comando:

    kubectl get pods -n grafana-operator

    Questo restituirà il nome dell'operatore, ad esempio:

    NAME READY STATUS RESTARTS AGE grafana-operator-1234abcd5678ef90 1/1 Running 0 1h2m

    Utilizzate il nome dell'operatore nel seguente comando:

    kubectl logs grafana-operator-1234abcd5678ef90 -n grafana-operator

    Messaggi di errore come i seguenti indicano una API chiave scaduta:

    ERROR error reconciling datasource {"controller": "grafanadatasource", "controllerGroup": "grafana.integreatly.org", "controllerKind": "GrafanaDatasource", "GrafanaDatasource": {"name":"grafanadatasource-sample-amp","namespace":"grafana-operator"}, "namespace": "grafana-operator", "name": "grafanadatasource-sample-amp", "reconcileID": "72cfd60c-a255-44a1-bfbd-88b0cbc4f90c", "datasource": "grafanadatasource-sample-amp", "grafana": "external-grafana", "error": "status: 401, body: {\"message\":\"Expired API key\"}\n"} github.com/grafana-operator/grafana-operator/controllers.(*GrafanaDatasourceReconciler).Reconcile

    In questo caso, crea una nuova API chiave e distribuisci nuovamente la soluzione. Se il problema persiste, puoi forzare la sincronizzazione utilizzando il seguente comando prima della ridistribuzione:

    kubectl delete externalsecret/external-secrets-sm -n grafana-operator
  • CDKinstalls — Parametro mancante. SSM Se vedi un errore come il seguente, esegui cdk bootstrap e riprova.

    Deployment failed: Error: aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME: SSM parameter /cdk-bootstrap/xxxxxxx/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/ guide/bootstrapping.html)
  • La distribuzione può fallire se il OIDC provider esiste già. Verrà visualizzato un errore simile al seguente (in questo caso, per le CDK installazioni):

    | CREATE_FAILED | Custom::AWSCDKOpenIdConnectProvider | OIDCProvider/Resource/Default Received response status [FAILED] from custom resource. Message returned: EntityAlreadyExistsException: Provider with url https://oidc.eks.REGION.amazonaws.com/id/PROVIDER ID already exists.

    In questo caso, vai al IAM portale ed elimina il OIDC provider e riprova.

  • Installazioni di Terraform: viene visualizzato un messaggio di errore che include cluster-secretstore-sm failed to create kubernetes rest client for update of resource e. failed to create kubernetes rest client for update of resource

    Questo errore indica in genere che External Secrets Operator non è installato o abilitato nel cluster Kubernetes. Viene installato come parte della distribuzione della soluzione, ma a volte non è pronto quando la soluzione lo richiede.

    Puoi verificare che sia installato con il seguente comando:

    kubectl get deployments -n external-secrets

    Se è installato, può essere necessario del tempo prima che l'operatore sia completamente pronto per l'uso. È possibile verificare lo stato delle definizioni di risorse personalizzate necessarie (CRDs) eseguendo il comando seguente:

    kubectl get crds|grep external-secrets

    Questo comando dovrebbe elencare l'operatore segreto CRDs correlato all'esterno, incluso clustersecretstores.external-secrets.io andexternalsecrets.external-secrets.io. Se non sono elencati, attendi qualche minuto e ricontrolla.

    Una volta CRDs registrati, puoi eseguire terraform apply nuovamente l'operazione per distribuire la soluzione.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.