Esta Guía Comprensiva de Kubernetes incluye los comandos más utilizados y utilitarios para administrar y gestionar Kubernetes. Adicionalmente se incluye una referencia cómoda para los manifiestos de Kubernetes.

Es muy conveniente que antes de continuar pases por este artículo de Docker y sus generalidades.

1. Instalación y generalidades

Cuando tenemos aplicaciones en contenedores como docker, puede existir una cantidad importante de contenedores y su administración manual comienza a ser difícil, Kubernetes ayuda a administrar los diferentes contenedores estableciendo abstracciones de más alto nivel para gestionar facílmente aplicaciones.

Los comandos recopilados a continuación no pretenden ser una guía extensiva, pero si los más usados en el día a día de la administración de un cluster de kubernetes.

Antes de iniciar con el uso de Kubernetes deberás instalar kubectl y minikube que son las utilidades de administración de kubernetes y un pequeño cluster que puede correr localmente un un pc o laptop.

Finalmente, algo útil para observar es que casi todos los comandos tienen las mismas versiones, por ejemplo, casi todos permiten listar, crear, eliminar recursos de forma parecida, observar esto ayuda a memorizar los comandos.

2. Kubectl

Los siguientes comandos permiten verificar la instalación de kubectl y el estado del cluster actual.

kubectl version
kubectl cluster-info
kubectl get svc

2.1. Crear un nuevo deployment y pods

Un Deployment, es el concepto que mas se asemeja a una aplicación en Kubernetes. El comando típico para crear un nuevo deployment es el siguiente. Se pueden crear a partir de imágenes o usando especificaciones en formato yaml.

kubectl create deployment <nombre> --image=<imagen> --port=<puerto>

2.2. Deployments

Los siguientes comandos permiten gestionar los deployments.

kubectl get deployments
kubectl delete deployment <nombre-deployment>
kubectl describe deployment <nombre-deployment>

2.3. Pods

El concepto de Pod se puede entender fácilmente como un contenedor dentro de nuestra aplicación. Los siguientes comandos permiten adminsitrar los Pod.

kubectl get pods
kubectl delete pod <nombre-pod>
kubectl describe pod <nombre-pod>

3. Minikube

Minikube es un pequeño cluster de contendores que permite correr kubernetes a continuación se muestran los comandos más usados para su administración.

minikube status
minikube start
minikube stop
minikube delete
minikube profile list

Instalar minikube

4. Ejemplos

4.1. echoserver

Este ejemplo muestra muchas de las características para crear una aplicación partiendo de un contenedor, en este caso usamos el servicio de Google Cloud Registry para obtener la imagen que queremos usar.

kubectl create deployment hello-minikube --image=gcr.io/google_containers/echoserver:1.10 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
minikube service hello-minikube --url
kubectl get pod
kubectl get deployments

4.2. webserver

Similar al caso anterior podemos crear un nuevo deployment usando como base nginx. Note que aquí se usa la última versión de nginx, sin embargo esto no es recomendable puesto que si el cluster de kubernetes ya ha descargado el tag latest, no lo volverá hacer a menos que hagamos algún cambio significativo en nuestro despliegue, por lo cual siempre es conveniente especificar la versión que queremos usar para evitar problemas de actualización de nuestros contenedores.

kubectl create deployment hello-nginx --image=nginx --port=80
kubectl expose deployment hello-nginx --type=NodePort
minikube service hello-nginx --url
kubectl get pod
kubectl get deployments

5. Artículos de Intéres