kumernetes
1 Introdução
Este nome tem a sua terminologia conhecida por k8s, uma solução open Source utilizada para automatizar e simplificar todo o processo de gerenciamento de containers linux. Tendo o Google como uma das empresas pioneiras a desenvolver e utilizar a tecnologia de containers, o Kubernets simplifica o gerenciamento de aplicações que utilizam containers e precisam de segurança, performance, escalabilidade, monitoramento e suporte em diferentes provedores cloud.
A premissa aqui é entender o que é o Kubernetes, seus principais recursos, tais como Pods, Service, ConfigMap, Nodeport, Replicaset/deployments, Storage classes e Liveness, por fim, mas não menos importante, Readiness Probes. Talvez o artigo não consiga alcançar todos os pontos princicpais, contudo, servirá para ter uma base sobre o assunto.
2 Entendendo Kubernetes
Antes de adentrar sobre o assunto de kubernetes, é necessário fazer uma pausa e falar sobre Docker. O Docker é uma ferramenta padrão para deployar/implementar uma aplicação usando containers, ou seja, é possível criar uma máquina com todos serviços do xampp e instalar todas as dependências necessárias e disponibilizá-la como containers.
Em poucas palavras, a grande vantagem de um container é o de compilar todas as suas dependências necessárias para rodá-la, isto inclui bibliotécas, o runtime e o código da aplicação, todo este compilado é chamado de imagem que pode ser versionado ao distribuí-lo.
Há alguns percalsos que o Docker sozinho não irá resolver, não precisamente um percalso, mas cenários complexos com demandas de alta disponibilidade, escalabilidade e microserviços. Explanando um pouco mais sobre este último exemplo, imagine uma aplicação que estava em um único container e passou a ser dividida em vários outros que precisam interagir entre si de maneira confiável passando por vários hosts garantindo a alta disponibilidade e escalabilidade necessário para rodar a aplicação. Este é um dos percalsos que a Docker sozinho não irá atender.
Pensando nesta necessidade de gerenciamento, de uma maneira de garantir que todo este ecosistema continue rodando, é que volta-se ao título deste artigo, o Kubernetes.
É o kubernetes que gerencia os containers em execução e por isso ele também é denominado de "Orquestrador de Containers", através dele é possível realizar o rollbacks, garantir a altadisponibilidade, atualizações em lote e entre outros. Os maiores Playres de provedores de nuvem dão suporte ao kubernetes. Um adendo para este parágrafo, é sobre a alternativa de montar todo este ecosistema localmente usando o Minikube que simula um cluster kubernetes, ideal para testes e estudos, o atrativo disto é que após realizar este ensaio local, o usuário pode subir toda aplicação para nuvem. Vale ressaltar que o kubernetes não é o único Orquestrador de Containers, a própria Docker disponibiliza o Docker Swarm.