Instale o Kubernetes com o Kubespray

Instruções passo a passo

Conteúdo da página

Como instalar o Kubernetes usando o Kubespray](https://www.glukhov.org/pt/post/2024/10/install-k8s-with-kubespray/ “instalar o Kubernetes usando o Kubespray”), incluindo a configuração do ambiente, a configuração do inventário e a execução dos playbooks do Ansible.

trabalhadores estão pulverizando o cubo no prédio da fábrica antiga

Pré-requisitos

Requisitos de Hardware e Software

  • Certifique-se de ter várias máquinas (pelo menos 3 nós: 1 mestre e 2 trabalhadores) com as seguintes especificações:
    • Ubuntu 16.04/18.04 ou CentOS 7 instalado.
    • Pelo menos 2 GB de RAM por máquina (mais RAM é recomendado para clusters maiores).
    • Conectividade de rede e acesso SSH da máquina de controle do Kubespray para cada nó.
    • Para alta disponibilidade, considere nós com 16 GB de RAM, 100 GB de disco e 6 núcleos de CPU.

Configuração da Máquina de Controle

  • Instale o Git, se ainda não estiver presente:

    sudo apt install git-all
    
  • Instale o Python (2.7 ou 3.5+) e o pip:

    sudo apt update
    sudo apt install python3 python3-pip
    
  • Instale o Ansible e outras dependências. O Kubespray fornece um script para lidar com isso:

    git clone https://github.com/kubernetes-sigs/kubespray.git
    cd kubespray
    git checkout release-2.20  # Opcional: Verifique uma versão estável
    python3 -m venv venv  # Crie um ambiente virtual de Python
    source venv/bin/activate  # Ative o ambiente virtual
    pip install -r requirements.txt  # Instale o Ansible e outras dependências
    

Configure o Inventário

  • Copie o exemplo de inventário:

    cp -r inventory/sample inventory/mycluster
    
  • Edite o arquivo inventory/mycluster/hosts.ini para adicionar seus nós:

    [all]
    node1 ansible_host=10.10.1.3 ansible_user=ubuntu
    node2 ansible_host=10.10.1.4 ansible_user=ubuntu
    node3 ansible_host=10.10.1.5 ansible_user=ubuntu
    
    [kube-master]
    node1
    
    [kube-node]
    node2
    node3
    
  • Se você tiver um usuário diferente, substitua ubuntu pelo seu usuário.

  • Você também pode usar o script inventory_builder para gerar o arquivo de inventário:

    declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
    HOST_PREFIX=dcm-cp- KUBE_CONTROL_HOSTS=3 CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
    

Personalize a Configuração

  • Personalize as configurações do cluster Kubernetes no arquivo inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml. Por exemplo:

    kube_network_plugin: flannel
    kubeconfig_localhost: true
    
  • Para alta disponibilidade, configure um VIP e um balanceador de carga:

    # Em inventory/mycluster/group_vars/all/all.yml
    kube_vip_arp_enabled: true
    kube_vip_enabled: true
    kube_vip_controlplane_enabled: true
    kube_vip_address: 10.7.12.250  # Atualize com o VIP correto
    kube_vip_interface: eno1  # Atualize com a interface correta
    

Implante o Cluster

  • Execute o playbook do Ansible para implantar o Kubernetes:
    ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
    

Pós-implantação

  • Após a implantação, você encontrará um arquivo kubeconfig na pasta inventory/mycluster/artifacts. Esse arquivo é necessário para interagir com seu cluster Kubernetes usando kubectl.
    export KUBECONFIG=inventory/mycluster/artifacts/admin.conf
    kubectl get nodes
    

Solução de Problemas e Acesso

  • Para solucionar problemas ou acessar seu cluster, certifique-se de ter o binário kubectl instalado na sua máquina de controle ou em qualquer máquina onde planeja gerenciar o cluster.
  • Se você encontrar problemas como nós de trabalho que não estão prontos ou outros problemas de agendamento de pods, verifique os logs e ajuste as configurações conforme necessário.