Kubernetes: Uma Visão Abrangente – Parte 1

Kubernetes, comumente abreviado como K8s, é um sistema de orquestração de contêineres open-source, desenvolvido para automatizar a implantação, escalabilidade e gerenciamento de aplicações.

Avatar


28 de Dezembro de 2023

Olá, querido (a) aluno(a)!

Introdução ao Kubernetes

Kubernetes, comumente abreviado como K8s, é um sistema de orquestração de contêineres open-source, desenvolvido para automatizar a implantação, escalabilidade e gerenciamento de aplicações. Originalmente projetado pelo Google, agora é mantido pela Cloud Native Computing Foundation. 

Como plataforma, o Kubernetes trabalha com diversos runtimes de contêineres, como containerd e CRI-O, e é adequado para gerenciar cargas de trabalho nativas da nuvem em grande escala​​​​.

Por Que Kubernetes? 

Antes de Kubernetes, as organizações executavam aplicações em servidores físicos, sem a capacidade de definir limites de recursos para aplicações, levando a problemas de alocação de recursos. 

A virtualização foi introduzida como solução, permitindo a execução de várias Máquinas Virtuais em um único servidor físico. 

Contêineres, semelhantes a VMs, mas mais leves, vieram depois, oferecendo isolamento relaxado e portabilidade entre nuvens e distribuições de sistemas operacionais​​​​​​.

Vantagens do Kubernetes em Ambientes de Contêineres

Kubernetes oferece criação e implantação ágil de aplicações, separação de preocupações entre desenvolvimento e operações, observabilidade, consistência ambiental, portabilidade entre nuvens e sistemas operacionais, gerenciamento centrado na aplicação, isolamento de recursos e alta eficiência de utilização de recursos.

Gestão de Contêineres com Kubernetes

Em ambientes de produção, gerenciar contêineres que executam aplicações e garantir a ausência de tempo de inatividade é crítico. 

Kubernetes automatiza a escalabilidade e failover de aplicações, padrões de implantação, e mais. Ele suporta: 

  • descoberta de serviços, 
  • balanceamento de carga, 
  • orquestração de armazenamento, 
  • implantações e reversões automatizadas, 
  • empacotamento binário automático, 
  • autorreparo, 
  • gerenciamento de segredos e configurações, 
  • execução de lotes e escalonamento horizontal​​​​.

Kubernetes – Além de um Simples PaaS

Diferente de sistemas PaaS tradicionais, Kubernetes opera no nível do contêiner em vez de no nível de hardware. 

Ele fornece recursos comuns a ofertas de PaaS, como implantação, escalabilidade e balanceamento de carga, mas não é monolítico. 

O Kubernetes fornece blocos de construção para plataformas de desenvolvedores, mas preserva a escolha e a flexibilidade do usuário onde é importante​​.

Componentes do Cluster Kubernetes – Plano de Controle

O plano de controle do Kubernetes gerencia o estado do cluster. Consiste em vários componentes, como o servidor API, que serve a API Kubernetes e processa solicitações REST, o etcd, um armazenamento de dados chave-valor distribuído que armazena dados de configuração do cluster, e o agendador, que seleciona em qual nó um pod não programado deve ser executado​​.

Workers (Trabalhadores) e Recursos do Nó 

Cada nó no cluster Kubernetes, também conhecido como worker ou minion, é uma máquina onde os contêineres são implantados. Os nós devem executar um runtime de contêiner e componentes adicionais para a comunicação com a configuração de rede principal dos contêineres. 

O kubelet é responsável pelo estado de execução de cada nó e o kube-proxy atua como um proxy de rede e balanceador de carga​​​​​​​​.

Gerenciamento de Recursos com Namespaces e Pods

Os namespaces no Kubernetes são usados para segregar recursos em coleções distintas e não-intersecionantes, úteis em ambientes com muitos usuários e equipes. 

A unidade básica de agendamento no Kubernetes é um pod, que consiste em um ou mais contêineres garantidos de serem co-localizados no mesmo nó​​​​.

Volumes, Serviços e Gerenciamento de Configuração

Volumes no Kubernetes fornecem armazenamento persistente que existe pela vida útil do pod. 

Um serviço Kubernetes é um conjunto de pods que trabalham juntos, definidos por um seletor de rótulos. Kubernetes também oferece mecanismos para gerenciar informações de configuração e dados sensíveis através de ConfigMaps e Secrets​​.

Flexibilidade e Extensibilidade do Kubernetes

Kubernetes permite aos clientes anexar rótulos a qualquer objeto da API no sistema, como pods e nós, facilitando a seleção de objetos correspondentes. Isso suporta padrões de implantação variados e oferece um acoplamento frouxo dentro da infraestrutura. 

Kubernetes é projetado para ser extensível, permitindo adicionar funcionalidades ao cluster sem alterar o código fonte upstream​​.

Vamos ver como esse conteúdo já foi cobrada em concurso?

1) Ano: 2023 Banca: IF-ES Órgão: IF-ES Prova: IF-ES – 2023 – IF-ES – Analista de Tecnologia da Informação

No contexto de Kubernetes, identifique a opção que contém a afirmação INCORRETA:

A) Kubernetes é um sistema opensource que automatiza a implantação e o dimensionamento de aplicação em contêineres. 

B) UID é o identificador único universal gerado para identificar objetos de forma única.

C) ETCD é um serviço de armazenamento “chave-valor” consistente e de alta disponibilidade, usado para gravar as informações do cluster Kubernetes. 

D) O componente kube-scheduler seleciona um nó ideal para executar cada Pod recém-criado.

E) O Kubernetes pode ser utilizado para implantar código-fonte, construir a aplicação e fornecer serviços em nível de aplicação.

Gabarito: E.

Comentário: A afirmação “E) O Kubernetes pode ser utilizado para implantar código-fonte, construir a aplicação e fornecer serviços em nível de aplicação.” é incorreta porque o Kubernetes não é diretamente responsável por implantar o código-fonte ou construir a aplicação. Essas são responsabilidades de sistemas de integração contínua e entrega contínua (CI/CD), como Jenkins, GitLab CI, ou ferramentas de construção de imagens de contêiner como Docker.

O Kubernetes é uma plataforma de orquestração de contêineres que automatiza a implantação, o dimensionamento e a gestão de aplicações em contêineres. A principal função do Kubernetes é gerenciar a execução de contêineres em um cluster de servidores, lidando com a distribuição e agendamento dos contêineres, a saúde do sistema, o balanceamento de carga entre outros.

As outras opções (A, B, C, D) descrevem corretamente os componentes e funcionalidades dentro do ecossistema do Kubernetes:

A) Kubernetes é um sistema de código aberto para automação de implantação, dimensionamento e operações de aplicativos em contêineres.

B) UID é um identificador único universal que o Kubernetes gera para identificar objetos de forma única.

C) ETCD é um serviço de armazenamento de chave-valor confiável usado pelo Kubernetes para armazenar todas as informações do cluster.

D) kube-scheduler é o componente responsável por selecionar o nó mais adequado para executar um Pod recém-criado, com base em vários critérios, como recursos disponíveis, políticas de serviço, especificações de afinidade e antiafinidade, entre outros.

Então é isso! 

Bons estudos e até o nosso próximo artigo.

Prof. Jósis Alves

Coordenador TI – Gran Concursos

Analista de TI no Supremo Tribunal Federal


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:

CONCURSOS ABERTOS

CONCURSOS 2023

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos! Clique no link abaixo e inscreva-se gratuitamente:

TELEGRAM

Avatar


28 de Dezembro de 2023