image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image
Caio Oliveira
Caio Oliveira21/06/2023 10:36
Share

Kubernetes, uma visão geral

  • #Docker
  • #Kubernetes

Com o surgimento das aplicações em containers, muitas empresas passaram a olhar com bons olhos uso dessa tecnolgia em virtude de suas vantagens, não demorou muito para que algumas coorporações começassem a fazer uso de tal tecnologia em suas arquiteturas de microsserviços. No entanto, realizar o gerenciamento de aplicativos em contêinerizados eram tarefas complexas, exigindo um esforço significativo dos desenvolvedores e administradores de sistemas.

O Kubernetes (também conhecido com 8ks) surgiu como uma solução para tal problema, pois se trata de uma plataforma de código aberto para automatizar a implantação, escalonamento e gerenciamento de aplicativos em containers

Tal ferramenta, trabalha com o conceito básico de cluster, que no caso do Kubernets, nada mais é que um conjunto de nós (maquinas reais ou virtuais) que trabalham juntos para executar uma determinada tarefa. No caso do Kubernets, os clusters tem como objetivo a execução de containers, e são a base para implantar, gerenciar e dimensionar aplicativos em um ambiente distribuído.

Cada nó do Kubernetes é responsável porfornecer recursos computacionais (como CPU e memória) e realizar a execução de containers. Vale ressaltar que cada nó possui o ambiente de execução do Docker ou outro container runtime instalado, permitindo que ele execute containers conforme instruído pelo Kubernetes. Além disso, cada um deles é gerenciado pelo componente do Kubernetes chamado "kubelet" que garante que os containers sejam executados corretamente em cada nó. Ele recebe as instruções do "control plane" do Kubernetes (que consiste em vários componentes principais, como o "kube-api-server" e o "kube-controller-manager" sobre os quais falaremos posteriormeente) e garante que os containeres sejam implantados, escalados, monitorados e, se necessário, reiniciados em caso de falhas.

Cada nó do Kubernetes também possui um "kube-proxy", que é responsável por gerenciar a rede . Ele configura as regras de encaminhamento de rede e balanceamento de carga para permitir a comunicação entre os containers em diferentes nós.

Dentro de um cluster 8ks, temos dois tipos de nós:

  • Master Node: É o nó principal responsável pelo controle e gerenciamento do cluster. Ele executa os principais componentes do Kubernetes os quais irei falar sobre cada um deles:
  1. kube-api-server: Expõe a API do Kubernetes, permitindo que os usuários interajam com o cluster. 
  2. kube-scheduler: É responsável por decidir em qual nó os containers serão implantados. 
  3. kube-controller-manager: Gerencia vários controladores que supervisionam o estado do cluster e garantem que os objetivos declarados (por exemplo, o número desejado de réplicas de um aplicativo) sejam alcançados.
  • Worker Nodes : São os nós onde os containers são realmente executados. Cada nó de trabalho possui o ambiente de execução do Docker ou outro runtime de container instalado. Os nós de trabalho são gerenciados pelo kubelet, que recebe as instruções do nó mestre e garante que os containers sejam implantados e executados corretamente nos nós. Cada nó de trabalho também possui um kube-proxy, responsável pelo gerenciamento da rede no nó.

É importante dizer que dentro de um Nó, o container não é executado de forma direta. Em Kubernetes, existe o conceito fundamental de Pod que nada mais é que a unidade mais básica no ecossistema. Ele representa um grupo de um ou mais containers que são implantados juntos em um nó de trabalho do cluster Kubernetes.

Em resumo, um Pod é uma abstração lógica em torno de um ou mais containers que compartilham o mesmo contexto e recursos de execução. Os containers em um Pod são sempre implantados juntos e compartilham o mesmo espaço de endereço IP, portas de rede e volumes de armazenamento. Podemos interpretar um pod, como um ou mais containers "envelopados" por uma conjunto de configurações.

Espero ter ajudado através de desse overview, para aqueles que desejam praticar e ver tudo isso funcionando, recomendo o aplicativo minikube.

That's All Folks!

Share
Comments (0)