Installa l'agente SSM e l' CloudWatch agente sui nodi di lavoro Amazon EKS utilizzando preBootstrapCommands - Prontuario AWS

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

Installa l'agente SSM e l' CloudWatch agente sui nodi di lavoro Amazon EKS utilizzando preBootstrapCommands

Creato da Akkamahadevi Hiremath (AWS)

Riepilogo

Questo modello fornisce esempi di codice e passaggi per installare i nodi di lavoro AWS Systems Manager (SSM Agent) e Amazon CloudWatch sul cloud Amazon Elastic Kubernetes Service (Amazon EKS) nel cloud Amazon Web Services (AWS) durante la creazione del cluster Amazon EKS. Puoi installare l'agente e CloudWatch l'agente SSM utilizzando la preBootstrapCommands proprietà dallo schema del file di eksctl configurazione (documentazione Weaveworks). Quindi, puoi utilizzare l'agente SSM per connetterti ai tuoi nodi di lavoro senza utilizzare una coppia di chiavi Amazon Elastic Compute Cloud EC2 (Amazon). Inoltre, puoi utilizzare l' CloudWatch agente per monitorare l'utilizzo della memoria e del disco sui nodi di lavoro Amazon EKS.

Prerequisiti e limitazioni

Prerequisiti

Limitazioni

  • Ti consigliamo di evitare di aggiungere script di lunga durata alla preBootstrapCommands proprietà, poiché ciò ritarda l'adesione del nodo al cluster Amazon EKS durante le attività di scalabilità. Ti consigliamo invece di creare un'Amazon Machine Image (AMI) personalizzata.

  • Questo modello si applica solo alle istanze Amazon EC2 Linux.

Architettura

Stack tecnologico

  • Amazon CloudWatch

  • Amazon Elastic Kubernetes Service (Amazon EKS)

  • AWS Systems Manager Parameter Store

Architettura Target

Il diagramma seguente mostra un esempio di utente che si connette ai nodi di lavoro di Amazon EKS utilizzando l'agente SSM che è stato installato utilizzando. preBootstrapCommands

User connecting to Amazon EKS worker nodes via Systems Manager, with SSM Agent and CloudWatch agent on each node.

Il diagramma mostra il flusso di lavoro seguente:

  1. L'utente crea un cluster Amazon EKS utilizzando il file di eksctl configurazione con la preBootstrapCommands proprietà, che installa l'agente e CloudWatch l'agente SSM.

  2. Tutte le nuove istanze che si uniscono al cluster in un secondo momento a causa delle attività di scalabilità vengono create con l'agente e l'agente SSM preinstallati. CloudWatch

  3. L'utente si connette ad Amazon EC2 utilizzando l'agente SSM e quindi monitora l'utilizzo della memoria e del disco utilizzando l'agente. CloudWatch

Strumenti

  • Amazon ti CloudWatch aiuta a monitorare i parametri delle tue risorse AWS e delle applicazioni che esegui su AWS in tempo reale.

  • Amazon Elastic Kubernetes Service (Amazon EKS) ti aiuta a eseguire Kubernetes su AWS senza dover installare o gestire il tuo piano di controllo o i tuoi nodi Kubernetes.

  • AWS Systems Manager Parameter Store fornisce uno storage sicuro e gerarchico per la gestione dei dati di configurazione e la gestione dei segreti.

  • AWS Systems Manager Session Manager ti aiuta a gestire le EC2 istanze, le istanze locali e le macchine virtuali tramite una shell interattiva basata su browser con un solo clic o tramite l'AWS Command Line Interface (AWS CLI).

  • eksctl è un'utilità da riga di comando per la creazione e la gestione di cluster Kubernetes su Amazon EKS.

  • kubectl è un'utilità a riga di comando per comunicare con il server API del cluster.

Epiche

AttivitàDescrizioneCompetenze richieste

Memorizza il file di configurazione CloudWatch dell'agente.

Archivia il file di configurazione dell' CloudWatch agente in AWS Systems Manager Parameter Store nella regione AWS in cui desideri creare il tuo cluster Amazon EKS. A tale scopo, crea un parametro in AWS Systems Manager Parameter Store e annota il nome del parametro (ad esempio,AmazonCloudwatch-linux).

Per ulteriori informazioni, consulta il codice del file di configurazione dell' CloudWatch agente di esempio nella sezione Informazioni aggiuntive di questo modello.

DevOps ingegnere

Crea il file di configurazione eksctl e il cluster.

  1. Crea un file eksctl di configurazione che includa i passaggi di installazione dell' CloudWatch agente e dell'agente SSM. Per ulteriori informazioni, consulta l'esempio di codice del file di configurazione eksctl nella sezione Informazioni aggiuntive di questo modello.

  2. Crea un cluster eseguendo il eksctl create cluster -f cluster.yaml comando.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Prova l'agente SSM.

Usa SSH per connetterti ai nodi del cluster Amazon EKS utilizzando uno dei metodi descritti in Avvia una sessione dalla documentazione di AWS Systems Manager.

AWS DevOps

Testa l' CloudWatch agente.

Usa la CloudWatch console per convalidare l' CloudWatch agente:

  1. Accedi alla console di gestione AWS e apri la console CloudWatch .

  2. Nel riquadro di navigazione, espandi Metriche, quindi scegli Tutte le metriche.

  3. Nella casella di ricerca della scheda Sfoglia, inserisci e scegli le CWAgent metriche per visualizzare le metriche della memoria e del disco.

AWS DevOps

Risorse correlate

Informazioni aggiuntive

Esempio di file di configurazione CloudWatch dell'agente

Nell'esempio seguente, l' CloudWatch agente è configurato per monitorare l'utilizzo del disco e della memoria su istanze Amazon Linux:

{ "agent": { "metrics_collection_interval": 60, "run_as_user": "cwagent" }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 } } } }

Esempio di file di configurazione eksctl

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: test region: us-east-2 version: "1.24" managedNodeGroups: - name: test minSize: 2 maxSize: 4 desiredCapacity: 2 volumeSize: 20 instanceType: t3.medium preBootstrapCommands: - sudo yum install amazon-ssm-agent -y - sudo systemctl enable amazon-ssm-agent - sudo systemctl start amazon-ssm-agent - sudo yum install amazon-cloudwatch-agent -y - sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudwatch-linux iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

Dettagli aggiuntivi sul codice

  • Nell'ultima riga della preBootstrapCommands proprietà, AmazonCloudwatch-linux c'è il nome del parametro creato in AWS System Manager Parameter Store. Devi includerlo AmazonCloudwatch-linux in Parameter Store nella stessa regione AWS in cui hai creato il cluster Amazon EKS. È anche possibile specificare un percorso di file, ma si consiglia di utilizzare Systems Manager per semplificare l'automazione e la riutilizzabilità.

  • Se lo utilizzi preBootstrapCommands nel file di eksctl configurazione, vedrai due modelli di avvio nella Console di gestione AWS. Il primo modello di avvio include i comandi specificati inpreBootstrapCommands. Il secondo modello include i comandi specificati preBootstrapCommands e i dati utente predefiniti di Amazon EKS. Questi dati sono necessari per far sì che i nodi entrino a far parte del cluster. Il gruppo Auto Scaling del gruppo di nodi utilizza questi dati utente per avviare nuove istanze.

  • Se utilizzi l'iamattributo nel file di eksctl configurazione, devi elencare le policy Amazon EKS predefinite con eventuali policy aggiuntive richieste nelle policy AWS Identity and Access Management (IAM) allegate. Nel frammento di codice del passaggio Crea il file di configurazione eksctl e il cluster, AmazonSSMMangedInstanceCore sono state aggiunte politiche aggiuntive per garantire che l' CloudWatch agente CloudWatchAgentServerPolicy e l'agente SSM funzionino come previsto. Le AmazonEC2ContainerRegistryReadOnly politiche AmazonEKSWorkerNodePolicyAmazonEKS_CNI_Policy,, sono politiche obbligatorie necessarie per il corretto funzionamento del cluster Amazon EKS.