Kubernetes é um ótimo projeto conhecido de todos, especialmente para implantação e gerenciamento de aplicativos em contêineres. E Markus Eisele, líder de adoção do desenvolvedor EMEA da Red Hat, tem alguns detalhes importantes para qualquer pessoa interessada em aprender sobre isso.
E é que o desenvolvimento de negócios sempre foi um dos grandes desafios da engenharia da computação, e principalmente de empresas como a Red Hat. É por isso que, na última década, mudamos da arquitetura clássica de 3 camadas para uma nova arquitetura com microsserviços altamente distribuídos para obter recursos de infraestrutura quase ilimitados para provedores de nuvem pública. Além disso, esses microsserviços podem ser especializados em tarefas muito específicas e simples, em comparação com servidores de aplicativos pesados obsoletos.
Estes microsserviços implicam em maior eficiência em termos de recursos consumidos, o que é outra grande vantagem. Além disso, é uma das melhores maneiras de implantar esses aplicativos por meio de contêineres, como se pequenas máquinas virtuais foram tratados. Embora a principal diferença entre uma VM e um contêiner é que o primeiro não possui um sistema operacional, em vez disso, ele roda em um espaço do usuário do kernel do sistema operacional host, como se fosse um aplicativo. Isso também significa maior segurança.
Mas nem tudo ia ser vantajoso, já que esta arquitetura requer muitos containers (um por serviço ou mais), o que significa que a forma como são gerenciados e coordenados pode ser complexa e representar um esforço maior para o administrador do sistema. Aqui é onde Kubernetes entra em cena e torna tudo muito mais fácil.
Configurando um ambiente nativo no Kubernetes
O Kubernetes facilita a vida dos administradores, permitindo um gerenciamento mais automatizado de aplicativos e serviços. Procurando por uma analogia, seria como a autoridade portuária em um cais, que permite que os navios se movam simultaneamente no espaço. Em outras palavras, no início, os recursos do Kubernetes poderiam ser comparados aos do Java EE, já que ambos executam aplicativos em hardware físico distribuído. No entanto, os contêineres se preocupam pouco com os requisitos do aplicativo em si.
Com o Kubernetes, você pode configurar um cluster gravando arquivos de configuração em formato de texto (principalmente YAML, embora também suporte JSON). Dentro estarão os parâmetros ou especificações de cada objeto definido para gerenciamento.
Hardware para configuração local do Kubernetes
Para tirar vantagem do alta escalabilidade e confiabilidade fornecido por um cluster do Kubernetes, os desenvolvedores e administradores devem ter o cuidado de fornecer ao contêiner recursos suficientes para execução.
Se for assumido que um cluster tem dois nós mestres com 2 GB de RAM, 4 núcleos e 2 nós de trabalho com 1 GB de RAM e 2 núcleos, então um cluster Kubernetes você precisará de 6 GB de RAM e 12 núcleos, no mínimo. Alguns recursos que nem todos os computadores desktop podem fornecer, embora seja verdade que este projeto não se destina ao desktop.
No entanto, existem atualmente vários ambientes de aprendizagem menores que permitem que os desenvolvedores desenvolvam com o Kubernetes em ambientes locais. Exemplos deles são MiniKube, MicroK8s, OpenShift CodeReady Cointainers, etc. Todos eles clusters de 1 nodo único para poderem tê-los em um PC desktop e cuja instalação pode ser feita em poucos minutos.
Para testar um serviço de ambiente mais complexo, geralmente você precisa ir para um verdadeiro cluster do Kubernetes. Mas a ferramenta Recipientes de código pronto pode tornar a vida do desenvolvedor muito mais fácil, incluindo todo o kit de ferramentas e a instalação de nó único de um cluster Kubernetes.
Adoção nativa no Kubernetes é um mundo diferente
O Kubernetes veio para mudar toda a experiência dos desenvolvedores, que veem como a forma de gerenciar esses serviços é totalmente diferente e integrada. Como resultado, a adoção do Kubernetes tornou-se o próximo passo lógico para a simplificação para o desenvolvedor.
Da mesma forma, o Kubernetes permite maior flexibilidade, com ajuda e ferramentas para o desenvolvimento produtivo do Kubernetes nativo e novos desafios empolgantes ...