Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Installieren Sie den SSM-Agent und den CloudWatch Agenten auf Amazon EKS-Worker-Knoten mit preBootstrapCommands
Erstellt von Akkamahadevi Hiremath (AWS)
Übersicht
Dieses Muster enthält Codebeispiele und Schritte zur Installation des AWS Systems Manager Agent (SSM Agent) und des Amazon-Agenten auf Amazon CloudWatch Elastic Kubernetes Service (Amazon EKS) -Worker-Knoten in der Amazon Web Services (AWS) -Cloud während der Amazon EKS-Clustererstellung. Sie können den SSM-Agent und CloudWatch den SSM-Agenten installieren, indem Sie die preBootstrapCommands
Eigenschaft aus dem eksctl
Konfigurationsdateischema
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Das Befehlszeilenprogramm eksctl, installiert und konfiguriert auf macOS, Linux oder Windows
Das kubectl-Befehlszeilenprogramm, installiert und konfiguriert auf macOS, Linux oder Windows
Einschränkungen
Wir empfehlen, das Hinzufügen von Skripten mit langer Laufzeit zur
preBootstrapCommands
Eigenschaft zu vermeiden, da dies den Knoten daran hindert, dem Amazon EKS-Cluster während der Skalierungsaktivitäten beizutreten. Wir empfehlen Ihnen, stattdessen ein benutzerdefiniertes Amazon Machine Image (AMI) zu erstellen.Dieses Muster gilt nur für Amazon EC2 Linux-Instances.
Architektur
Technologie-Stack
Amazon CloudWatch
Amazon Elastic Kubernetes Service (Amazon EKS)
AWS Systems Manager Parameter Store
Zielarchitektur
Das folgende Diagramm zeigt ein Beispiel für einen Benutzer, der mithilfe des SSM-Agenten, der mit dem installiert wurde, eine Verbindung zu Amazon EKS-Worker-Knoten herstellt. preBootstrapCommands

