Menu fechado

Simule Incêndios de Kubernetes em Produtividade

Kubernetes

Introdução ao KubeLab

O KubeLab é uma ferramenta de simulação de falhas em Kubernetes, projetada para entender como o sistema se comporta em diferentes cenários de falha. Com o KubeLab, é possível criar um cluster Kubernetes real e simular falhas como perda de pods, sobrecarga de CPU e memória, e falha de bancos de dados, proporcionando uma compreensão mais profunda dos mecanismos de recuperação e resiliência do Kubernetes, essencial para ambientes de produção críticos.

Configurando o Ambiente

Configurar o ambiente de desenvolvimento para executar as simulações do KubeLab inclui a instalação de ferramentas como Multipass, kubectl e Git, fundamentais para a criação e gerenciamento do cluster Kubernetes. É necessário ter familiaridade básica com Docker e conforto com a linha de comando, embora não seja requerida experiência prévia com Kubernetes. O laboratório pode ser executado em Mac, Linux ou Windows com WSL2, com uma RAM mínima de 8GB, sendo recomendada 16GB.

Instalação de Ferramentas

Para configurar o ambiente, é necessário instalar:

  • Multipass, para criar VMs Ubuntu para o cluster;
  • kubectl, a CLI de Kubernetes para executar as simulações;
  • Git, para clonar o repositório do KubeLab.

Instalação de Multipass e kubectl

Para instalar o Multipass, execute:


curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install multipass

Para instalar o kubectl, execute:


curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

Clonar o Repositório do KubeLab

Execute o comando:


git clone https://github.com/Osomondiya/kubelab.git

Simulações do KubeLab

Agora que o ambiente está configurado, você está pronto para executar as simulações do KubeLab. Existem várias simulações que podem ser executadas, incluindo:

A simulação 1 consiste em matar um pod aleatório no cluster. Para isso, use:





kubectl get pods -n kubelab -w
# backend-abc123 1/1 Running 0 4s
kubectl delete pod backend-abc123 -n kubelab

A simulação 2 envolve drenar um nó trabalhador, que envolve cordá-lo primeiro. A simulação 3 trata do estresse de CPU e limitação, que pode ser mitigado configurando limites de CPU para cada container:


apiVersion: v1
kind: Pod
metadata:
  name: meu-pod
spec:
  containers:
  - name: meu-container
    image: meu-imagem
    resources:
      requests:
        cpu: 200m
      limits:
        cpu: 200m

A simulação 4 envolve estresse de memória e OOMKill, que pode ser iniciada com:


kubectl get pods -n kubelab -l app=backend -w

A simulação 5 simula a falha do banco de dados, que pode ser executada escalando o StatefulSet de PostgreSQL para 0 réplicas:


kubectl scale statefulset postgres --replicas=0 -n kubelab

A simulação 6 é a falha de pod em cascata, que é crucial para a disponibilidade de serviços em um cluster Kubernetes. Implemente estratégias de gerenciamento de pods e serviços para garantir a disponibilidade do serviço mesmo em caso de falha. A simulação 7 trata da falha de probe de prontidão, onde um pod de backend falhará sua probe de prontidão por 120 segundos sem ser reiniciado.

Lendo os Sinais em Grafana e no Terminal

O comando kubectl mostra o estado atual, enquanto o Grafana mostra o que aconteceu ao longo do tempo. Existem vários painéis importantes no Grafana para monitorar a saúde do cluster, incluindo:

  • Pod Restarts: Uma linha plana é boa.
  • CPU Usage: Um pod saudável tem CPU que flutua.
  • Memory Usage: Observe uma linha que sobe gradualmente e desaparece.
  • HTTP Request Rate: Durante Falha em Cascata, você vê um pico de 5xx por 5-15 segundos.

Use parâmetros como -w, -o wide e --v=5 com o comando kubectl para obter saídas mais detalhadas.



Redação YTI&W-News

Redação Developers | Yassutaro TI & Web

Notícias do universo do Desenvolvimento Web, dicas e tutoriais para Webmasters.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Publicado em:APIs e Integrações,Boas Práticas em Desenvolvimento,Inteligência Artificial
Fale Conosco
×

Inscreva-se em nossa Newsletter!


Receba nossos lançamentos e artigos em primera mão!