Criando um cluster Kubernetes de nível corporativo

*Por Felipe Costa, especialista em Segurança da Informação da Trend Micro

O KOPS (Operações de Kubernetes, na sigla em inglês) serve para ajuda a criar, destruir, atualizar e manter clusters Kubernetes com nível de produção, altamente disponíveis e escalonáveis na linha de comando. É a maneira mais fácil de colocar um cluster Kubernetes de produção em funcionamento. Este artigo tem como objetivo ajudá-lo a criar seu cluster K8s autogerenciado, é longo, mas muito fácil de seguir. A documentação oficial do KOPS (Kubernetes Operations) pode ser encontrada aqui: https://github.com/kubernetes/kops

Eu estou usando a AWS como provedor de nuvem preferido para executar este cluster. Essa ferramenta também suporta o Google Cloud, OpenStack, VMware vSphere em alpha e outras plataformas planejadas. O KOPS criará vários recursos diferentes na sua conta da AWS para configurar o cluster K8s, como instâncias do EC2, entradas do Route 53, grupos de escalonamento automático e balanceadores de carga para fornecer alta disponibilidade e escalabilidade ao seu cluster. Para começar, precisamos ter uma instância do EC2 que possa ser uma instância - que você já possui ou pode configurar uma nova e atribuir as permissões corretas a essa instância; para configurar uma nova, siga o manual no link.

Também é necessário ter essas permissões do IAM abaixo para que o EC2 possa configurar seu cluster:

AmazonEC2FullAccess
AmazonRoute53FullAccess
AmazonS3FullAccess
IAMFullAccess
AmazonVPCFullAccess

Para configurar essas permissões, você pode criar um usuário do IAM, configurar as permissões e usar a AWS CLI para configurar a Chave de acesso e o segredo, para que sua instância do EC2 possa usar o KOPS para configurar o cluster. Você pode verificar o manual oficial do KOPS para configurar isso neste link

A outra opção é usar as funções do IAM e anexar essas permissões à sua instância do EC2 - como eu fiz - e você deverá ter os mesmos resultados de qualquer maneira. Para criar uma função do IAM, siga este manual

O próximo passo será instalar as 2 ferramentas necessárias para configurar seu cluster:

Vale lembrar que você também precisará instalar a CLI da AWS. Como estou usando uma máquina Amazon Linux 2, a AWS CLI já está instalada.

Após a instalação das ferramentas, precisamos criar um depósito S3 para poder armazenar o estado do seu cluster. Para criar o depósito, siga as configurações conforme este link.

Ressaltando que essa é a maneira mais básica de configurar seu bucket S3. Também recomendo que você configure o controle de versão do seu bucket S3, caso precise reverter ou recuperar um armazenamento de estado anterior e também a criptografia padrão para o seu bucket, mas é opcional.

Também configurarei algumas variáveis de ambiente para facilitar a execução de comandos no futuro, conforme fiz aqui.

Você pode escolher qualquer nome que desejar, mas o nome deve terminar com “k8s.local” devido às configurações de DNS que o KOPS executará durante o processo para criar o cluster. Além disso, o nome do seu bloco S3 precisa ser exclusivo na nuvem da AWS.

Você precisará escolher quais zonas de disponibilidade estão disponíveis para o cluster usar. Neste exemplo, implantaremos nosso cluster na região us-east-1, para verificar as zonas de disponibilidade para essa região, basta seguir as opções que fiz aqui.

Você pode conferir todos os códigos de regiões e disponibilidade neste link.

No meu caso, estou criando meus nós, cada um em uma zona de disponibilidade diferente (1 nó mestre e 3 nós trabalhador). Ao executar o comando abaixo, você criará a configuração no bucket S3 para que o KOPS possa ler e implantar seu cluster, conforme demonstro aqui.

O comando irá gerar uma configuração de cluster, mas ainda não começará a construí-la. De acordo com a mensagem, você deve configurar uma chave pública ssh e adicionar essa chave ao cluster: Ignore a configuração da senha.

Executarei o cluster na configuração padrão principal, mas se você desejar modificar as configurações de cluster, poderá usar este comando.

Modifiquei a configuração do nó no cluster para poder escalar mais instâncias do que o padrão. Você pode alterar o tipo de instância e as instâncias mínima e máxima usando o seguinte comando e editando estas variáveis. Se você quiser verificar as configurações que o KOPS aplicará, use este comando.

Para aplicar toda a configuração que fizemos até agora, execute este comando para começar a criar seu cluster K8s, com base nos arquivos de configuração que armazenamos no S3 Bucket.

Levará tempo para criar o cluster (geralmente de 10 a 15 minutos), portanto seja paciente. Você pode verificar o status da criação do cluster executando o seguinte comando. O comando mostrará vários erros durante o processo, mas não se preocupe, isso acontece porque o cluster ainda não está pronto. Após alguns minutos, quando o cluster estiver 100% operacional, você poderá verificar seus nós e mestre executando o mesmo comando de antes. Feito! Você acabou de criar um cluster K8s de nível empresarial na nuvem.

Se você está preocupado com o custo dessa configuração, eu fiz um custo de estimativa usando a Calculadora de preços da AWS, em geral, essa configuração custará cerca de 0,25 USD por hora. Você pode verificar o custo total estimado neste link.

Lembre-se de excluir seu cluster se não o estiver usando. Para excluir seu cluster, basta executar este comando.

Nós da Trend Micro oferecemos o Cloud One, que é uma plataforma de serviços de segurança que fornece segurança poderosa, enquanto você aproveita todos os benefícios e eficiências que a nuvem oferece aos seus negócios. O Cloud One oferece vários serviços projetados para atender a necessidades específicas de segurança na nuvem, incluindo controles de carga de trabalho, contêiner, rede, armazenamento e mais de mais de 80 serviços diferentes nas principais infraestruturas de nuvem pública.

Não importa onde você esteja na sua jornada na nuvem, o Trend Micro Cloud One o cobrirá. Da virtualização e migração da nuvem ao DevOps, segurança de contêiner e sem servidor - obtenha uma solução automatizada, flexível e completa para suas prioridades de segurança na nuvem.

Reconhecemos que existem diferentes drivers por trás de suas prioridades de segurança na nuvem em constante evolução. Também entendemos todo o trabalho contínuo necessário para proteger seu ambiente complexo e de múltiplas nuvens, com ritmo acelerado - portanto, vamos simplificá-lo.