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 --apiserver-advertise-address=172.16.5.11  --pod-network-cidr=172.16.5.0/27

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 1p5izb.4irexouwmnl9nrkv \
        --discovery-token-ca-cert-hash sha256:4ae3a28612046cdd15706e9e9f818311db4cfc14ef3daf3ba76a3a4df66b0712 \
        --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 1p5izb.4irexouwmnl9nrkv \
        --discovery-token-ca-cert-hash sha256:4ae3a28612046cdd15706e9e9f818311db4cfc14ef3daf3ba76a3a4df66b0712
  1. Configurar la red de pods

Se configura la red de pods para que los nodos puedan comunicarse entre sí. Se recomienda usar Calico como plugin de red.

..code-block:: bash

  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/