2. Iniciar el cluster

Documento para iniciar un cluster kubernetes con tres nodos, un master y dos workers.

Pasos a seguir una vez instalado y actualizado el sistema operativo.

  1. Inicializar el cluster

Se descargan las imágenes necesarias para el cluster y se inicializa el nodo master. Las direcciones IP y el nombre del nodo master deben ser cambiadas según la configuración de cada cluster.

kubeadm config images pull
kubeadm init --control-plane-endpoint=master.iglu.net --apiserver-advertise-address=172.16.4.20  --pod-network-cidr=10.10.0.0/16

Es aconsejable guardar el token que se genera al final de la ejecución del comando anterior, ya que será necesario para unir los nodos worker al cluster. La salida del comando anterior también muestra un comando para unir los nodos worker al cluster, que debe ser ejecutado en cada nodo worker.

Ejemplo de salida del comando anterior:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:

  kubeadm join master.iglu.net:6443 --token 8sk55e.6zvdqy0f4f4id0cf \
        --discovery-token-ca-cert-hash sha256:e2d270ec3ee28e8ae49b587fe744837725c3921af907f301ff9e7697646f75e6 \
        --control-plane

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join master.iglu.net:6443 --token 8sk55e.6zvdqy0f4f4id0cf \
        --discovery-token-ca-cert-hash sha256:e2d270ec3ee28e8ae49b587fe744837725c3921af907f301ff9e7697646f75e6

Si pierdes el token, puedes generar uno nuevo con el siguiente comando:

kubeadm token create --print-join-command

Salida del comando anterior:

kubeadm join master:6443 --token n4607f.8wua6xfk6l4u4n0o \
--discovery-token-ca-cert-hash sha256:bb57f6312009015f44057eb41aef7d288e7943b494af4832c489ed0d712091d6
  1. Credenciales de acceso al cluster

Se copian las credenciales de acceso al cluster para poder usar kubectl desde el nodo master.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. Reinicio del cluster

En caso de querer reiniciar el cluster, se deben eliminar los archivos de configuración y reiniciar los servicios de kubelet y containerd.

kubeadm reset --force
systemctl stop kubelet
rm -fr /etc/kubernetes/
rm -fr ~/.kube/
rm -fr /var/lib/etcd
rm -rf /var/lib/cni/