Skip to main content

Command Palette

Search for a command to run...

O que é Kubernetes?

Updated
4 min read
O que é Kubernetes?
N

Hi there 👋 I'm a DevOps Enginner working in São Luis - MA, Brazil.

I have a degree in Information Systems from UNDB - Unidade de Ensino Superior Dom Bosco, a postgraduate degree in Information Security and a passionate by Technology.

I had my first contact with a computer when I was 11 years old, in a community course in my neighborhood. At the age of 12, I was intentionally teaching at the same association, which brought me much pleasure and more knowledge.

My first CLT job was at the age of 17 and also teaching at several computer schools in the capital of Maranhão.

Linux is my Favorite OS, my favorite distribution is Pop!OS, but I work daily with MacOs and Windows OS. ;)

🏢 I'm currently working at Grupo Mateus ⚙️ I use daily: .sh, .js, .cpp, .go, .py, .jar, .tf, .yaml, .json 🌍 I'm mostly active within the DevOps Culture in My Organization 🌱 Reading all about Open Source, DevOps, Clean Architecture, Cloud Computing and more... ⚡️ Fun fact: I'm a huge fan of Harry Potter and Lord Of Kings and Geek Culture. ✨ My Website is nilsonvieira.com.br;

Quando se fala de DevOps, Platform Engineer, SRE, lembramos de imediato em formas de trabalho, pipelines e ferramentas envolvidas e utilizadas por estes profissionais.

Dentre essas inúmeras ferramentas, temos o Kubernetes.

Um pouco de história

O CNFC informa que o Kubernetes foi inicialmente criado por engenheiros do Google em 2014, ele se tornou o primeiro projeto hospedado da Cloud Native Computing Foundation em março de 2016. É o segundo maior projeto de código aberto do mundo depois do Linux e é a principal ferramenta de orquestração de contêineres para 71% das empresas da Fortune 100. Olhando para o futuro, a adoção do Kubernetes não mostra sinais de desaceleração – de acordo com o "The CTO's Guide to Containers and Kubernetes" do Gartner até 2027, mais de 90% das organizações globais executarão aplicativos em contêineres em produção.

Mas a história não começou em 2014, pois a Google trabalhava com outros orquestradores de containers internamente, estes que foram predecessores ao Kubernetes, eram chamados de BORG e OMEGA. Existe uma publicação da empresa que fala sobre o assunto, denominado: Borg, Omega and Kubernetes - Lessons learned from three container management systems over a decade (Borg, Omega e Kubernetes - Lições aprendidas a partir de três sistemas de gerenciamento de containers em uma década - Tradução Livre).

O Kubernetes

Segundo o CNCF o Kubernetes é uma plataforma escalável, extensível e tolerante a falhas para gerenciar aplicativos nativos em contêineres e na nuvem. É a plataforma de orquestração de contêineres mais utilizada que existe.

O Kubernetes que também é conhecido como k8s é uma plataforma de orquestração de containers opensource que automatiza grande parte dos processos manuais necessários para implantar, gerenciar e escalar aplicações em containers.

Em resumo, o K8s é uma Plataforma de Gerenciamento de Containers desenvolvido pela Google, atualmente mantido pela comunidade e hospedado pela CNCF (Cloud Native Computing Foundation).

Atualmente vários provedores de nuvem utilizam o Kubernetes como base, como por exemplo: Amazon (EKS), Azure (AKS), Google (GKS). Algumas empresas também desenvolveram seus orquestradores usando como base o Kubernetes, como é o caso do OpenShift da Redhat.

Vantagens do Kubernetes

Com o Kubernetes, você pode:

  • Orquestrar containers em vários hosts (Máquinas).

  • Fazer melhor uso do hardware para maximizar os recursos necessários na execução de apps reduzindo custos.

  • Controlar e automatizar atualizações e implantações de aplicações.

  • Escalar aplicações em containers e os recursos correspondentes com rapidez.

  • Gerenciar os serviços de maneira assertiva para que a execução das aplicações implantadas ocorra sempre como o esperado.

  • Permitir a auto recuperação e verificação de integridade das apps ao automatizar o posicionamento, a reinicialização, a replicação e o escalonamento.

Dependências do Kubernetes

O Kubernetes depende de outros projetos para oferecer a orquestração e isto inclui outros projetos opensource. Dentre os recursos necessários, podemos citar:

  • Registry: Torna-se necessário um serviço para armazenar os artefatos de imagem gerados. Exemplo: docker hub, harbor e outros registries privados.

  • Rede: Para gerenciamento de rede podem ser citados projetos como o OVS (OpenvSwitch), Calico e outros.

  • Telemetria e Observabilidade: Projetos como Kibana, Grafana, Prometheus e Elastic.

E vários outros...

Termos usados no Kubernetes

Control plane: conjunto de processos que controlam os nós do Kubernetes. Onde todas as atribuições de tarefas se originam.

Nodes: realizam as tarefas solicitadas que foram atribuídas pelo control plane. São os "servidores" distribuídos no Cluster.

Pod: um grupo de um ou mais containers implantados em um nó.

Replica Set: controla quantas cópias idênticas de um pod devem ser executadas no cluster.

Service: caminho até o pod.

Kubelet: este serviço é executado em nós, lê os manifestos do container e inicia e executa os containers definidos.

kubectl: a ferramenta de configuração da linha de comando do Kubernetes.

Claro que existem vários outros e poderia passar horas e horas discorrendo sobre Kubernetes, entretanto este não é o objetivo desse artigo e sim dar um entendimento inicial da ferramenta para gerar uma base.

Referências

Kubernetes. Orquestração de contêineres prontos para produção. Disponível em: <https://kubernetes.io/pt-br/\>. Acesso em: <02/10/2023>

Kubernetes: Project Journey Report. Disponível em:< https://www.cncf.io/reports/kubernetes-project-journey-report/\>. Acesso em: <02/10/2023>

Borg, Omega and Kubernetes: Lessons learned from three container management systems over a decade. Disponível em: <https://static.googleusercontent.com/media/research.google.com/pt-BR//pubs/archive/44843.pdf\>. Acesso em: <02/10/2023>

More from this blog

Nilson Vieira

19 posts

Hi there 👋 I have a degree in Information Systems from UNDB - Unidade de Ensino Superior Dom Bosco, a postgraduate degree in Information Security and a passionate by Technology. I'm a DevOps Engineer