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á.
Implante recursos e pacotes do Kubernetes usando o Amazon EKS e um repositório de charts do Helm no Amazon S3
Criado por Sagar Panigrahi (AWS)
Ambiente: PoC ou piloto | Tecnologias: contêineres e microsserviços; DevOps | Serviços da AWS: Amazon EKS |
Resumo
Esse padrão ajuda você a gerenciar aplicativos Kubernetes com eficiência, independentemente de sua complexidade. O padrão integra o Helm aos pipelines existentes de integração e entrega contínuas (CI/CD) para implantar aplicativos em um cluster do Kubernetes. Helm é um gerenciador de pacotes Kubernetes que ajuda a gerenciar aplicativos Kubernetes. Os charts do Helm ajudam a definir, instalar e atualizar aplicativos Kubernetes complexos. Os gráficos (charts) podem ser versionados e armazenados nos repositórios do Helm, o que melhora o tempo médio de restauração (MTTR) durante interrupções.
Esse padrão usa o Amazon Elastic Kubernetes Service (Amazon EKS) para o cluster do Kubernetes. Ele usa o Amazon Simple Storage Service (Amazon S3) como um repositório de charts do Helm, para que os gráficos possam ser gerenciados e acessados centralmente por desenvolvedores em toda a organização.
Pré-requisitos e limitações
Pré-requisitos
Uma conta ativa da Amazon Web Services (AWS) com uma nuvem privada virtual (VPC)
Um cluster do Amazon EKS
Nós de trabalho configurados dentro do cluster do Amazon EKS e prontos para receber workloads
Kubectl para configurar o arquivo kubeconfig do Amazon EKS para o cluster de destino na máquina cliente
Acesso ao AWS Identity and Access Management (IAM) para criar o bucket S3
Acesso por IAM (programático ou por perfil) ao Amazon S3 a partir da máquina cliente
Gerenciamento de código-fonte e pipeline de CI/CD
Limitações
No momento, não há suporte para atualizar, excluir ou gerenciar definições de recursos personalizadas (CRDs).
Se você estiver usando um recurso que se refere a um CRD, o CRD deverá ser instalado separadamente (fora do gráfico).
Versões do produto
Helm v3.6.3
Arquitetura
Pilha de tecnologias de destino
Amazon EKS
Amazon VPC
Amazon S3
Gerenciamento de código-fonte
Helm
Kubectl
Arquitetura de destino
![O cliente Helm e Kubectl implantam um repositório de gráficos Helm no Amazon S3 para clusters do Amazon EKS.](images/pattern-img/d3f993e6-4d96-4cb9-a075-c4debe431fd7/images/2f09f7bb-440a-4c4b-b29f-08d136d1ada4.png)
Automação e escala
A AWS CloudFormation pode ser usada para automatizar a criação da infraestrutura. Para obter mais informações, consulte Criação de recursos do Amazon EKS com a AWS CloudFormation na documentação do Amazon EKS.
O Helm deve ser incorporado à sua ferramenta de automação de CI/CD existente para automatizar o empacotamento e o versionamento dos charts do Helm (fora do escopo desse padrão).
GitVersion ou os números de compilação do Jenkins podem ser usados para automatizar o controle de versão dos gráficos.
Ferramentas
Ferramentas
Amazon EKS: o Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço gerenciado para executar o Kubernetes na AWS sem a necessidade de criar ou manter seu próprio ambiente de gerenciamento 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.
Helm
: é um gerenciador de pacotes Helm para o Kubernetes que ajuda a instalar e gerenciar aplicações em seu cluster do Kubernetes. Amazon S3: o Amazon Simple Storage Service (Amazon S3) serve como armazenamento para a internet. Você pode utilizar o Amazon S3 para armazenar e recuperar qualquer volume de dados, a qualquer momento, de qualquer lugar na web.
Kubectl
: o Kubectl é um utilitário de linha de comando para executar comandos em clusters do Kubernetes.
Código
O código de exemplo está anexado.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Instale o cliente Helm. | Para baixar e instalar o cliente do Helm em seu sistema local, use o comando a seguir.
| DevOps engenheiro |
Valide a instalação do Helm. | Para validar se o Helm é capaz de se comunicar com o servidor da API Kubernetes dentro do cluster do Amazon EKS, execute | DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um chart do Helm para o NGINX. | Para criar um chart do Helm nomeado | DevOps engenheiro |
Analise a estrutura do gráfico. | Para revisar a estrutura do gráfico, execute o comando de árvore | DevOps engenheiro |
Desative a criação de contas de serviço no gráfico. | Em | DevOps engenheiro |
Valide (lint) o gráfico modificado em busca de erros sintáticos. | Para validar o gráfico em busca de qualquer erro sintático antes de instalá-lo no cluster de destino, execute | DevOps engenheiro |
Instale o gráfico para implantar recursos do Kubernetes. | Para executar a instalação do chart do Helm, use o comando a seguir.
O sinalizador opcional | DevOps engenheiro |
Revise os recursos no cluster do Amazon EKS. | Para revisar os recursos que foram criados como parte do chart do Helm no namespace
| DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Modifique e atualize a versão. | Para modificar o gráfico, em
| DevOps engenheiro |
Analise o histórico de versões do Helm. | Para listar todas as revisões de uma versão específica que foram instaladas usando o Helm, execute o comando a seguir.
| DevOps engenheiro |
Revise os detalhes de uma revisão específica. | Antes de mudar ou reverter para uma versão funcional e para obter uma camada adicional de validação antes de instalar uma revisão, veja quais valores foram passados para cada uma das revisões usando o comando a seguir.
| DevOps engenheiro |
Reverta para uma versão anterior. | Para reverter para uma revisão anterior, use o comando a seguir.
Este exemplo está revertendo para a revisão número 1. | DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um bucket do S3 para charts do Helm. | Crie um bucket exclusivo do S3. No bucket, crie uma pasta denominada | Administrador de nuvem |
Instale o plug-in do Helm para o Amazon S3. | Para instalar o plug-in helm-s3 na máquina cliente, use o comando a seguir.
Observação: o suporte ao Helm V3 está disponível com a versão 0.9.0 e superior do plugin. | DevOps engenheiro |
Inicialize o repositório do Helm no Amazon S3. | Para inicializar a pasta de destino como um repositório do Helm, use o comando a seguir.
O comando cria um arquivo | DevOps engenheiro |
Adicione o repositório do Amazon S3 ao Helm. | Para adicionar o repositório na máquina cliente, use o comando a seguir.
Esse comando adiciona um alias ao repositório de destino na máquina cliente do Helm. | DevOps engenheiro |
Revise a lista de repositórios. | Para ver a lista de repositórios na máquina cliente do Helm, execute | DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Embalar o gráfico. | Para empacotar o gráfico | DevOps engenheiro |
Armazene o pacote no repositório do Helm no Amazon S3. | Para fazer o upload do pacote para o repositório do Helm no Amazon S3, execute o comando a seguir, usando o nome correto do arquivo
| DevOps engenheiro |
Pesquise pelo chart do Helm. | Para confirmar se o gráfico aparece localmente e no repositório do Helm no Amazon S3, execute o comando a seguir.
| DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Modificar e embalar o gráfico. | Em O controle de versão é idealmente atualizado por meio da automação usando ferramentas como GitVersion números de compilação do Jenkins em um pipeline de CI/CD. A automação do número da versão está fora do escopo desse padrão. | DevOps engenheiro |
Envie a nova versão para o repositório do Helm no Amazon S3. | Para enviar o novo pacote com a versão 0.1.1 para o repositório
| DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Pesquise todas as versões do gráfico my-nginx. | Para ver todas as versões disponíveis de um gráfico, execute o comando a seguir com o sinalizador
Sem o sinalizador, o Helm, por padrão, exibe a versão mais recente carregada de um gráfico. | DevOps engenheiro |
Instale um gráfico do repositório do Helm no Amazon S3. | Os resultados da pesquisa da tarefa anterior mostram as várias versões do gráfico
| DevOps engenheiro |
Recursos relacionados
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip