Ku­be­r­ne­tes (también conocido como K8s) permite gestionar de forma eficiente grandes ca­n­ti­da­des de co­n­te­ne­do­res y au­to­ma­ti­za muchos procesos en el de­sa­rro­llo de software. Con solo unos pocos pasos puedes instalar un clúster de Ku­be­r­ne­tes potente y empezar a usarlo en pro­du­c­ción de inmediato.

Managed Ku­be­r­ne­tes de IONOS
La pla­ta­fo­r­ma ideal para gestionar apli­ca­cio­nes en co­n­te­ne­do­res.

Co­m­ple­ta­me­n­te escalable, seguro y con ac­tua­li­za­cio­nes au­to­má­ti­cas.

Paso 1: prepara el sistema

En este tutorial te mostramos a modo de ejemplo la in­s­ta­la­ción de Ku­be­r­ne­tes en Ubuntu.

El primer paso consiste en preparar el sistema, ac­tua­li­zá­n­do­lo a la versión más reciente e in­s­ta­la­n­do todas las de­pe­n­de­n­cias ne­ce­sa­rias. Abre el terminal y ejecuta primero una ac­tua­li­za­ción del sistema para ase­gu­rar­te de que todos los paquetes estén al día:

sudo apt update && sudo apt upgrade -y
bash

A co­n­ti­nua­ción, instala los programas au­xi­lia­res más im­po­r­ta­n­tes que se requieren para la in­s­ta­la­ción de Ku­be­r­ne­tes y Minikube. Para ello, utiliza el siguiente comando:

sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release
bash

Estas he­rra­mie­n­tas ga­ra­n­ti­zan que puedas usar fuentes externas de forma segura y descargar e instalar otros paquetes de software sin problemas.

Paso 2: instala kubectl

Ku­be­r­ne­tes trabaja con una gran variedad de se­r­vi­do­res, llamados maestros (master) y nodos (nodes), que no tienen que estar ubicados en se­r­vi­do­res físicos di­fe­re­n­tes. Gracias al uso de máquinas virtuales, desde un ordenador se pueden activar varios nodos Ku­be­r­ne­tes. Para probarlo, el programa gratuito Minikube es una buena opción, ya que permite trabajar con Ku­be­r­ne­tes también de manera local. Dado que Minikube necesita una máquina virtual o Docker, el programa depende de un hi­pe­r­vi­sor o del software de co­n­te­ne­do­res. Además, es im­pre­s­ci­n­di­ble contar con la he­rra­mie­n­ta kubectl.

Nota

En este tutorial te mostramos cómo dar tus primeros pasos con Ku­be­r­ne­tes uti­li­za­n­do Docker. Sin embargo, también puedes hacerlo con un software de vi­r­tua­li­za­ción como Vi­r­tua­l­Box.

Primero, instala kubectl (Kube Control) en tu sistema. Este programa es necesario para gestionar clústeres.

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
bash
Nota

Los comandos de in­s­ta­la­ción dependen de la ar­qui­te­c­tu­ra de tu sistema.

Paso 3: instala Docker

Antes de poder utilizar Minikube, debes ase­gu­rar­te de que Docker esté instalado en tu sistema. Docker funciona como entorno de ejecución de co­n­te­ne­do­res y permite que Minikube ejecute clústeres de Ku­be­r­ne­tes sin necesidad de software de vi­r­tua­li­za­ción. Instala Docker con el siguiente comando:

sudo apt install -y docker.io
bash

Para poder usar Docker sin permisos de ad­mi­ni­s­tra­dor, añade tu cuenta de usuario al grupo docker:

sudo usermod -aG docker $USER
newgrp docker
bash

Puede que necesites cerrar la sesión y volver a iniciarla para que la pe­r­te­ne­n­cia al grupo se active. Por último, prueba la in­s­ta­la­ción con:

docker run hello-world
bash

Si aparece un breve mensaje de éxito, significa que Docker se ha instalado co­rre­c­ta­me­n­te y está listo para usarse con Minikube.

Paso 4: instala y arranca Minikube

En el siguiente paso, se instala Minikube en una versión co­m­pa­ti­ble y se utiliza Docker como co­n­tro­la­dor. Primero, descarga la versión adecuada de Minikube, haz que el archivo sea eje­cu­ta­ble y muévelo a un di­re­c­to­rio del sistema para que el comando esté di­s­po­ni­ble de forma global:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
chmod +x minikube-linux-arm64
sudo mv minikube-linux-arm64 /usr/local/bin/minikube
bash

