Home > Tendências

Como e por onde começar com o Kubernetes?

Para quem está interessado em ingressar na solução do Google, há diversas abordagens básicas para configurá-la. Aqui separamos um guia

Infoworld.com

10/07/2019 às 8h00

Foto: Shutterstock

Gerenciar containers em escala é desafiador. Pensando em facilitar a vida dos desenvolvedores, a Google criou o Kubernetes, que oferece uma estrutura única para automação e orquestração das operações de containers. Para quem está interessado em ingressar na solução, há diversas abordagens básicas para configurá-la.

Distribuição

O Kubernetes nasceu para gerenciar containers Linux. No entanto, a partir da versão 1.5, a ferramenta passou a suportar o Windows Server Containers. Com o auxílio da virtualização, é possível começar com o Kubernetes em qualquer plataforma.

Para quem opta por executar o Kubernetes em seu próprio hardware, uma maneira comum de iniciar é obtendo uma distribuição do software. Geralmente, as distribuições do Kubernetes podem ser instaladas e executadas em qualquer infraestrutura de máquina virtual: Amazon, EC2, Google Compute Engine, OpenStack, entre outras.

Canonical Kubernetes, Cloud Foundry Container Runtime, Mesosphere Kubernetes Service, Oracle Linux Container Services, Pivotal Container Service, Rancher, Red Hat OpenShift e Suse CaaS Platform são apenas algumas das dezenas de soluções para Kubernetes disponíveis. É importante ressaltar que a Canonical, Red Hat e Suse combinam o Kubernetes com uma distribuição Linux, dispensando a necessidade de configurar a plataforma em um determinado sistema operacional.

Apesar de exigir maior manipulação por parte do desenvolvedor, outra possibilidade é executar o Kubernetes em uma distribuição Linux convencional. O Red Hat, por exemplo, tem o Kubernetes em seu repositório, mas mesmo assim recomenda seu uso apenas para testes e experimentação. Em vez de tentar fazer o processo manualmente, indica-se que os usuários do Red Hat usem o Kubernetes por meio do OpenShift PaaS, já que o OpenShift agora usa o Kubernetes como seu próprio orquestrador nativo.

Diversas distribuições convencionais do Linux oferecem ferramentas especiais para configurar o Kubernetes. O Ubuntu, por exemplo, conta com uma ferramenta chamada conjure-up, que pode ser usada para implantar a versão upstream do Kubernetes. A Canonical também disponibiliza o MicroK8s, uma versão do Kubernetes que é instalada através do sistema de pacotes Snap.

Nuvem

Apesar de estar disponível em diferentes serviços de nuvem, inicialmente é interessante utilizar o Kubernetes no Google Cloud Platform (GCP), onde a plataforma é um recurso nativo. O GCP oferece duas maneiras principais de executar o Kubernetes: a mais conveniente e integrada é o Google Kubernetes Engine, que permite executar as ferramentas de linha de comando do Kubernetes para gerenciamento do cluster.

Como alternativa, os desenvolvedores podem usar o Google Compute Engine para configurar um cluster e implantar o Kubernetes manualmente. Esse método é, claro, mais trabalhoso, mas permite personalizações que não são possíveis com o Container Engine. De qualquer forma, a recomendação para os iniciantes é manter o Container Engine, deixando para mais tarde os processos mais avançados.

Com a Amazon, anteriormente era necessário executar o Kubernetes implementando um cluster no Amazon EC2. Apesar de ainda ser uma opção, a gigante de Jeff Bezos agora oferece o Elastic Container Service para Kubernetes (EKS). Na solução, a Amazon executa o controle, enquanto o desenvolvedor pode se concentrar na implantação de containers que serão usados com a configuração desejada. Além disso, o EKS executa uma edição upstream padrão do Kubernetes. Para os especialistas, um recurso inteligente é a integração do Kubernetes com o restante do portfólio da AWS.

Muitas distribuições do Kubernetes contam com instruções detalhadas para sua configurações na AWS e em outros serviços. O Red Hat OpenShift, por exemplo, pode ser instalado em um ou mais hosts. A ferramenta Kops do Kubernetes pode ser usada para provisionar um cluster de VMs genéricas na AWS, com suporte para o Google Cloud Engine, o VMWare VSphere e outras nuvens.

O Microsoft Azure tem suporte para o Kubernetes por meio do AKS (Serviço de Kubernetes do Azure). Nele, o Azure gerencia os recursos do Kubernetes, enquanto o desenvolvedor cria os clusters por meio de modelos do Resource Manager ou do Terraform.

Uma maneira rápida de provisionar um cluster básico do Kubernetes em uma variedade de ambientes é usando um projeto chamado Kubernetes Anywhere. Esse script funciona no Google Compute Engine, no Microsoft Azure, no VMware vSphere (o vCenter é necessário) e no OpenStack. Em cada caso, o Kubernetes Anywhere fornece algum grau de automação para as configurações.

Minikube

Para quem pretende executar o Kubernetes em um ambiente local e não precisar de todas as ferramentas, existem algumas maneiras de configurar a plataforma para tal uso.

O Minikubem, por exemplo, é fornecido pela própria equipe de desenvolvimento do Kubernetes. Apesar de ter alguns pré-requisitos, pode ser facilmente encontrado para MacOS, Linux ou Windows.

Aplicativos de demonstração

Depois de executar o Kubernetes é possível começar a implantar e gerenciar containers. Os desenvolvedores podem facilitar as operações criando em cima de uma das muitas demos de aplicativos baseadas em containers disponíveis.

Para praticar, recomenda-se trabalhar em uma demo, montando-a para ver sua composição, implantando-a e modificando suas propriedades para que se torne algo útil aos planos do desenvolvedor. Quem utiliza o Minikube pode desfrutar do tutorial para criar um container Docker. Em seguida, é interessante se familiarizar com conceitos mais avançados, como pods (um ou mais containeres que compõem um aplicativo) e replica sets (para fornecer recuperação automática em casos de falhas).

A Weaveworks tem um aplicativo de exemplo, o Sock Shop, que mostra como um padrão de microsserviços pode ser usado para compor um aplicativo no Kubernetes. O Sock Shop é mais útil para pessoas familiarizadas com as tecnologias subjacentes - Node.js, Go kit e Spring Boot -, mas os princípios fundamentais são destinados a transcender estruturas específicas e ilustrar tecnologias nativas da nuvem.

Indica-se, ainda, observar o WordPress/MySQL, onde o desenvolvedor consegue observar detalhes de implementação para muitos conceitos usados para a criação de aplicativos Kubernetes.

Gerenciamento de containers

O Kubernetes simplifica o gerenciamento de containers e oferece grande flexibilidade aos desenvolvedores. Em vez de transportar um sistema operacional inteiro, bem como seus programas, o profissional pode apenas encapsular seu código e recursos em um container a ser executado em qualquer ambiente.

Com isso compreendido, o próximo passo é aprender como o Kubernetes pode ser conduzido por ferramentas para gerenciar a infraestrutura. Um desses exemplos é o Puppet, que tem um módulo para criar e manipular recursos no Kubernetes, assim como o Terraform. Vale destacar, no entanto, que ao utilizar um gerenciador o desenvolvedor deve estar atento a ferramentas diferentes. Por usarem, por padrão, infraestrutura mutáveis e imutáveis, respectivamente, o Puppet e o Terraform podem determinar quão fácil ou difícil será a configuração necessária do Kubernetes.

 

Tags
Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter Newsletter por e-mail