martes, 13 de octubre de 2020

Minikube: Clúster local de Kubernetes de un solo nodo

Como mencionamos en la entrada "Instalación de Kubernetes", Minikube es la forma más fácil y recomendada de ejecutar un clúster Kubernetes todo en uno localmente en nuestras estaciones de trabajo. En esta entrada, exploraremos los requisitos para instalar Minikube localmente en nuestra estación de trabajo, junto con las instrucciones de instalación para configurarlo en sistemas operativos Linux, macOS y Windows locales.


Objetivos
  • Discutir sobre Minikube
  • Instale Minikube en la estación de trabajo local de Linux, macOS y Windows
  • Verifique la instalación local.
Requisitos para ejecutar 

MinikubeMinikube se instala y se ejecuta directamente en una estación de trabajo local con Sistema Operativo Linux, macOS o Windows. Sin embargo, para aprovechar al máximo todas las funciones que Minikube tiene para ofrecer, se debe instalar un Hipervisor Tipo 2 en la estación de trabajo local para que se ejecute junto con Minikube. Esto no significa que necesitemos crear máquinas virtuales con Sistemas Operativos Huesped con este Hipervisor.

Minikube construye toda su infraestructura siempre que el Hipervisor Tipo 2 esté instalado en nuestra estación de trabajo. Minikube invoca el Hipervisor para crear una única Máquina Virtual que luego aloja al Clúster de Kubernetes de un solo Nodo. Por lo tanto, debemos asegurarnos de que tenemos el hardware y el software necesarios que Minikube requiere para construir su entorno. A continuación, describimos los requisitos para ejecutar Minikube en nuestra estación de trabajo local:

kubectl
Es un binario que se usa para acceder y administrar cualquier clúster de Kubernetes. Se instala por separado de Minikube. Dado que instalaremos kubectl después de la instalación de Minikube, es posible que veamos advertencias durante la inicialización de Minikube; es seguro ignorarlas por el momento, pero tenga en cuenta que tendremos que instalar kubectl para poder administrar el clúster de Kubernetes. Exploraremos kubectl con más detalle posteriormente.

Hipervisor de Tipo 2
  • Sobre Sistema Operativo Linux pudiese ser VirtualBox o KVM
  • Sobre Sistema Operativo macOS pude ser VirtualBox, HyperKit o VMware Fusion
  • Sobre Sistema Operativo Windows puede ser VirtualBox o Hyper-V
NOTA: Minikube admite una opción --vm-driver = none que ejecuta los componentes de Kubernetes directamente en el Sistema Operativo Anfitrión (en el que se ejecuta el Hipervisor Tipo 2) y NO dentro de una Máquina Virtual. Con esta opción, se requiere una instalación de Docker y un Sistema Operativo Linux en la estación de trabajo local, pero NO una instalación del Hipervisor. Si usa --vm-driver = none, asegúrese de especificar una red "bridge" o puente para Docker. De lo contrario, podría cambiar entre reinicios de red, lo que provocaría la pérdida de conectividad con su Clúster.

La Virtualización Asistida por Hardware (VT-x / AMD-v) deberá estar previamente habilitada en la estación de trabajo local, dentro de la configuración del BIOS

Conexión a Internet en la primera ejecución de Minikube: para descargar paquetes, dependencias, actualizaciones y extraer imágenes necesarias para inicializar el clúster de Minikube Kubernetes. Las ejecuciones posteriores requerirán una conexión a Internet solo cuando sea necesario extraer nuevas imágenes de Docker de un repositorio de Contenedores, o cuando las aplicaciones implementadas en los Contenedores lo necesiten. Una vez que se ha extraído una imagen, se puede reutilizar sin una conexión a Internet.

En esta entrada, usamos VirtualBox como Hipervisor en los tres Sistemas Operativos: Linux, macOS y Windows, para permitir que Minikube aprovisione la Máquina Virtual que alojará al Clúster de Kubernetes de un solo Nodo.

Lea más sobre Minikube en la Documentación Oficial de Kubernetes o en GitHub.

Instalación de Minikube sobre Linux

Revisemos como instalar Minikube v1.0.1 específicamente en Ubuntu Linux 18.04 LTS con VirtualBox v6.0.

NOTA: Para otras versiones, los pasos de instalación pueden variar. ¡Compruebe la instalación de Minikube!Instalación del hipervisor VirtualBox

Agregue el repositorio de origen para la distribución biónica (Ubuntu 18.04), descargue y registre la clave pública, actualice e instale:

$ sudo bash -c 'echo "deb https://download.virtualbox.org/virtualbox/debian bionic contrib" >> /etc/apt/sources.list'
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install -y virtualbox-6.0

Instalación de Minikube

