Skip to content

Este é um exemplo de teste de carga em Go para clusters Kubernetes. O teste cria deployments de forma contínua em intervalos regulares para simular carga no cluster.

License

Notifications You must be signed in to change notification settings

Tech-Preta/kubecarga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b98c4dc · Jan 22, 2025

History

51 Commits
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Feb 26, 2024
Jan 22, 2025
May 16, 2024
Jan 7, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
May 16, 2024

Repository files navigation

Teste de Carga em Clusters Kubernetes

Este é um exemplo de teste de carga em Go para clusters Kubernetes. O teste cria deployments de forma contínua em intervalos regulares para simular carga no cluster.

Pré-requisitos

  • Go instalado na máquina local
  • Acesso a um cluster Kubernetes (local ou remoto)
  • Configuração do Kubernetes (kubectl) ou arquivo kubeconfig para autenticação e autorização

O que o código faz

O código cria deployments no cluster Kubernetes em intervalos regulares. No exemplo fornecido, ele cria deployments usando a imagem nginx, mas pode ser adaptado para outras imagens e tipos de recursos do Kubernetes.

Pontos de atenção

  • Caso não seja setado no momento da execução o caminho do KUBECONFIG ele herdará das variáveis de ambiente.

  • O teste é para criação de deployments, caso deseje mudar o Namespace, Name, Imagem e etc realize a alteração entre as linhas 67-89.

Clone este repositório

git clone https://github.com/Tech-Preta/kubecarga.git
cd kubecarga

Inicialize o módulo Go

Execute o seguinte comando para inicializar um novo módulo Go:

go mod init

Instalação das dependências

Para instalar as dependências necessárias, execute os seguintes comandos:

go get k8s.io/client-go/kubernetes
go get k8s.io/client-go/rest
go get k8s.io/client-go/tools/clientcmd

Esses comandos irão baixar e instalar os pacotes e suas dependências, e também atualizarão os arquivos go.mod e go.sum.

Construindo o projeto

Agora que temos todas as dependências instaladas, podemos criar o executável para isso utilize o comando abaixo:

go build -o kube-carga .

Isso irá compilar o código e criar o executável no diretório atual.

Como executar

Finalmente podemos executar a nossa aplicação com o comando abaixo:

sudo chmod +x kube-carga
./kube-carga -kubeconfig /caminho/para/seu/kubeconfig


## Próximas Funcionalidades

Aqui estão algumas funcionalidades que podem ser adicionadas no futuro:

### Limpeza dos Deployments

Adicionar uma funcionalidade para limpar os deployments criados pelo `kube-carga` no cluster após a execução do teste de carga.

#### Tarefas:

- [ ] Implementar a lógica para deletar os deployments após a conclusão do teste.
- [ ] Adicionar suporte para exclusão de outros recursos criados durante o teste, como Services e Pods.

### Verificação do Tempo de Implantação

Adicionar uma funcionalidade para verificar quanto tempo cada deployment demora para ser implantado no cluster.

#### Tarefas:

- [ ] Registrar o tempo de início da criação de cada deployment.
- [ ] Registrar o tempo de conclusão da criação de cada deployment.
- [ ] Calcular e registrar a diferença de tempo entre o início e a conclusão da implantação de cada deployment.

## Contato
- [email protected]