Vamos a crear un cluster de kubernetes gratuito, con K3S, en la nube always free de Oracle.
Vamos a comenzar a crear nuestra instancia, una vez hemos creado nuestra cuenta en Oracle Free Tier nos vamos a dirigir al buscador superior, y vamos a escribir instance.
Una vez dentro, hacemos click en Create instance.
Le asignamos un nombre a nuestra máquina.
Luego vamos directamente a la sección de crear nuestra imagen y el tipo de equipo. Primero vamos a establecer la imagen que usaremos, que será Ubuntu 20.04.
Y a continuación configuramos nuestra máquina.
Luego vamos a crear nuestra red interna (primary network y subnet).
Importante, hay que descargar la clave pública, sino luego va a ser complicado conectarnos a nuestra instancia...
Por último, configuramos la capacidad de disco de nuestra máquina. La máxima capacidad por cada cuenta es de 200GB.
Una vez hemos seguido todos estos pasos, ya podemos crear nuestra instancia.
Una vez creada la instancia, tenemos que abrir los puertos de nuestra red para que Kubernetes pueda funcionar correctamente.
Dentro de nuestra instancia en la plataforma de Oracle, hacemos click en nuestra Virtual cloud network.
Se abrirá un nuevo menú donde podemos ver que existe nuestra subnet, hacemos click sobre nuestra subnet.
Luego abrimos la Security list.
Y ahora sí, añadimos nuestras Ingress Rules, tienen que quedar tal que así.
Primero actualizamos el sistema
sudo apt update && sudo apt upgrade -y
Abrimos los puertos de nuestro sistema; dependiendo del sistema operativo que estés corriendo tendrás que usar un comando u otro, aunque yo recomiendo abrirlos todos (usar todos los comandos).
sudo apt -y install firewalld
firewall-cmd --permanent --zone=public --add-port=6443/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload
sudo ufw allow 6443
sudo ufw allow 443
sudo ufw allow 80
iptables -A INPUT -p tcp --dport 6443 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Podemos comprobar si se han abierto los puertos en esta web, aunque es posible que tarde en actualizarse. Yo recomiendo continuar con la instalación, y si luego hay problemas con los puertos entonces volver a este punto.
Estos son los comandos para instalar Docker.
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
También podemos agregar docker en un grupo de confianza, para que no tengamos que usar sudo cada vez que queramos usarlo.
sudo usermod -aG docker ${USER}
newgrp docker
Por último, actualizamos el sistema de nuevo
sudo apt update -y && sudo apt upgrade -y && sudo systemctl reboot -y
curl -sfL https://get.k3s.io | sh -s
Comprobamos que kubectl funciona correctamente.
sudo kubectl get nodes -o wide
Damos permisos al config, y lo copiamos al directorio .kube
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
mkdir ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
En la configuración, debemos añadir la línea insecure-skip-tls-verify: true
Y también comentar el certificado, como vemos en la imagen.
¡Listo!, ya podemos usar ese archivo de configuración para hacer uso de nuestro single-node cluster de Kubernetes.