

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Instale o agente SSM nos nós de trabalho do Amazon EKS usando o Kubernetes DaemonSet
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset"></a>

*Mahendra Revanasiddappa, Amazon Web Services*

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

**Observação, setembro de 2021:** a última versão otimizada do Amazon EKS AMIs instala o SSM Agent automaticamente. Para obter mais informações, consulte as [notas de lançamento](https://github.com/awslabs/amazon-eks-ami/releases/tag/v20210621) de junho de 2021 AMIs.

No Amazon Elastic Kubernetes Service (Amazon EKS), devido às diretrizes de segurança, os nós de processamento não têm pares de chaves Secure Shell (SSH) anexados a eles. Esse padrão mostra como você pode usar o tipo de DaemonSet recurso Kubernetes para instalar o AWS Systems Manager Agent (SSM Agent) em todos os nós de trabalho, em vez de instalá-lo manualmente ou substituir a Amazon Machine Image (AMI) pelos nós. DaemonSet usa um cron job no nó de trabalho para agendar a instalação do SSM Agent. Você também pode usar esse padrão para instalar outros pacotes nos nós de processamento.

Quando você está solucionando problemas no cluster, a instalação do SSM Agent sob demanda permite estabelecer uma sessão SSH com o nó de processamento, coletar logs ou examinar a configuração da instância, sem pares de chaves SSH.

## Pré-requisitos e limitações
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-prereqs"></a>

**Pré-requisitos **
+ Um cluster Amazon EKS existente com nós de trabalho do Amazon Elastic Compute Cloud (Amazon EC2).
+ As instâncias de contêiner devem ter as permissões necessárias para se comunicar com o serviço SSM. A função gerenciada do AWS Identity and Access Management (IAM), a **Amazon SSMManaged InstanceCore** fornece as permissões necessárias para que o SSM Agent seja executado em EC2 instâncias. Para obter mais informações, consulte a [documentação do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html).

**Limitações**
+ Esse padrão não é aplicável ao AWS Fargate, porque DaemonSets não são compatíveis com a plataforma Fargate.
+ Esse padrão se aplica somente aos nós de processamento baseados em Linux.
+ Os DaemonSet pods funcionam em modo privilegiado. Se o cluster do Amazon EKS tiver um webhook que bloqueia pods no modo privilegiado, o SSM Agent não será instalado.

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

O diagrama a seguir ilustra a arquitetura desse padrão.

![Usando o Kubernetes DaemonSet para instalar o SSM Agent nos nós de trabalho do Amazon EKS.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/016d53f3-45c1-4913-b542-67124e1462b8/images/3a6dfd00-e54b-44d5-843a-4c26ce9826c9.png)


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

**Ferramentas**
+ O [kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) é um utilitário de linha de comando que é usado para interagir com um cluster do Amazon EKS. Esse padrão é usado `kubectl` para implantar um DaemonSet no cluster Amazon EKS, que instalará o SSM Agent em todos os nós de trabalho.
+ O [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) facilita para você a execução do Kubernetes na AWS, eliminando a necessidade de instalar, operar e manter seu próprio ambiente de gerenciamento ou nós do Kubernetes. O Kubernetes é um sistema de código aberto para automatizar a implantação, a escalabilidade e o gerenciamento de aplicações em contêineres.
+ [O AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) permite que você gerencie suas EC2 instâncias, instâncias locais e máquinas virtuais (VMs) por meio de um shell interativo baseado em navegador com um clique ou por meio da AWS Command Line Interface (AWS CLI).

**Código **

Use o código a seguir para criar um arquivo DaemonSet de configuração que instalará o SSM Agent no cluster Amazon EKS. Siga as instruções na seção [Épicos](#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
```

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

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale e configure o kubectl para acessar o cluster do EKS. | Se o `kubectl` ainda não estiver instalado e configurado para acessar o cluster do Amazon EKS, consulte [Instalação do kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) na documentação do Amazon EKS. | DevOps | 

### Implemente o DaemonSet
<a name="deploy-the-daemonset"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o arquivo DaemonSet de configuração. | Use o código na seção [Código](#install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-tools) no início desse padrão para criar um arquivo de DaemonSet configuração chamado`ssm_daemonset.yaml`, que será implantado no cluster Amazon EKS. <br />O pod lançado por DaemonSet tem um contêiner principal e um `init` contêiner. O contêiner principal tem um comando `sleep`. O contêiner `init` inclui uma seção `command` que cria um arquivo de trabalho cron para instalar o SSM Agent no caminho `/etc/cron.d/`. O trabalho cron é executado somente uma vez, e o arquivo que ele cria é automaticamente excluído após a conclusão do trabalho. <br />Quando o contêiner inicial terminar, o contêiner principal espera 60 minutos antes de sair. Após 60 minutos, um novo pod é lançado. Esse pod instala o SSM Agent, se estiver ausente, ou atualiza o SSM Agent para a versão mais recente.<br />Se necessário, você pode modificar o comando `sleep` para reiniciar o pod uma vez por dia ou para executá-lo com mais frequência.  | DevOps | 
| Implemente o DaemonSet no cluster Amazon EKS. | Para implantar o arquivo de DaemonSet configuração que você criou na etapa anterior no cluster Amazon EKS, use o seguinte comando:<pre>kubectl apply -f ssm_daemonset.yaml </pre><br />Esse comando cria um DaemonSet para executar os pods nos nós de trabalho para instalar o SSM Agent. | DevOps | 

## Recursos relacionados
<a name="install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset-resources"></a>
+ [Instalação do kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) (documentação do Amazon EKS)
+ [Configurando o Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) (documentação do AWS Systems Manager)