O que é Kubernetes e como posso usá-lo?
Kubernetes, também conhecido como K8s, é um sistema open-source para automatizar deployment, escalonamento e gerenciamento de aplicações containerizadas.
Kubernetes é uma plataforma para gerenciar cargas de trabalho e serviços containerizados. que facilita configuração declarativa e automação.
Visão Geral
Kubernetes funciona em um cluster, consistindo em um conjunto de máquinas worker, essas máquinas são chamadas de nodes, que executam aplicações containerizadas, e todo cluster tem pelo menos um worker node.
Além disso, um cluster Kubernetes tem um control plane, ele gerencia os worker nodes e o estado do cluster.
Estes são os vários componentes que você precisa ter para um cluster Kubernetes completo e funcional.

Os componentes de um cluster Kubernetes por kubernetes.io
Na minha opinião, esta seção é muito importante, principalmente se você quiser ter um diferencial na sua carreira, e esse conhecimento me ajudará muito em muitas situações para resolver problemas.
Às vezes só temos interesse em saber como funciona o motor de um carro quando temos um problema na estrada e o carro
Componentes do Control Plane do Kubernetes
O Control Plane gerencia o estado do cluster. Ele toma decisões sobre o cluster, por exemplo, aumentar o número de réplicas de pods ou agendar algo.
- kuber-api - é o ponto central de comunicação do cluster Kubernetes, é o front end do control plane do Kubernetes.
- etcd - é basicamente o armazenamento usado pelo Kubernetes para todos os dados do cluster. Certifique-se de ter um plano de backup para seu etcd.
- kube-scheduler - É responsável por observar pods recém-criados, verificar quais nodes estão disponíveis e atribuir os pods criados para o node disponível.
- kube-controll-manager - executa processos de controller. É responsável pela orquestração do cluster.
O Control Plane não deve executar nenhum pod
Componentes dos Nodes
Os componentes do node estão em cada node do cluster, eles são responsáveis por manter os pods em execução e fornecer o ambiente de runtime do Kubernetes.
- Kubelet - é um agente do node, que gerencia o estado dos nodes, então ele recebe os comandos do control plane
- kube-proxy - Gerencia a rede e os recursos de rede dos nodes e redireciona para containers.
- Container runtime - este componente permite que o Kubernetes execute containers.
Vamos instalar um Cluster K8s
Antes de seguir este passo, por favor instale o Kind de acordo com seu ambiente
https://kind.sigs.k8s.io/docs/user/quick-start/
Para esta série, vamos preparar um ambiente para você seguir os exemplos.
Por enquanto, vamos preparar um ambiente local para focar apenas nos fundamentos, no final da série, vamos juntos criar um cluster Kubernetes como um ambiente de produção.
Existem muitas opções para criar um K8s localmente
- Minikube
- Kind
- k3d
Tenho usado Kind e tem me servido bem
Vamos usar o modo de clusters Multi-node
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker
Basicamente, estamos falando com o Kind: "Por favor, crie para mim um cluster com 4 máquinas. 1 Control Plane e 3 worker nodes"
Agora, execute o comando no seu terminal:
kind create cluster --config kind-config.yml --name programmingonmars
Você deve ter este resultado abaixo

Para usar seu cluster k8s, execute o comando abaixo
kubectl cluster-info --context kind-programmingonmars
Agora estamos conectados no nosso cluster k8s!

Vamos verificar os nodes usando o comando:
kubectl get nodes
Isso é muito legal, criamos 3 workers e 1 control plane como declaramos no kind-config.yml

Como o Kind Funciona?
Kind é uma ferramenta para executar clusters Kubernetes locais usando containers Docker como "nodes". kind foi projetado principalmente para testar o próprio Kubernetes, mas pode ser usado para desenvolvimento local ou CI.
Então, se executarmos o comando:
docker container ls
Podemos ver 4 containers em execução

Agora você está pronto para começar sua nova jornada no mundo Kubernetes, vamos executar uma Primeira Aplicação no Kubernetes
Tags: k8s, infraestrutura, kubernetes, devops