Por fin tenemos nuestro cluster de 1 solo nodo (formado únicamente por nuestro controlplane). Llega el turno de desplegarle nodos para conformar nuestro cluster kubernetes de 3 nodos (master/controlplane, node1 y node2)
Añadir Nodos a nuestro Cluster Kubernetes
Llegados a este punto, tenemos un cluster kubernetes desplegado con un solo nodo (master) al que queremos añadir 2 nodos mas que tendrán precisamente el rol de nodo1 y nodo2 sobre el que desplegaremos ya nuestras aplicaciones.
La idea sigue siendo acabar teniendo esta topología.
Prerequisitos
Recuerda que debes tener cumplidos los prerrequisitos comentados en el primer post de esta serie, que se pueden resumir en:
- Swap deshabilitado
- Google apt repository añadido
- Instaladas: docker.io, kubelet, kubeadm, kubectl
- Kubelet y docker-daemon configurados en modo autoarranque
NOTA: Revisa el primer post de esta serie para más detalles
Añadir un Nuevo Nodo
Añadir un nuevo nodo es tan fácil como recuperar el comando kubeadm join que nos escupió la salida de kubeadm init (ver post anterior).
Y precisamente eso es lo que tenemos que hacer:
sudo kubeadm join 192.168.100.71:6443 –token TOKEN_VALUE –discovery-token-ca-cert-hash sha256:CA_HASH_VALUE
Si no hemos cometido ningún error en ninguna de las etapas previas, la salida esperada debería ser la siguiente:
NOTA: Repite el proceso en los 2 nodos (node1 y node2)
Chequear el Estado de nuestro Cluster
En este punto, ya deberíamos tener el cluster levantado y funcionando compuesto por el nodo master y los dos nodos secundarios. Para comprobarlo ejecuta el siguiente comando desde el nodo master:
kubectl get nodes -o wide
Y finalmente podemos ver cómo tenemos varios despliegues con 2 pods, como por ejemplo calico, kube-proxy o coredns. (uno por cada nodo y el del controlplane si aplicase)
Cómo Obtener Comando Kubeadm Join
Si estas leyendo esto es porque te despistaste y olvidaste salvar la salida de tu ejecución kubeadm init. No te preocupes porque es posible obtener el comando kubeadm join una vez tenemos nuestro cluster desplegado.
Es un poco mas tedioso que copiar-pegar el comando previamente generado, eso si
kubeadm token list
NOTA: Tienes que salvar el valor del token que yo he ofuscado por seguridad
Cómo Obtener un Nuevo Token Si Ha Expirado Ya
Lo normal es que el token de join sirva durante unos pocos días por seguridad y que debas generarte otro. Si este es tu caso, lo puedes hacer así:
kubeadm token create
Obtener el certification hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^.* //’
Con los comandos anteriores, ya podrás realizar el join, puesto que has conseguido nuevos TOKEN_VALUE y CA_HASH_VALUE:
sudo kubeadm join 192.168.100.71:6443 –token TOKEN_VALUE –discovery-token-ca-cert-hash sha256:CA_HASH_VALUE
Conclusión
En este post hemos finalmente terminado nuestro cluster kubernetes con kubeadm. Nos queda únicamente añadirle un sistema de persistencia de datos para nuestros futuros despliegues stateful, pero eso lo trataremos en el siguiente post.
Curso Administración de Kubernetes: De 0 a 100
¿Quieres profundizar en tus conocimientos en Kubernetes? Después de esta formación, comprenderás los diversos componentes que lo conforman y sus interdependencias, gestionar cargas de trabajo en Kubernetes, configurar tu propio cluster Kubernetes con buenas prácticas… ¡y mucho más!