Minikube | Instalación y configuración de un entorno de laboratorio para Kubernetes

Gerardo Ocampos
5 min readFeb 25, 2022

--

Paso a paso de la instalación y configuración de un entorno de pruebas locales de Kubernetes, utilizando Windows 10 y Virtualbox

Minikube — Kubernetes

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'))
ejemplo de instalación

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
ejemplo instalación VirtualBox

Al finalizar, obtendra el siguiente resultado

...
The install of virtualbox was successful. Chocolatey installed 1/1 packages.
Aplicación VirtualBox

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
ejemplo instalación 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

inicialización de Minikube

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

Minikube en VirtualBox

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
servicios expuestos por minikube

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

--

--

Gerardo Ocampos

Red Hat Certified Engineer — Red Hat Certified System Administrator — Red Hat Certified Specialist in Containers and Kubernetes. Asunción, Paraguay