Script de Configuração de Cluster Kubernetes

Este script automatiza a configuração de um cluster Kubernetes usando Multipass para máquinas virtuais e HAProxy para balanceamento de carga. Ele permite criar um cluster Kubernetes altamente disponível com recursos personalizáveis para nós master e worker.


Pré-requisitos


Referências


Uso

  1. Clonar o Repositório:

    git clone https://github.com/eliasmeireles/k8s.git
    cd k8s/learning/cluster-generate
    
  2. Executar o Script:

    ./setup
    

Opções

OpçãoDescriçãoValor Padrão
--base-nameNome base para o cluster (obrigatório)-
--cluster-versionVersão do cluster Kubernetes (ex: v1.27)-
--num-mastersNúmero de nós master (obrigatório)-
--num-workersNúmero de nós worker (obrigatório)-
--master-memMemória para nós master2G
--master-cpusCPUs para nós master2
--master-diskTamanho do disco para nós master22G
--worker-memMemória para nós worker4G
--worker-cpusCPUs para nós worker2
--worker-diskTamanho do disco para nós worker32G
--haproxy-diskTamanho do disco para nó HAProxy24G
--haproxy-cpuCPUs para nó HAProxy2
--haproxy-memoryMemória para nó HAProxy4G
--helpExibir mensagem de ajuda-

Exemplo

./scripts/setup --base-name dev-k8s --cluster-version v1 --num-masters 3 --num-workers 4 --master-mem 3G --worker-mem 6G
  • Este comando criará um cluster Kubernetes chamado dev-k8s, com versão v1, 3 nós master e 4 nós worker. Os nós master terão 3GB de memória e os nós worker terão 6GB de memória.

Configuração de Rede

O script aplica automaticamente um plugin de rede. Para arquiteturas não-ARM, Weave é usado:

kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

Para arquiteturas ARM, Calico é aplicado:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

Registro de Logs

  • Os logs de cada execução são armazenados no diretório ./.temp com nomes de arquivo baseados no timestamp da execução.

Notas

  • O script assume um ambiente semelhante ao Unix.
  • Certifique-se de ter recursos suficientes (CPU, memória, espaço em disco) em sua máquina host para executar as máquinas virtuais.
  • Cada nó criado terá a configuração necessária e a configuração do Kubernetes executada via script transferido (kube-config.sh).

Exemplo de Saída

Após completar os passos descritos na configuração do nó Master, você verá a saída abaixo:

Exemplo de execução de configuração de cluster

Filtragem de instâncias criadas pelo Multipass

Nós k8s


Instalando kube-prometheus

Para monitorar seu cluster, você pode instalar o kube-prometheus:

Certifique-se de ter verificado o contexto esperado do cluster

make apply-kube-prometheus

Quando todos os pods no namespace monitoring estiverem em execução, acesse o dashboard do Prometheus:

Acesse o dashboard em http://monitor.v1.k8s.local e use as credenciais padrão (admin/admin).


Limpeza

Para deletar todas as instâncias criadas pelo script, use:

./scripts/delete-instances.sh <padrão>

Substitua <padrão> por uma palavra-chave que corresponda aos nomes das instâncias a deletar.


Autor

Criado por Elias Meireles.