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.