Componentes Básicos

Conhecendo os componentes básicos de um cluster Kubernetes.

Um cluster Kubernetes consiste em um conjunto de máquinas de trabalho (físicas ou virtuais), chamadas Node ou que executam aplicativos em contêiner.

Em essência existem 2 (dois) tipos de nós em um cluster Kubernetes:

  • Os nós workers que hospedam os Pods que são os componentes da carga de trabalho do aplicativo.
  • Os nós masters ou control plane que gerenciam os nós works e os pods no cluster.

Em ambiente de produção, o control plane geralmente é executado em vários computadores e um cluster geralmente executa vários nós workers fornecendo tolerância a falhas e alta disponibilidade.

Em ambientes de estudo podemos ter apenas uma máquina exercendo as duas funções.

Visão geral da arquitetura de um cluster k8s

Fonte.: Kubernetes — Architecture Overview .

Link’s úteis:

Componentes dos Master Nodes ou Control Plane

ETCD

É um armazenamento do tipo chave-valor distribuído e fortemente consistente que fornece uma maneira confiável de armazenar dados que precisam ser acessados ​​por um sistema distribuído ou cluster de máquinas. Ele lida com as eleições do líder durante as partições da rede e pode tolerar falhas de máquina, mesmo no nó líder.

Link’s úteis:

API Server

O servidor de API do Kubernetes valida e configura dados para os objetos de API que incluem pods, services, replicaSets e outros.

O API Server atende às operações REST/kubectl e fornece o frontend para o estado compartilhado do cluster por meio do qual todos os outros componentes interagem.

Link’s úteis:

Controller Manager

No Kubernetes, controladores são ciclos de controle que observam o estado do cluster, e então fazem ou requisitam mudanças onde e quando necessário.

Cada controlador tenta mover o estado atual do cluster mais perto do estado desejado.

Link’s úteis:

Scheduler

Observa os pods recém-criados sem nenhum nó atribuído e seleciona um nó para executá-los.

Os fatores levados em consideração para as decisões de agendamento incluem:

  • Requisitos de recursos individuais e coletivos;
  • Hardware/software/política de restrições;
  • Especificações de afinidade e antiafinidade;
  • Localidade dos dados;
  • Interferência entre cargas de trabalho; e
  • Prazos.

Link’s úteis:

Componentes dos Worker Nodes

Kubelet

É o principal agente executado em cada worker node. O kubelet usa um conjunto de PodSpecs fornecidos por meio de vários mecanismos (principalmente por meio do apiserver) e garante que os contêineres descritos nesses PodSpecs estejam em execução e íntegros.

O kubelet não gerencia contêineres que não foram criados pelo Kubernetes.

Link’s úteis:

Kube Proxy

É um proxy de rede executado em cada nó no cluster, implementando parte do conceito de serviço do Kubernetes.

O kube-proxy mantém regras de rede nos nós, estas regras permitem a comunicação de rede com os pods a partir de sessões de rede dentro ou fora do cluster.

Link’s úteis:

Container runtime

É o software responsável pela execução dos contêineres.

O Kubernetes oferece suporte a ambientes de container runtime como o containerd , o CRI-O e qualquer outra implementação do Kubernetes CRI (Container Runtime Interface) .