

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 SSM Agent mithilfe von Kubernetes auf Amazon EKS-Worker-Knoten DaemonSet
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset"></a>

*Mahendra Revanasiddappa, Amazon Web Services*

## Zusammenfassung
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-summary"></a>

**Hinweis, September 2021: Mit** der neuesten für Amazon EKS optimierten Version wird der SSM-Agent automatisch AMIs installiert. Weitere Informationen finden Sie in den [Versionshinweisen](https://github.com/awslabs/amazon-eks-ami/releases/tag/v20210621) für Juni 2021 AMIs.

In Amazon Elastic Kubernetes Service (Amazon EKS) sind Worker-Knoten aufgrund von Sicherheitsrichtlinien nicht mit Secure Shell (SSH) -Schlüsselpaaren verknüpft. Dieses Muster zeigt, wie Sie den DaemonSet Kubernetes-Ressourcentyp verwenden können, um den AWS Systems Manager Agent (SSM Agent) auf allen Worker-Knoten zu installieren, anstatt ihn manuell zu installieren oder das Amazon Machine Image (AMI) für die Knoten zu ersetzen. DaemonSet verwendet einen Cron-Job auf dem Worker-Knoten, um die Installation des SSM-Agenten zu planen. Sie können dieses Muster auch verwenden, um andere Pakete auf Worker-Knoten zu installieren.

Wenn Sie Probleme im Cluster beheben, können Sie durch die Installation von SSM Agent on Demand ohne SSH-Schlüsselpaare eine SSH-Sitzung mit dem Worker-Knoten einrichten, Protokolle sammeln oder die Instanzkonfiguration überprüfen.

## Voraussetzungen und Einschränkungen
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-prereqs"></a>

**Voraussetzungen**
+ Ein vorhandener Amazon EKS-Cluster mit Amazon Elastic Compute Cloud (Amazon EC2) -Worker-Knoten.
+ Container-Instances sollten über die erforderlichen Berechtigungen für die Kommunikation mit dem SSM-Service verfügen. Die von AWS Identity and Access Management (IAM) verwaltete Rolle **Amazon SSMManaged InstanceCore** stellt die erforderlichen Berechtigungen bereit, damit der SSM-Agent auf EC2 Instances ausgeführt werden kann. Weitere Informationen finden Sie in der [Dokumentation zu AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html).

**Einschränkungen**
+ Dieses Muster gilt nicht für AWS Fargate, da es auf der Fargate-Plattform DaemonSets nicht unterstützt wird.
+ Dieses Muster gilt nur für Linux-basierte Worker-Knoten.
+ Die DaemonSet Pods werden im privilegierten Modus ausgeführt. Wenn der Amazon EKS-Cluster über einen Webhook verfügt, der Pods im privilegierten Modus blockiert, wird der SSM-Agent nicht installiert.

## Architektur
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-architecture"></a>

Das folgende Diagramm veranschaulicht die Architektur für dieses Muster.

![Verwenden von Kubernetes DaemonSet zur Installation des SSM-Agenten auf Amazon EKS-Worker-Knoten.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/016d53f3-45c1-4913-b542-67124e1462b8/images/3a6dfd00-e54b-44d5-843a-4c26ce9826c9.png)


## Tools
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-tools"></a>

**Tools**
+ [kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) ist ein Befehlszeilenprogramm, das für die Interaktion mit einem Amazon EKS-Cluster verwendet wird. Dieses Muster wird verwendet`kubectl`, um einen DaemonSet auf dem Amazon EKS-Cluster bereitzustellen, der den SSM-Agent auf allen Worker-Knoten installiert.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) macht es Ihnen leicht, Kubernetes auf AWS auszuführen, ohne Ihre eigene Kubernetes-Steuerebene oder Knoten installieren, betreiben und warten zu müssen. Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Anwendungen in Containern.
+ Mit [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) können Sie Ihre EC2 Instances, lokalen Instances und virtuellen Maschinen (VMs) über eine interaktive, browserbasierte Shell mit einem Klick oder über die AWS-Befehlszeilenschnittstelle (AWS CLI) verwalten.

