Instale Kubernetes con kubespray
Instrucciones paso a paso
Cómo: instalar Kubernetes usando Kubespray, incluyendo la configuración del entorno, la configuración del inventario y la ejecución de los playbooks de Ansible.
Requisitos previos
Requisitos de hardware y software
- Asegúrate de tener varias máquinas (al menos 3 nodos: 1 maestro y 2 trabajadores) con las siguientes especificaciones:
- Ubuntu 16.04/18.04 o CentOS 7 instalado.
- Al menos 2 GB de RAM por máquina (se recomienda más RAM para clústeres más grandes).
- Conectividad de red y acceso SSH desde la máquina de control de Kubespray a cada nodo.
- Para alta disponibilidad, considera nodos con 16 GB de RAM, 100 GB de disco y 6 núcleos de CPU.
Configuración de la máquina de control
-
Instala Git si aún no está presente:
sudo apt install git-all
-
Instala Python (2.7 o 3.5+) y pip:
sudo apt update sudo apt install python3 python3-pip
-
Instala Ansible y otras dependencias. Kubespray proporciona un script para manejar esto:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Opcional: revisa una versión estable python3 -m venv venv # Crea un entorno virtual de Python source venv/bin/activate # Activa el entorno virtual pip install -r requirements.txt # Instala Ansible y otras dependencias
Configurar el inventario
-
Copia el ejemplo de inventario:
cp -r inventory/sample inventory/mycluster
-
Edita el archivo
inventory/mycluster/hosts.ini
para agregar tus nodos:[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
-
Si tienes un usuario diferente, reemplaza
ubuntu
con tu usuario. -
También puedes usar el script
inventory_builder
para generar el archivo de inventario: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[@]}
Personalizar la configuración
-
Personaliza la configuración del clúster de Kubernetes en el archivo
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
. Por ejemplo:kube_network_plugin: flannel kubeconfig_localhost: true
-
Para alta disponibilidad, configura un VIP y un balanceador de carga:
# En 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 # Actualiza con el VIP correcto kube_vip_interface: eno1 # Actualiza con la interfaz correcta
Implementar el clúster
- Ejecuta el playbook de Ansible para implementar Kubernetes:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
Después de la implementación
- Una vez completada la implementación, encontrarás un archivo
kubeconfig
en el directorioinventory/mycluster/artifacts
. Este archivo es necesario para interactuar con tu clúster de Kubernetes usandokubectl
.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Solución de problemas y acceso
- Para solucionar problemas o acceder a tu clúster, asegúrate de tener el binario
kubectl
instalado en tu máquina de control o en cualquier máquina desde la cual planeas gestionar el clúster. - Si encuentras problemas como nodos trabajadores que no están listos u otros problemas de programación de pods, revisa los registros y ajusta las configuraciones según sea necesario.