Das Diagramm zeigt den folgenden Workflow:
Der Benutzer erstellt mithilfe der
eksctl
Konfigurationsdatei mit derpreBootstrapCommands
Eigenschaft, die den SSM-Agenten und CloudWatch den Agenten installiert, einen Amazon EKS-Cluster.Alle neuen Instances, die dem Cluster aufgrund von Skalierungsaktivitäten später beitreten, werden mit dem vorinstallierten SSM-Agenten und -Agenten erstellt. CloudWatch
Der Benutzer stellt EC2 mithilfe des SSM-Agenten eine Verbindung zu Amazon her und überwacht dann mithilfe des CloudWatch Agenten die Speicher- und Festplattenauslastung.
Tools
Amazon CloudWatch hilft Ihnen dabei, die Metriken Ihrer AWS-Ressourcen und der Anwendungen, die Sie auf AWS ausführen, in Echtzeit zu überwachen.
Amazon Elastic Kubernetes Service (Amazon EKS) hilft Ihnen, Kubernetes auf AWS auszuführen, ohne Ihre eigene Kubernetes-Steuerebene oder Knoten installieren oder verwalten zu müssen.
AWS Systems Manager Parameter Store bietet sicheren, hierarchischen Speicher für die Verwaltung von Konfigurationsdaten und Geheimnissen.
AWS Systems Manager Session Manager unterstützt Sie bei der Verwaltung Ihrer EC2 Instances, lokalen Instances und virtuellen Maschinen über eine interaktive, browserbasierte Shell mit einem Klick oder über die AWS-Befehlszeilenschnittstelle (AWS CLI).
eksctl
ist ein Befehlszeilenprogramm zum Erstellen und Verwalten von Kubernetes-Clustern auf Amazon EKS. kubectl
ist ein Befehlszeilenprogramm für die Kommunikation mit dem Cluster-API-Server.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Speichern Sie die CloudWatch Agenten-Konfigurationsdatei. | Speichern Sie die CloudWatch Agentenkonfigurationsdatei im AWS Systems Manager Parameter Store in der AWS-Region, in der Sie Ihren Amazon EKS-Cluster erstellen möchten. Erstellen Sie dazu einen Parameter im AWS Systems Manager Parameter Store und notieren Sie sich den Namen des Parameters (z. B. Weitere Informationen finden Sie im Beispielcode der CloudWatch Agenten-Konfigurationsdatei im Abschnitt Zusätzliche Informationen dieses Musters. | DevOps Ingenieur |
Erstellen Sie die eksctl-Konfigurationsdatei und den Cluster. |
| AWS DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Testen Sie den SSM-Agenten. | Verwenden Sie SSH, um eine Verbindung zu Ihren Amazon EKS-Clusterknoten herzustellen, indem Sie eine der Methoden verwenden, die in der AWS Systems Manager Manager-Dokumentation unter Sitzung starten beschrieben werden. | AWS DevOps |
Testen Sie den CloudWatch Agenten. | Verwenden Sie die CloudWatch Konsole, um den CloudWatch Agenten zu validieren:
| AWS DevOps |
Zugehörige Ressourcen
Installation und Ausführung des CloudWatch Agenten auf Ihren Servern ( CloudWatch Amazon-Dokumentation)
Einen Systems Manager Manager-Parameter erstellen (Konsole) (AWS Systems Manager Manager-Dokumentation)
Erstellen Sie die CloudWatch Agenten-Konfigurationsdatei ( CloudWatch Amazon-Dokumentation)
Starten einer Sitzung (AWS CLI) (AWS Systems Manager Manager-Dokumentation)
Starten einer Sitzung ( EC2 Amazon-Konsole) (AWS Systems Manager Manager-Dokumentation)
Zusätzliche Informationen
Beispiel für eine CloudWatch Agenten-Konfigurationsdatei
Im folgenden Beispiel ist der CloudWatch Agent so konfiguriert, dass er die Festplatten- und Speicherauslastung auf Amazon Linux-Instances überwacht:
{ "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 } } } }
Beispiel für eine eksctl-Konfigurationsdatei
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
Zusätzliche Codedetails
In der letzten Zeile der
preBootstrapCommands
EigenschaftAmazonCloudwatch-linux
steht der Name des Parameters, der im AWS System Manager Parameter Store erstellt wurde. Sie müssenAmazonCloudwatch-linux
in Parameter Store in derselben AWS-Region angeben, in der Sie den Amazon EKS-Cluster erstellt haben. Sie können auch einen Dateipfad angeben, wir empfehlen jedoch, Systems Manager zu verwenden, um die Automatisierung und Wiederverwendbarkeit zu vereinfachen.Wenn Sie
preBootstrapCommands
in dereksctl
Konfigurationsdatei verwenden, werden in der AWS-Managementkonsole zwei Startvorlagen angezeigt. Die erste Startvorlage enthält die unter angegebenen BefehlepreBootstrapCommands
. Die zweite Vorlage enthält die in den Amazon EKS-Benutzerdaten angegebenen BefehlepreBootstrapCommands
und die standardmäßigen Amazon EKS-Benutzerdaten. Diese Daten sind erforderlich, damit die Knoten dem Cluster beitreten können. Die Auto Scaling Scaling-Gruppe der Knotengruppe verwendet diese Benutzerdaten, um neue Instances hochzufahren.Wenn Sie das
iam
Attribut in dereksctl
Konfigurationsdatei verwenden, müssen Sie die standardmäßigen Amazon EKS-Richtlinien mit allen zusätzlichen Richtlinien auflisten, die in Ihren angehängten AWS Identity and Access Management (IAM) -Richtlinien erforderlich sind. Im Codeausschnitt aus dem Schritt „Eksctl-Konfigurationsdatei und Cluster erstellen“ wurden zusätzliche Richtlinien hinzugefügt, um sicherzustellen, dass der CloudWatch AgentCloudWatchAgentServerPolicy
undAmazonSSMMangedInstanceCore
der SSM-Agent wie erwartet funktionieren. DieAmazonEKSWorkerNodePolicy
,AmazonEKS_CNI_Policy
,AmazonEC2ContainerRegistryReadOnly
Richtlinien sind verbindliche Richtlinien, die erforderlich sind, damit der Amazon EKS-Cluster ordnungsgemäß funktioniert.