Cómo configurar Kubernetes
Veamos cómo hacer la configuración de Kubernetes en un clúster de servidores. El ejemplo se aplica en un clúster de máquinas que ejecutan CentOS7, pero puede replicarse en cualquier máquina basada en Linux.
Veamos cómo hacer la configuración de Kubernetes en un clúster de servidores. El ejemplo se aplica en un clúster de máquinas que ejecutan CentOS7, pero puede replicarse en cualquier máquina basada en Linux
Requisitos previos
Necesitamos:
- varios servidores con CentOS7 (1 nodo maestro y más de un nodo trabajador)
- Una cuenta de usuario en cada máquina con privilegios de administración
- Docker (enlace al artículo Qué es Docker) instalado en cada máquina
Configuración del repositorio de Kubernetes
En primer lugar, siempre hay que tener en cuenta que los paquetes de Kubernetes no están disponibles a través de los repositorios oficiales de CentOS 7. Por lo tanto, este paso debe realizarse en el nodo maestro y en cada nodo trabajador.
Por lo tanto, es necesario ejecutar el siguiente comando para recuperar el repositorio desde el que posteriormente recuperar el instalador de Kubernetes:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
Instalación de kubelet, kubeadm y kubectl
Estos 3 paquetes básicos son necesarios para poder utilizar Kubernetes. Instala los siguientes paquetes en cada nodo como se muestra en el ejemplo:
sudo yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
Antes de desplegar un clúster, asegúrate de establecer los nombres de host configurando el firewall y los ajustes del kernel.
Establecer el nombre de host de un nodo
Para dar un nombre de host único a cada uno de sus nodos, utiliza este comando:
sudo hostnamectl set-hostname master-node
o bien
sudo hostnamectl set-hostname worker-node1
En este ejemplo, el nodo maestro se llama ahora nodo-maestro, mientras que un nodo trabajador se llama nodo-trabajador1.
Ahora crea un registro DNS para resolver el nombre de host para todos los nodos:
192.168.1.10 master.example.com master-node
192.168.1.20 node1. example.com node1 worker-node
Configurar el cortafuegos
Los nodos, contenedores y pods deben poder comunicarse a través del clúster para realizar sus funciones. En CentOS por defecto, Firewalld está instalado. Añade los siguientes puertos introduciendo los comandos listados.
Por lo tanto, en el Nodo Maestro ejecuta:
sudo firewall-cmd –permanent –add-port=6443/tcp
sudo firewall-cmd –permanent –add-port=2379-2380/tcp
sudo firewall-cmd –permanent –add-port=10250/tcp
sudo firewall-cmd –permanent –add-port=10251/tcp
sudo firewall-cmd –permanent –add-port=10252/tcp
sudo firewall-cmd –permanent –add-port=10255/tcp
sudo firewall-cmd –reload
En este punto, ejecuta estos comandos en cada nodo trabajador:
sudo firewall-cmd –permanent –add-port=10251/tcp
sudo firewall-cmd –permanent –add-port=10255/tcp
firewall-cmd –reload
Actualizar la configuración de Iptables
Establece el valor de net.bridge.bridge-nf-call-iptables a ‘1’ en el archivo de configuración sysctl. Esto asegura que los paquetes sean correctamente procesados por las tablas IP cuando se filtran y reenvían los puertos.
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl –system
Desactivar SELinux
Los contenedores deben acceder al sistema de archivos del host. SELinux debe estar en modo permisivo, lo que desactiva sus funciones de seguridad.
Utiliza los siguientes comandos para desactivar SELinux
sudo setenforce 0
sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config
Desactivar SWAP
Por último, debemos desactivar SWAP para que kubelet funcione correctamente:
sudo sed -i ‘/swap/d’ /etc/fstab
sudo swapoff -a
Crear un cluster con kubeadm
Inicia el clúster con el siguiente comando:
sudo kubeadm init –pod-network-cidr=10.244.0.0/16
El proceso puede tardar varios minutos en completarse dependiendo de la velocidad de la red. Al final de este comando, se muestra un mensaje de unión de kubeadm. Anote el registro y utilícelo para unir los nodos trabajadores al clúster en una etapa posterior.
Gestionar el clúster como un usuario estándar
Para utilizar el clúster, debes poder conectarte como usuario estándar. Ejecuta el siguiente conjunto de comandos:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Configurar la red de Pods
La red de pods permite que los nodos del clúster se comuniquen entre sí. Hay varias opciones de red Kubernetes disponibles. Utiliza el siguiente comando para instalar el complemento de red Flannel Pod:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Si decides utilizar Flannel, cambia las reglas de su cortafuegos para permitir el tráfico del puerto 8285 por defecto de Flannel.
Comprobar el estado del kluster
Comprueba el estado de los nodos ejecutando el siguiente comando en el servidor maestro:
sudo kubectl get nodes
Una vez que se ha instalado una red de pods, puedes confirmar que funciona comprobando que el pod CoreDNS se está ejecutando escribiendo:
sudo kubectl get pods –all-namespaces
Añadir un nodo trabajador al clúster
Puedes utilizar el comando kubeadm join en cada nodo trabajador para conectarlo al clúster.
kubeadm join –discovery-token cfgrty.1234567890jyrfgd –discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443
Sustituye los códigos por los de su servidor principal. Repite esta acción para cada nodo trabajador de tu clúster.
En conclusión
Has instalado correctamente Kubernetes en CentOS y ahora puedes gestionar clústeres en varios servidores.
Este tutorial de Kubernetes proporciona un buen punto de partida para explorar las muchas opciones que ofrece esta plataforma. Utiliza Kubernetes para autoescalar tus contenedores y así pasar menos tiempo microgestionando cada uno de ellos.
Comments