Minikube | Instalación y configuración de un entorno de laboratorio para Kubernetes
Paso a paso de la instalación y configuración de un entorno de pruebas locales de Kubernetes, utilizando Windows 10 y Virtualbox
El siguiente paso de todo administrador o desarrollador de contenedores es llevar sus despliegues a Kubernetes, el cual es el orquestador principal de esta tecnología. Esta herramienta de orquestación es considerada como una solución integral, de administración de aplicaciones, servicios y recursos, además de configurar y conectar en red sus dependencias.
Por su parte, Minikube es una distribución reducida de Kubernetes que permite alcanzar el máximo rendimiento funcional de esta herramienta con el mínimo esfuerzo. Esto no solo es interesante para quienes se están iniciando en el uso de contenedores, sino también, y sobre todo, en el mundo de la nube.
En el siguiente laboratorio, procederemos a la configuración e instalación de Minikube en un entorno local, utilizando Windows 10 como sistema operativo y Virtualbox como solución de virtualización.
Dependencias
NOTA: Toda la instalación del laboratorio se realizará mediante el gestor de paquetes de línea de comandos para Microsoft Windows. Conocido como chocolatey
Puede instalar de la siguiente manera:
Inicie la aplicación PowerShell como administrador y ejecute los siguientes comandos en la terminal
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Si aparece algún error, debe asegurarse de que Get-ExecutionPolicy
no esté restringido
Puede omitir cualquier error relacionado a la instalación mediante el siguiente comando:
Set-ExecutionPolicy Bypass -Scope Process
Finalmente, pude observar la versión de la aplicación instalada
choco --version
Instalación
1- Instalación de VirtualBox
En la terminar de PowerShell, utilizaremos el gestor de paquetes chocolatey. Inicie la terminal y lance el siguiente comando para instalar la última versión de VirtualBox
choco install VirtualBox
Al finalizar, obtendra el siguiente resultado
...
The install of virtualbox was successful. Chocolatey installed 1/1 packages.
2- Instalación de Minikube
El siguiente paso, es instalar el componente principal de nuestro laboratorio, Minikube. Utilizando el gestor de paquetes mencionado en el paso anterior. Iniciamos la terminal nuevamente y aplicamos los siguientes comandos para descargar la aplicación
choco install minikube
Al finalizar los pasos mencionados, ya podremos iniciar con el entorno de laboratorio en Minikube. Puede observar las aplicaciones instaladas con el siguiente comando
choco list --local
Iniciando Minikube
El proceso anterior solamente instala los componentes necesarios, en el siguiente apartado, vamos a iniciar a interactuar con la aplicación
El sigueinte paso es inicializar el componente Minikube. En la terminal de PowerShell, lanzamos lo siguiente:
minikube start
Automaticamente el proceso detectara la herramienta de virtualización VirtualBox y procedera a descargar la imagen ISO para instalar una maquina virtual con el componente Minikube instalado
Puede observar la siguiente salida del comando
Por defecto la máquina virtual se crea con las siguientes caracteristicas:
Creando virtualbox VM (CPUs=2, Memory=4000MB, Disk=20000MB)
Puede personalizar las propiedades de la siguiente forma:
minikube start --cpu='4' --memory='8g'
Todas las opciones de instalación lo pueden obtener con el comando minikube start --help
Finalmente, debe obtener la siguiente salida:
Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
En la ventana de VirtualBox, debe aparecer la máquina virtual configurada y en ejecución
Interactuando con Minikube
Una vez que el componente minikube se encuentra creado y ejecutándose, pude iniciar a interactuar con el Cluster de Kubernetes creado
Minikube dispone de las herramientas principal para interactuar con el clsuter. Puede lanzar el siguiente comando y observar el estado de su componente
minikube status...type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
También es posible interactuar con APi de kubernetes utilizando la herramienta kubectl. Por ejemplo: Puede comprobar la lista de los namespaces de la sigueinte forma
minikube kubectl get namespaces...NAME STATUS AGE default Active 19m kube-node-lease Active 19m kube-public Active 19m kube-system Active 19m
En el siguiente ejemplo vamos a desplegar una aplicación dentro del cluster
Utilizaremos la imagen base nginx y desplegaremos 3 Pods
minikube kubectl -- create deployment nginx-app --image=nginx --replicas=3...deployment.apps/nginx-app created
Puede observar los Pods creados
minikube kubectl -- get pods...NAME READY STATUS RESTARTS AGE nginx-app-7f6fdf9556-4jfp5 0/1 ContainerCreating 0 32s nginx-app-7f6fdf9556-mfb5w 1/1 Running 0 32s nginx-app-7f6fdf9556-nzkv9 1/1 Running 0 32s
Si creamos un servicio, de tipo NodePort, con el siguiente comando:
minikube kubectl -- expose deploy/nginx-app --type=NodePort --port=8080...service/nginx-app exposed
NOTA: Utilice los caracteres
--
luego del comando kubectl para algunas operaciones
Puede observar con el siguiente comando, la lista de servicios expuestos por Minikube
minikube service list
Minikube tambien cuenta con la posibilidad de habilitar el dashboard por defecto de kubernetes. En la línea de comando, realice el siguiente comando
minikube dashboard