

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 SSM Agent sui nodi di lavoro Amazon EKS utilizzando Kubernetes DaemonSet
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset"></a>

*Mahendra Revanasiddappa, Amazon Web Services*

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

**Nota, settembre 2021:** l'ultima versione ottimizzata di Amazon EKS AMIs installa automaticamente SSM Agent. Per ulteriori informazioni, consulta le [note di rilascio](https://github.com/awslabs/amazon-eks-ami/releases/tag/v20210621) di giugno 2021 AMIs.

In Amazon Elastic Kubernetes Service (Amazon EKS), a causa delle linee guida sulla sicurezza, ai nodi di lavoro non sono associate coppie di chiavi Secure Shell (SSH). Questo modello mostra come utilizzare il tipo di DaemonSet risorsa Kubernetes per installare AWS Systems Manager Agent (SSM Agent) su tutti i nodi di lavoro, anziché installarlo manualmente o sostituire l'Amazon Machine Image (AMI) per i nodi. DaemonSet utilizza un cron job sul nodo di lavoro per pianificare l'installazione di SSM Agent. È inoltre possibile utilizzare questo modello per installare altri pacchetti sui nodi di lavoro.

Quando si risolvono i problemi del cluster, l'installazione di SSM Agent on demand consente di stabilire una sessione SSH con il nodo di lavoro, di raccogliere i log o di esaminare la configurazione dell'istanza, senza coppie di chiavi SSH.

## Prerequisiti e limitazioni
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-prereqs"></a>

**Prerequisiti**
+ Un cluster Amazon EKS esistente con nodi di lavoro Amazon Elastic Compute Cloud (Amazon EC2).
+ Le istanze di container devono disporre delle autorizzazioni necessarie per comunicare con il servizio SSM. Il ruolo gestito di AWS Identity and Access Management (IAM) **Amazon SSMManaged InstanceCore** fornisce le autorizzazioni necessarie per l'esecuzione di SSM Agent sulle EC2 istanze. Per ulteriori informazioni, consulta la [documentazione di AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html).

**Limitazioni**
+ Questo modello non è applicabile ad AWS Fargate, perché DaemonSets non sono supportati sulla piattaforma Fargate.
+ Questo modello si applica solo ai nodi di lavoro basati su Linux.
+ I DaemonSet pod funzionano in modalità privilegiata. Se il cluster Amazon EKS dispone di un webhook che blocca i pod in modalità privilegiata, l'agente SSM non verrà installato.

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

Il diagramma seguente illustra l'architettura di questo modello.

![\[Utilizzo di Kubernetes DaemonSet per installare SSM Agent sui nodi di lavoro Amazon EKS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/016d53f3-45c1-4913-b542-67124e1462b8/images/3a6dfd00-e54b-44d5-843a-4c26ce9826c9.png)


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

**Strumenti**
+ [kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) è un'utilità da riga di comando utilizzata per interagire con un cluster Amazon EKS. Questo modello viene utilizzato `kubectl` per distribuire un agente SSM DaemonSet sul cluster Amazon EKS, che installerà l'agente SSM su tutti i nodi di lavoro.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) semplifica l'esecuzione di Kubernetes su AWS senza dover installare, utilizzare e mantenere il tuo piano di controllo o i tuoi nodi Kubernetes. Kubernetes è un sistema open source per automatizzare l'implementazione, il dimensionamento e la gestione di applicazioni containerizzate.
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) consente di gestire le EC2 istanze, le istanze locali e le macchine virtuali (VMs) tramite una shell interattiva basata su browser con un solo clic o tramite l'AWS Command Line Interface (AWS CLI).

**Codice**

Utilizza il codice seguente per creare un file di DaemonSet configurazione che installerà l'agente SSM sul cluster Amazon EKS. Segui le istruzioni nella sezione [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
```

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

### Configura kubectl
<a name="set-up-kubectl"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa e configura kubectl per accedere al cluster EKS. | Se `kubectl` non è già installato e configurato per accedere al cluster Amazon EKS, consulta [Installazione di kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) nella documentazione di Amazon EKS. | DevOps | 

### Implementa il DaemonSet
<a name="deploy-the-daemonset"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il file DaemonSet di configurazione. | Utilizza il codice nella sezione [Codice](#install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-tools) precedente di questo modello per creare un file di DaemonSet configurazione chiamato`ssm_daemonset.yaml`, che verrà distribuito nel cluster Amazon EKS. Il pod lanciato da DaemonSet ha un contenitore principale e un `init` contenitore. Il contenitore principale ha un `sleep` comando. Il `init` contenitore include una `command` sezione che crea un file cron job per installare SSM Agent sul percorso. `/etc/cron.d/` Il cron job viene eseguito solo una volta e il file che crea viene automaticamente eliminato dopo il completamento del lavoro. Quando il contenitore init è terminato, il contenitore principale attende 60 minuti prima di uscire. Dopo 60 minuti, viene lanciato un nuovo pod. Questo pod installa SSM Agent, se manca, o aggiorna SSM Agent alla versione più recente.Se necessario, puoi modificare il `sleep` comando per riavviare il pod una volta al giorno o per eseguirlo più spesso.  | DevOps | 
| Implementa il DaemonSet file sul cluster Amazon EKS. | Per distribuire il file di DaemonSet configurazione creato nel passaggio precedente sul cluster Amazon EKS, utilizza il seguente comando:<pre>kubectl apply -f ssm_daemonset.yaml </pre>Questo comando crea un comando DaemonSet per eseguire i pod sui nodi di lavoro per installare SSM Agent. | DevOps | 

## Risorse correlate
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-resources"></a>
+ [Installazione di kubectl (documentazione Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)
+ [Configurazione di Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) (documentazione di AWS Systems Manager)