Podemos descargar la última versión de la página de versiones de Minikube. En el momento en que se escribió el curso, la última versión de Minikube era la v1.0.1. Una vez descargado, necesitamos hacerlo ejecutable y agregarlo a nuestro PATH:

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.0.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/NOTA: Reemplazar /v1.0.1/ por /latest/ siempre descargará la última versión.

Iniciar Minikube

Podemos iniciar Minikube con el comando minikube start (ignore las advertencias "Unable to read.../docker/config..." y "No matching credentials..."):

$ minikube start
minikube v1.0.1 on linux (amd64)
Downloading Minikube ISO ...
142.88 MB / 142.88 MB [============================================] 100.00% 0s
Downloading Kubernetes v1.14.1 images in the background ...
Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
"minikube" IP address is 192.168.99.100
Configuring Docker as the container runtime ...
Version of container runtime is 18.06.3-ce
Waiting for image downloads to complete ...
Preparing Kubernetes environment ...
Downloading kubeadm v1.14.1
Downloading kubelet v1.14.1
Pulling images required by Kubernetes v1.14.1 ...
Launching Kubernetes v1.14.1 using kubeadm ...
Waiting for pods: apiserver proxy etcd scheduler controller dns
Configuring cluster permissions ...
Verifying component health .....
kubectl is now configured to use "minikube"
For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/
Done! Thank you for using minikube!

Comprobación del estado

Con el comando minikube status, mostramos el estado de Minikube:

$ minikube status
host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

Detener minikube

Con el comando minikube stop, podemos detener Minikube:

$ minikube stop
Stopping "minikube" in virtualbox ...
"minikube" stopped

Instalación de Minikube sobre macOS

Revisemos como instalar Minikube v1.0.1 específicamente en Mac OS X con VirtualBox v6.0.

NOTA: Para otras versiones, los pasos de instalación pueden variar. ¡Compruebe la instalación de Minikube!

Aunque VirtualBox es el hipervisor predeterminado para Minikube, en Mac OS X podemos configurar Minikube al inicio para usar otro hipervisor, con la opción de inicio --vm-driver=xhyve o =hyperkitInstale el hipervisor VirtualBox para hosts OS X

Descargue e instale el paquete .dmgInstalar Minikube

Podemos descargar la última versión de la página de versiones de Minikube. En el momento en que se escribieron estas líneas, la última versión de Minikube era la v1.0.1. Una vez descargado, necesitamos hacerlo ejecutable y agregarlo a el PATH o ruta:

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.0.1/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/NOTA: Reemplazar /v1.0.1/ por /latest/ siempre descargará la última versión.

Iniciar Minikube

Podemos iniciar Minikube con el comando minikube start (ignore las advertencias "Unable to read.../docker/config..." y "No matching credentials..."):

$ minikube start
minikube v1.0.1 on darwin (amd64)
Downloading Kubernetes v1.14.1 images in the background ...
Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
Downloading Minikube ISO ...
142.88 MB / 142.88 MB [============================================] 100.00% 0s
"minikube" IP address is 192.168.99.100
Configuring Docker as the container runtime ...
Version of container runtime is 18.06.3-ce
Waiting for image downloads to complete ...
Preparing Kubernetes environment ...
Downloading kubeadm v1.14.1
Downloading kubelet v1.14.1
Pulling images required by Kubernetes v1.14.1 ...
Launching Kubernetes v1.14.1 using kubeadm ...
Waiting for pods: apiserver proxy etcd scheduler controller dns
Configuring cluster permissions ...
Verifying component health .....
kubectl is now configured to use "minikube"
For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/
Done! Thank you for using minikube!

Comprobación del estado

Con el comando minikube status, mostramos el estado de Minikube:

$ minikube status
host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

Detener minikube

Con el comando minikube stop, podemos detener Minikube:

$ minikube stop
Stopping "minikube" in virtualbox ...
"minikube" stopped

Instalación de Minikube sobre Windows

Aprendamos a instalar Minikube 1.0.1específicamente en Windows 10 con VirtualBox v6.0.6.

NOTA: Para otras versiones, los pasos de instalación pueden variar. ¡Compruebe la instalación de Minikube!NOTA: El soporte de Windows se encuentra actualmente en fase experimental y puede encontrar problemas durante la instalación.Instale el hipervisor VirtualBox para hosts Windows

Descargue e instale el paquete .exeInstalar Minikube

Podemos descargar la última versión de la página de versiones de Minikube. En el momento en que se escribieron estas líneas, la última versión de Minikube era la v1.0.1. Una vez descargado, necesitamos agregarlo al PATH o ruta.

