Introdução a Kubernetes
- #Kubernetes
Caros colegas,
Estava precisando estudar um pouco sobre Kubernetes e aproveitei para fazer um resuminho.
Espero que possa ajudá-los.
Introdução
Kubernetes é uma plataforma de código aberto para orquestrar contêineres, ajudando na implantação, dimensionamento e gerenciamento automatizado destes.
Contêineres empacotam os softwares, permitindo o lançamento e manutenção de forma fácil e rápida. Para coordenar muitos contêineres, criar seus agendamentos e dimensionar muitas instâncias, o mais indicado é fazer uso do Kubernetes.
Como Kubernetes funciona?
O Kubernetes coordena um cluster com alta disponibilidade de máquinas conectadas para funcionar como uma única unidade. Um cluster Kubernetes pode ser implantado em máquinas físicas ou virtuais.
Os aplicativos em contêineres são flexíveis e disponíveis, pois independem do servidor em que estão.
Cada servidor nesse cluster Kubernetes é considerado um nó (node) .
O Kubernetes possui uma camada de gerenciamento que gerencia o cluster e os nós que são usados para hospedar os aplicativos. Esta camada coordena todas as atividades em seu cluster, como programação de aplicativos, manutenção do estado desejado dos aplicativos, escalonamento de aplicativos e lançamento de novas atualizações.
Um cluster Kubernetes que lida com o tráfego de produção deve ter no mínimo três nós.
Kubelet
Cada nó tem um Kubelet, que é um agente para gerenciar o nó e se comunicar com a camada de gerenciamento do Kubernetes. O nó também deve ter ferramentas para lidar com operações de contêiner, o Docker.
Os nós se comunicam com a camada de gerenciamento usando a API do Kubernetes.
Kubernetes Pod
Um Pod é um grupo de um ou mais contêineres de aplicativos e recursos que compartilham como o armazenamento compartilhado (volumes), endereço IP e informações sobre como executá-los.
Serviços Kubernetes
Um serviço Kubernetes é uma camada de abstração que define um conjunto lógico de Pods e habilita a exposição ao tráfego externo, balanceamento de carga e descoberta de serviço para esses Pods.
Escalando uma aplicação
O escalonamento é obtido pela mudança do número de réplicas em um Deployment, que a princípio gera um único Pod. Escalar um Deployment cria novos Pods.
Executar múltiplas instâncias de uma aplicação irá requerer uma forma de distribuir o tráfego entre todas elas. Serviços possuem um balanceador de carga integrado que distribuirá o tráfego de rede entre todos os Pods de um Deployment.
Serviços irão monitorar continuamente os Pods em execução para garantir que o tráfego seja enviado apenas para Pods disponíveis.
No momento em que houver múltiplas instâncias de uma aplicação em execução, será possível fazer atualizações graduais sem indisponibilidade do aplicativo.
https://kubernetes.io/pt-br/docs/tutorials/kubernetes-basics/