Criar uma Arquitetura de Cluster Kubernetes

KubernetesBeginner
Pratique Agora

Introdução

O Kubernetes é uma plataforma de orquestração de containers que automatiza a implantação, o escalonamento e o gerenciamento de aplicações conteinerizadas. Este desafio explora a arquitetura do Kubernetes, abrangendo os componentes que formam um cluster e como eles interagem entre si.

Componentes do Plano de Controle do Kubernetes

O plano de controle (control plane) do Kubernetes gerencia o estado global do cluster, bem como a implantação e o escalonamento das aplicações. Os principais componentes do plano de controle incluem:

  • kube-apiserver: A interface de entrada para o plano de controle, processando todas as requisições de gerenciamento do cluster.
  • etcd: Um banco de dados chave-valor distribuído que armazena todos os dados de configuração do cluster.
  • kube-scheduler: Responsável por selecionar em quais nós os pods devem ser executados.
  • kube-controller-manager: Executa os processos de controle que monitoram e mantêm o estado dos diversos objetos do Kubernetes.

Tarefas

Sua tarefa é recuperar e exibir o status dos componentes do plano de controle, incluindo o kube-apiserver, etcd, kube-scheduler e kube-controller-manager.

Requisitos

  • Utilize um comando kubectl para obter o status dos componentes do plano de controle.
  • Execute o comando dentro do diretório /home/labex/project.
  • A saída deve apresentar o estado de saúde de cada componente do plano de controle.

Exemplo

Abaixo, um exemplo do resultado esperado ao consultar o status dos componentes:

NAME                 STATUS    MESSAGE                         ERROR
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok

Componentes de Nó do Kubernetes

Os componentes de nó (node components) são executados em cada nó do cluster, mantendo os containers em execução e fornecendo o ambiente de runtime para as aplicações. Eles incluem:

  • kubelet: O agente que roda em cada nó, garantindo que os containers estejam funcionando conforme o esperado.
  • kube-proxy: O proxy de rede que gerencia as regras de rede nos nós, permitindo a comunicação com os containers.

Tarefas

Exiba informações sobre os nós ativos no cluster Kubernetes, incluindo o nome do nó, status e outros detalhes pertinentes.

Requisitos

  • Utilize um comando kubectl para listar os nós do cluster.
  • Execute o comando no diretório /home/labex/project.
  • A saída deve detalhar cada nó presente no ambiente.

Exemplo

Exemplo de saída esperada ao listar os nós:

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m52s   v1.26.1

Componentes de Pod do Kubernetes

Um Pod é a menor unidade de implantação no Kubernetes, representando uma única instância de um processo em execução. Cada pod pode conter um ou mais containers que compartilham o mesmo namespace de rede e volumes de armazenamento.

Tarefas

  1. Crie um arquivo chamado simple-pod.yaml com a configuração de um pod para um container Nginx.
  2. Implante o pod utilizando o comando kubectl apropriado.
  3. Exiba as informações sobre os pods em execução no cluster.

Requisitos

  • Crie o arquivo simple-pod.yaml no diretório /home/labex/project configurando um pod chamado simple-pod com a imagem nginx.
  • Use o kubectl para criar o pod a partir do arquivo YAML.
  • Use outro comando kubectl para listar os pods ativos.

Exemplo

Exemplo de saída esperada durante a criação e listagem:

pod/simple-pod created
NAME         READY   STATUS    RESTARTS   AGE
simple-pod   1/1     Running   0          29s

Componentes de Serviço do Kubernetes

Um Service (serviço) é uma abstração que define um conjunto lógico de pods e uma política para acessá-los. Os componentes de um serviço incluem:

  • IP do Serviço: Um endereço IP virtual atribuído ao serviço.
  • Porta do Serviço: O número da porta vinculada ao serviço.
  • Endpoint: Uma lista de endereços IP e portas que apontam para os pods reais por trás do serviço.

Tarefas

  1. Crie um arquivo chamado nginx-service.yaml com a configuração de um serviço para o pod Nginx.
  2. Implante o serviço utilizando o comando kubectl adequado.
  3. Exiba as informações sobre os serviços ativos no cluster.

Requisitos

  • Crie o arquivo nginx-service.yaml no diretório /home/labex/project para um serviço chamado nginx-service que exponha a porta 80.
  • Use o kubectl para criar o serviço a partir do arquivo YAML.
  • Use outro comando kubectl para listar os serviços do cluster.

Exemplo

Exemplo de saída esperada ao listar os serviços:

NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP   5m42s
nginx-service   ClusterIP   10.96.184.71   <none>        80/TCP    4s

Resumo

Neste desafio, exploramos a arquitetura fundamental do Kubernetes, passando pelo plano de controle, nós, pods e serviços. Aprendemos a verificar a integridade dos componentes do sistema, a implantar um pod básico e a configurar um serviço para permitir o acesso. Compreender como esses elementos interagem é o alicerce necessário para qualquer profissional que deseje implantar e gerenciar aplicações em escala com Kubernetes.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar