Tutorial de Kubernetes
La plataforma Kubernetes, también conocida como K8, permite gestionar grandes conjuntos de contenedores y facilita el trabajo con numerosos automatismos, con lo que ha revolucionado el mundo del desarrollo de software. Aquí te explicamos los pasos más importantes para que aproveches las funciones que ofrece, desde la instalación hasta el primer clúster.
Bajo la división Arsys Cloud Solutions, diseñamos Soluciones a tu medida.
Tutorial de Kubernetes: introducción e instalación
Kubernetes trabaja con una gran variedad de servidores, llamados maestros (master) y nodos (nodes), que no necesariamente han de estar ubicados en servidores físicos diferentes. Gracias a máquinas virtuales, desde un ordenador se pueden activar varios nodos Kubernetes. Para probarlo, el programa gratuito Minikube es una buena opción, ya que permite trabajar con Kubernetes también de manera local. Puesto que Minikube crea un ordenador virtual, el programa está supeditado a un hipervisor. Por ello, para poder usar Minikube, también hay que tener instalado un programa como, por ejemplo, VirtualBox, así como la herramienta Kube Control.
Este tutorial de Kubernetes explica el proceso de instalación en Ubuntu, pero el programa también funciona en Windows y macOS. El manual oficial también explica cómo instalarlo en estos sistemas operativos.
Instalación de Kube Control
Primero instala Kubectl, el programa necesario para administrar clústeres.
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
Minikube
A continuación, instala Minikube, que crea un ordenador virtual como nodo.
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
Luego inicia Minikube.
minikube start
Al iniciar Minikube, Kubectl debería configurarse automáticamente de forma correcta. Para pasar de la línea de comandos a una interfaz gráfica de usuario (o GUI, por sus siglas en inglés), introduce un nuevo comando que abrirá el panel de control o dashboard en tu navegador estándar:
minikube dashboard
Si en esta ocasión no quieres usar tu propio sistema para instalar Kubernetes, también puedes recurrir a un terminal web del desarrollador. Este tutorial interactivo te ayuda a dar tus primeros pasos con Kubernetes.
Trabajar con Kubernetes
Una vez iniciado Minikube, el programa creará automáticamente un clúster con un único nodo. Puedes comprobarlo introduciendo un comando para Kubectl:
kubectl get nodes
Ahora ya puedes crear despliegues (deployments) desde el panel de control. Para ello, haz clic en la opción “Crear” (arriba a la derecha) y aparecerá un editor web en el que podrás crear un despliegue en formato JSON o YAML. Al hacerlo, Kubernetes generará automáticamente varios pods (grupos de contenedores), cuya cantidad puede modificarse escalando el despliegue. La función correspondiente se encuentra sobre el icono de tres puntos junto al despliegue.
Otra opción es crear despliegues a través de la terminal. Para ello, sin embargo, los contenidos han de estar ya integrados en una imagen Docker guardada en un repositorio.
kubectl create deployment --image=[Ruta a la imagen]
En la terminal de comandos pueden solicitarse numerosas informaciones:
¿Qué despliegues existen?
kubectl get deployments
¿Cuántos pods hay?
kubectl get pods
¿Qué servicios hay?
kubectl get services
¿Qué nodos están activos?
kubectl get nodes
Llegados a este punto, hemos iniciado el despliegue, pero aún no lo hemos publicado. Para hacerlo, hay que crear un servicio (service):
kubectl expose deploy test-deployment
De este modo, sin embargo, el servicio solo se ha publicado dentro del clúster. Para poder acceder al despliegue también desde fuera del clúster, hay que añadir flags adicionales:
kubectl expose deploy test-deployment --type=LoadBalancer --port=8080
Entonces ya se puede iniciar el servicio con Minikube:
minikube service test-deployment
También existe un comando para eliminar el servicio:
kubectl delete service test-deployment
E, igualmente, uno para eliminar el despliegue:
kubectl delete deployment test-deployment
Finalmente, para cerrar Minikube, hay que detener el proceso:
minikube stop
Y, si ya no deseas trabajar más con el ordenador virtual, también puedes eliminarlo:
minikube delete
Al hacerlo, también se eliminan tanto la configuración previa como los despliegues y pods creados, de manera que, si se vuelve a iniciar Minikube, se empieza de nuevo con un clúster vacío.