Instale o Kubernetes com o Kubespray
Instruções passo a passo
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.
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 pastainventory/mycluster/artifacts
. Esse arquivo é necessário para interagir com seu cluster Kubernetes usandokubectl
.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.