**Code**

Verwenden Sie den folgenden Code, um eine DaemonSet Konfigurationsdatei zu erstellen, mit der der SSM-Agent auf dem Amazon EKS-Cluster installiert wird. Folgen Sie den Anweisungen im Abschnitt [Epics](#install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-epics).

```
cat << EOF > ssm_daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    k8s-app: ssm-installer
  name: ssm-installer
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: ssm-installer
  template:
    metadata:
      labels:
        k8s-app: ssm-installer
    spec:
      containers:
      - name: sleeper
        image: busybox
        command: ['sh', '-c', 'echo I keep things running! && sleep 3600']
      initContainers:
      - image: amazonlinux
        imagePullPolicy: Always
        name: ssm
        command: ["/bin/bash"]
        args: ["-c","echo '* * * * * root yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm & rm -rf /etc/cron.d/ssmstart' > /etc/cron.d/ssmstart"]
        securityContext:
          allowPrivilegeEscalation: true
        volumeMounts:
        - mountPath: /etc/cron.d
          name: cronfile
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      volumes:
      - name: cronfile
        hostPath:
          path: /etc/cron.d
          type: Directory
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
EOF
```

## Epen
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-epics"></a>

### Richten Sie kubectl ein
<a name="set-up-kubectl"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren und konfigurieren Sie kubectl für den Zugriff auf den EKS-Cluster. | Falls es noch `kubectl` nicht installiert und für den Zugriff auf den Amazon EKS-Cluster konfiguriert ist, finden Sie weitere Informationen unter [Installation von kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) in der Amazon EKS-Dokumentation. | DevOps | 

### Stellen Sie das bereit DaemonSet
<a name="deploy-the-daemonset"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die DaemonSet Konfigurationsdatei. | Verwenden Sie den Code im Abschnitt [Code](#install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-tools) weiter oben in diesem Muster, um eine DaemonSet Konfigurationsdatei namens zu erstellen`ssm_daemonset.yaml`, die im Amazon EKS-Cluster bereitgestellt wird. <br />Der von gestartete Pod DaemonSet hat einen Hauptcontainer und einen `init` Container. Der Hauptcontainer hat einen `sleep` Befehl. Der `init` Container enthält einen `command` Abschnitt, der eine Cron-Job-Datei zur Installation des SSM-Agenten im Pfad erstellt. `/etc/cron.d/` Der Cron-Job wird nur einmal ausgeführt, und die von ihm erstellte Datei wird nach Abschluss des Jobs automatisch gelöscht. <br />Wenn der Init-Container fertig ist, wartet der Hauptcontainer 60 Minuten, bevor er beendet wird. Nach 60 Minuten wird ein neuer Pod gestartet. Dieser Pod installiert den SSM-Agent, falls er fehlt, oder aktualisiert den SSM-Agenten auf die neueste Version.<br />Bei Bedarf können Sie den `sleep` Befehl so ändern, dass der Pod einmal täglich neu gestartet oder häufiger ausgeführt wird.  | DevOps | 
| Stellen Sie den DaemonSet auf dem Amazon EKS-Cluster bereit. | Verwenden Sie den folgenden Befehl, um die DaemonSet Konfigurationsdatei, die Sie im vorherigen Schritt erstellt haben, auf dem Amazon EKS-Cluster bereitzustellen:<pre>kubectl apply -f ssm_daemonset.yaml </pre><br />Dieser Befehl erstellt einen DaemonSet , um die Pods auf Worker-Knoten auszuführen, um den SSM-Agent zu installieren. | DevOps | 

## Zugehörige Ressourcen
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-resources"></a>
+ [Installation von kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) (Amazon EKS-Dokumentation)
+ [Session Manager einrichten](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) (AWS Systems Manager Manager-Dokumentation)