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)

kubernetes worker node

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.

Internal Kubernetes Network

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).

Kubernetes: Instalar cluster Kubernetes con kubeadm

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:

kubeadm join kubernetes cluster

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
 
kubeadm join kubernetes cluster user

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)

calico nube kubernetes cluster user

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
 
kubernetes 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.

Si aún no viste la segunda parte de esta serie de posts, clica aquí para ver la parte de Bootstrap de cluster con Kubeadm.

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!

Voy a echar un vistazo
1 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
In-Memory OLTP: Otra historia de corrupción y problemas de DMVs
Leer más

In-Memory OLTP: Otra historia de corrupción y problemas de DMVs

El uso de la funcionalidad In-Memory OLTP sigue siendo una rareza en general entre nuestros clientes y se desconoce el alto potencial para poder mejorar el rendimiento de los sistemas con alto nivel de concurrencia y transacciones. Nuestro experto Rubén Garrigós nos explica cómo habilitar dicha funcionalidad, qué problemas pueden ocurrir y cómo solucionarlos.
postgresql
Leer más

Indexación con Trigrams en PostgreSQL

En cualquier motor de base de datos es crítico entender las posibilidades que nos ofrece a nivel de indexación para maximizar su rendimiento. Hoy veremos la indexación con trigrams en PostgreSQL.