Hay dos paquetes .exe disponibles para descargar para Windows que se encuentran en Minikube v1.0.1:

  • minikube-windows-amd64.exe que debe agregarse a la RUTAo PATH manualmente
  • minikube-installer.exe que agrega automáticamente el ejecutable a la RUTA o PATH.
Descargue e instale el paquete minikube-installer.exe que se encuentra en Minikube v1.0.1.

Iniciar Minikube

Podemos iniciar Minikube usando el comando de inicio de minikube (ignore las advertencias "Unable to read...docker\\config..." y "No matching credentials..."). Abra PowerShell usando la opción Ejecutar como administrador y ejecute el siguiente comando:

PS C:\WINDOWS\system32> minikube start
minikube v1.0.1 on windows (amd64)
Downloading Kubernetes v1.14.1 images in the background ...
Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
Downloading Minikube ISO ...
0 B / 142.88 MB [-----------------------------------------------------] 0.00%
142.88 MB / 142.88 MB [============================================] 100.00% 0s
"minikube" IP address is 192.168.99.100
Configuring Docker as the container runtime ...
Version of container runtime is 18.06.3-ce
Waiting for image downloads to complete ...
Preparing Kubernetes environment ...
Downloading kubeadm v1.14.1
Downloading kubelet v1.14.1
Pulling images required by Kubernetes v1.14.1 ...
Launching Kubernetes v1.14.1 using kubeadm ...
Waiting for pods: apiserver proxy etcd scheduler controller dns
Configuring cluster permissions ...
Verifying component health .....
kubectl is now configured to use "minikube"
For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/
Done! Thank you for using minikube!

Comprobación del estado

Podemos ver el estado de Minikube usando el comando de estado de minikube. Abra PowerShell usando la opción Ejecutar como administrador y ejecute el siguiente comando:

PS C:\WINDOWS\system32> minikube status
host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

Detener Minikube

Podemos detener Minikube usando el comando de detención de minikube. Abra PowerShell usando la opción Ejecutar como administrador y ejecute el siguiente comando:

PS C:\WINDOWS\system32> minikube stop
Stopping "minikube" in virtualbox ...
"minikube" stopped.


Minikube CRI-O

Según el sitio web de CRI-O:

"CRI-O es una implementación de Kubernetes CRI (Container Runtime Interface) para permitir el uso de tiempos de ejecución compatibles con OCI (Open Container Initiative)".

Inicie Minikube con CRI-O como tiempo de ejecución del contenedor, en lugar de Docker, con el siguiente comando:

$ minikube start --container-runtime=cri-o
minikube v1.0.1 on linux (amd64)
Downloading Kubernetes v1.14.1 images in the background ...
Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
Restarting existing virtualbox VM for "minikube" ...
Waiting for SSH access ...
"minikube" IP address is 192.168.99.100
Configuring CRI-O as the container runtime ...
Version of container runtime is 1.13.5
Waiting for image downloads to complete ...
Preparing Kubernetes environment ...
Pulling images required by Kubernetes v1.14.1 ...
Relaunching Kubernetes v1.14.1 using kubeadm ...
Waiting for pods: apiserver etcd scheduler controller
Updating kube-proxy configuration ...
Verifying component health ......
kubectl is now configured to use "minikube"
For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/
Done! Thank you for using minikube!

Iniciemos sesión a través de ssh en la máquina virtual de Minikube:

$ minikube ssh

_ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ _


NOTA: Si intenta enumerar los contenedores con el comando docker, no producirá ningún resultado, porque Docker no está ejecutando contenedores:

$ sudo docker container lsCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Enumere los contenedores creados a través del tiempo de ejecución del contenedor CRI-O con el siguiente comando:

$ sudo runc list
ID PID STATUS BUNDLE CREATED OWNER
1090869caeea44cb179d31b70ba5b6de96f10a8a5f4286536af5dac1c4312030 3661 running /run/containers/storage/overlay-containers/1090869caeea44cb179d31b70ba5b6de96f10a8a5f4286536af5dac1c4312030/userdata 2019-04-18T20:03:02.199284303Z root
1e9f8dce6d535b67822e744204098060ff92e574780a1809adbda48ad8605d06 3614 running /run/containers/storage/overlay-containers/1e9f8dce6d535b67822e744204098060ff92e574780a1809adbda48ad8605d06/userdata 2019-04-18T20:03:02.129881761Z root
1edcfc78bca52be153cc9f525d9fc64be75ccea478897004a5032f37c6c4c9dc 3812 running /run/containers/storage/overlay-containers/1edcfc78bca52be153cc9f525d9fc64be75ccea478897004a5032f37c6c4c9dc/userdata 2019-04-18T20:03:02.740669541Z root
...

Instalación de Minikube (demostración)

No hay comentarios:

Publicar un comentario

Todos los derechos reservados.
Copyright © 2025.