Preparación del entorno

Estas instrucciones están hechas para utilizarse en GNU/Linux Ubuntu 22.04 x86 de 64 bits. En caso de utilizar otra distribución, sistema operativo o arquitectura, realizar los ajustes pertinentes.

Instalar herramientas básicas

En caso de no tener instalados git, curl y nano, instalarlos con:

sudo apt update && sudo apt install -y git curl nano

Instalar docker

En caso de no tener instalado docker, instalarlo con:

sudo snap install docker

sudo addgroup --system docker

sudo adduser $USER docker

newgrp docker

sudo snap disable docker

sudo snap enable docker

Cerrar la sesión del usuario actual o reiniciar el equipo.

Instalar kind

Para instalar kind (v0.22.0) ejecutar:

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-amd64

chmod +x ./kind

sudo mv kind /usr/local/bin

Instalar kubectl

Para instalar kubectl (v1.29.2) ejecutar:

curl -Lo ./kubectl https://dl.k8s.io/release/v1.29.2/bin/linux/amd64/kubectl

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin

Descargar el código

Descargar el código del repositorio con:

git clone https://gitlab.com/gabrielarellano/tutorial-kubernetes-kind.git

Ingresar al directorio con:

cd tutorial-kubernetes-kind

Crear el cluster

Para crear el cluster, ejecutar:

kind create cluster --config=cluster-config.yaml

el archivo cluster-config.yaml contiene la configuración para crear un cluster kubernetes de 4 nodos (versión 1.29.2).

Para validar que el cluster está funcionando correctamente, ejecutar:

kubectl get nodes

Luego instalamos Nginx ingress controller en el cluster con:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/kind/deploy.yaml

Agregamos además una entrada local en /etc/hosts para poder acceder al ingress controller desde el navegador web con:

sudo sed -i '1i127.0.114.100 cluster-prueba.k8s.local vote.k8s.local result.k8s.local' /etc/hosts

Esperar unos minutos, y luego probar el ingress accediendo con un navegador web a http://cluster-prueba.k8s.local y a https://cluster-prueba.k8s.local. Debería verse la página de error por default de Nginx.

En el caso del sitio HTTPS primero deberá omitir la alerta de seguridad, ya que los certificados TLS del ingress son auto-firmados.