Como atender o regulatório da LGPD?
11 de novembro de 2020Novembro Azul: a importância dos cuidados com a saúde do homem
25 de novembro de 2020O Kubernetes, é uma plataforma open source que automatiza as operações dos containers Linux. Essa plataforma elimina grande parte dos processos manuais necessários para implantar e escalar as aplicações em containers. Em outras palavras, se você desejar agrupar em clusters os hosts executados nos containers Linux, o Kubernetes ajudará a gerenciar esses clusters com facilidade e eficiência. Esses clusters podem incluir hosts em nuvem pública, nuvem privada e nuvem híbrida.
Originalmente, o Kubernetes foi criado e desenvolvido pelos engenheiros do Google. O Google foi um dos pioneiros no desenvolvimento da tecnologia de containers Linux. Além disso, a empresa já revelou publicamente que tudo no Google é executado em containers (inclusive, essa é a tecnologia por trás dos serviços em cloud da empresa). O Google gera mais de 2 bilhões de implantações de containers por semana, viabilizadas por uma plataforma interna: Borg. O Borg foi o antecessor do Kubernetes. As lições aprendidas ao longo dos anos de desenvolvimento do Borg foram a principal influência para o desenvolvimento da tecnologia do Kubernetes.
Por que o Kubernetes é essencial?
Aplicações de produção abrangem múltiplos containers. Eles devem ser implantados em vários hosts do servidor. A segurança dos containers tem várias camadas e pode ser complexa. É aí que o Kubernetes entra em cena. Ele oferece os recursos de orquestração e gerenciamento necessários para implantar containers em escala para essas cargas de trabalho. Com a orquestração do Kubernetes, é possível criar serviços de aplicações que abrangem múltiplos containers, programar o uso deles no cluster, escalá-los e gerenciar a integridade deles com o passar do tempo. Com o Kubernetes, você toma medidas reais para aprimorar a segurança da TI.
Figura 01 – Diagrama Kubernetes
O Kubernetes corrige vários problemas comuns que ocorrem com a proliferação de containers, organizando-os em “pods”. Os pods adicionam uma camada de abstração aos containers agrupados. Assim, é mais fácil programar as cargas de trabalho e fornecer os serviços necessários a esses containers, como rede e armazenamento. Outros componentes do Kubernetes são úteis no balanceamento de carga entre os pods. Com isso, é possível garantir que o número de containers em execução seja suficiente para oferecer suporte às cargas de trabalho.
Como o Kubernetes funciona?
A principal vantagem que as empresas garantem ao usar o Kubernetes, especialmente se estiverem otimizando o desenvolvimento de aplicações para a cloud, é que elas terão uma plataforma para programar e executar containers em clusters de máquinas físicas ou virtuais. Em termos mais abrangentes, com o Kubernetes, é mais fácil implementar e confiar totalmente em uma infraestrutura baseada em containers para os ambientes de produção. Como o propósito do Kubernetes é automatizar completamente as tarefas operacionais, ele permite que os containers realizem muitas das tarefas possibilitadas por outros sistemas de gerenciamento ou plataformas de aplicações.
O Kubernetes possibilita:
- Orquestrar containers em vários hosts.
- Aproveitar melhor o hardware para maximizar os recursos necessários na execução das aplicações corporativas.
- Controlar e automatizar as implantações e atualizações de aplicações.
- Montar e adicionar armazenamento para executar aplicações com monitoração de estado.
- Escalar rapidamente as aplicações em containers e recursos relacionados.
- Gerenciar serviços de forma declarativa, garantindo que as aplicações sejam executadas sempre da mesma maneira como foram implantadas.
- Verificar a integridade e autorrecuperação das aplicações com posicionamento, reinício, replicação e escalonamento automáticos.
A linguagem do Kubernetes
Assim como qualquer tecnologia, há vários termos específicos que podem representar uma barreira inicial. Vamos explicar alguns dos termos mais comuns para ajudar você a entender melhor o Kubernetes.
Master: a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas se originam.
Nó: são máquinas que realizam as tarefas solicitadas e atribuídas. A máquina mestre do Kubernetes controla os nós.
Pod: um grupo de um ou mais containers implantados em um único nó. Todos os containers em um pod compartilham o mesmo endereço IP, IPC, nome do host e outros recursos. Os pods separam a rede e o armazenamento do container subjacente. Isso facilita a movimentação dos containers pelo cluster.
Controlador de replicações: controla quantas cópias idênticas de um pod devem ser executadas em um determinado local do cluster.
Serviço: desacopla as definições de trabalho dos pods. Os proxies de serviço do Kubernetes automaticamente levam as solicitações de serviço para o pod correto, independentemente do local do pod no cluster ou se foi substituído.
Kubelet: um serviço executado nos nós que lê os manifestos do container e garante que os containers definidos foram iniciados e estão em execução.
kubectl: a ferramenta de configuração da linha de comando do Kubernetes.
Veja como o Kubernetes se encaixa na sua infraestrutura
Figura 02
O Kubernetes é executado em um sistema operacional e interage com pods de containers executados em nós. A máquina mestre do Kubernetes aceita os comandos de um administrador (ou equipe de DevOps) e retransmite essas instruções aos nós subservientes. Essa retransmissão é realizada em conjunto com vários serviços para automaticamente decidir qual nó é o mais adequado para a tarefa. Depois, são alocados os recursos e atribuídos os pods do nó para cumprir a tarefa solicitada.
Portanto, do ponto de vista da infraestrutura, são poucas as mudanças em comparação com a forma como você já gerencia os containers. O controle sobre os containers acontece em um nível superior, tornando-o mais refinado, sem a necessidade de microgerenciar cada container ou nó separadamente. Será necessário realizar algum trabalho, mas em sua maioria trata-se somente de uma questão de atribuir um master do Kubernetes e definir os nós e pods.
E quanto ao docker?
A tecnologia do docker ainda realiza as mesmas tarefas do seu objetivo original. Quando o Kubernetes programa um pod para um nó, o kubelet no nó instruirá o docker a iniciar os containers especificados. O kubelet, então, continuamente coleta do docker os status desses containers e agrega as informações no master. O docker insere os containers nesse nó e os inicia e interrompe normalmente. A diferença é que um sistema automatizado solicita que o Docker realize essas tarefas em todos os nós de todos os containers, em vez do administrador fazer essas solicitações manualmente.
Link de referência: https://www.redhat.com/pt-br/topics/containers/what-is-kubernetes