Después de la in­s­ta­la­ción, puedes comprobar con el siguiente comando si Minikube se ha co­n­fi­gu­ra­do co­rre­c­ta­me­n­te:

minikube version
bash

A co­n­ti­nua­ción, inicia Minikube con el siguiente comando:

minikube start --driver=docker
bash

En este escenario, Minikube utiliza Docker como entorno de ejecución de co­n­te­ne­do­res y crea el clúster de Ku­be­r­ne­tes di­re­c­ta­me­n­te dentro del entorno de Docker. Al iniciar Minikube, kubectl debería co­n­fi­gu­rar­se au­to­má­ti­ca­me­n­te de forma correcta. Para pasar de la línea de comandos a una interfaz gráfica de usuario (GUI), introduce otro comando. Este abrirá el Dashboard en el navegador pre­de­te­r­mi­na­do:

minikube dashboard
bash
Imagen: Panel de control de Kubernetes
Panel de control de Ku­be­r­ne­tes vacío

Paso 5: usa Ku­be­r­ne­tes

Una vez iniciado Minikube, el programa creará au­to­má­ti­ca­me­n­te un clúster con un único nodo. Puedes co­m­pro­bar­lo in­tro­du­cie­n­do un comando para kubectl:

kubectl get nodes
bash

Ahora ya puedes crear de­s­plie­gues (de­plo­y­me­nts) desde el panel de control. Para ello, haz clic en la opción “Crear” (el signo “+” arriba a la derecha) y aparecerá un editor web en el que podrás crear un de­s­plie­gue en formato JSON o YAML. Al hacerlo, Ku­be­r­ne­tes generará au­to­má­ti­ca­me­n­te varios pods (grupos de co­n­te­ne­do­res), cuya cantidad puede mo­di­fi­car­se escalando el de­s­plie­gue. La función co­rre­s­po­n­die­n­te se encuentra sobre el icono de tres puntos junto al de­s­plie­gue.

Imagen: Panel de control de Kubernetes con dos despliegues y cuatro pods
El panel de control ofrece una visión general de todos los de­s­plie­gues y pods.
Imagen: Cómo escalar un despliegue en Kubernetes
Cómo escalar un de­s­plie­gue en Ku­be­r­ne­tes

Otra opción es crear de­s­plie­gues a través de la terminal. Para ello, sin embargo, los co­n­te­ni­dos han de estar ya in­te­gra­dos en una imagen Docker guardada en un re­po­si­to­rio.

kubectl create deployment --image=[Ruta a la imagen]
bash

En la terminal de comandos pueden so­li­ci­tar­se numerosas in­fo­r­ma­cio­nes:

¿Qué de­s­plie­gues existen?

kubectl get deployments
bash

¿Cuántos pods hay?

kubectl get pods
bash

¿Qué servicios hay?

kubectl get services
bash

¿Qué nodos están activos?

kubectl get nodes
bash
Imagen: Terminal con varios comandos y resultados de Kubernetes
Comandos de Ku­be­r­ne­tes en la terminal

Paso 6: publica un de­s­plie­gue (de­plo­y­me­nt)

Llegados a este punto, hemos iniciado el de­s­plie­gue, pero aún no lo hemos publicado. Para hacerlo, hay que crear un servicio (service):

kubectl expose deploy test-deployment
bash

De este modo, sin embargo, el servicio solo se ha publicado dentro del clúster. Para poder acceder al de­s­plie­gue también desde fuera del clúster, hay que añadir flags adi­cio­na­les:

kubectl expose deploy test-deployment --type=LoadBalancer --port=8080
bash

A co­n­ti­nua­ción, ya se puede iniciar el servicio con Minikube:

minikube service test-deployment
bash

También existe un comando para eliminar el servicio:

kubectl delete service test-deployment
bash

E, igua­l­me­n­te, uno para eliminar el de­s­plie­gue:

kubectl delete deployment test-deployment
bash

Fi­na­l­me­n­te, para cerrar Minikube, hay que detener el proceso:

minikube stop
bash

Y, si ya no quieres seguir tra­ba­ja­n­do con la máquina virtual o con el entorno de ejecución de co­n­te­ne­do­res, puede eli­mi­nar­los fá­ci­l­me­n­te:

minikube delete
bash

Al hacerlo, también se eliminan tanto la co­n­fi­gu­ra­ción previa como los de­s­plie­gues y pods creados, de manera que, si se vuelve a iniciar Minikube, se empieza de nuevo con un clúster vacío.

Ir al menú principal