Inicialización de Kubernetes

En esta inicialización de Kubernetes vamos a ver diversas opciones para construir una aplicación que se ejecute en cluster. Hay muchas maneras de configurarlo, cómo configurarlo nosotros mismos localmente en nuestros ordenadores o en máquinas virtuales usando soluciones como Minikube o MicroK8s. Estas son soluciones para desarrolladores o para aquellos que solo quieren jugar y aprender la herramienta de administración. Se usa para arrancar y administrar grupos de Kubernetes. También se pueden utilizar soluciones alojadas en Hostings. Permiten configurarlo en un entorno de nube como Google cloud platform, Amazon Web Service, Microsoft Azure o Cloud de IBM. Estas son solo algunas de las muchas opciones disponibles para implementar el clúster de componentes de equipos.

La forma más fácil de comenzar es con Minikube, que puede configurarse en un sistema local. Vimos en el anterior artículo los diferentes componentes de Kubernetes, con sus nodos maestros y de trabajo. También vimos como el servidor API, el almacen etcd de valores clave, los controladores y el planificador se instalan en el maestro. El kubelet y el runtime en los nodos de trabajo. Nos llevaría mucho tiempo y esfuerzo configurar e instalar todos estos componentes en diferentes sistemas de forma individual. Minikube agrupa todos estos componentes diferentes en una sola imagen que proporciona un nodo único preconfigurado para coordinar un clúster. De esta forma podemos comenzar en cuestión de minutos.

Paquetes

El paquete completo está empaquetado en una imagen iso y está disponible en línea para descargar. Ahora no tienes que hacerlo tú mismo. Minikube proporciona una utilidad de línea de comandos ejecutable. Con ella se descargará automáticamente el ISO. Lo implementará en una plataforma de virtualización como Oracle VirtualBox, por lo que se debe tener instalado en el sistema. Para Windows se puede usar VirtualBox o Hyper V, y para Linux se puede usar VirtualBox o KVM. Para interactuar con el cluster debe tener el componente kubectl, que es una herramienta de línea de comandos. Por lo que necesita tres cosas para que esto funcione: Una máquina virtual, Kubectl y el ejecutable de Kubernetes.

Referencias

Instalación de MiniKube: https://kubernetes.io/docs/tasks/tools/install-minikube/

Instalación de VirtualBox: https://www.virtualbox.org/wiki/Downloads

Descarga de MiniKube para Windows: https://github.com/kubernetes/minikube/releases

Si se usa Minikube con una aplicación de virtualización diferente a Virtualbox, hay que especificar la opción “–vm-driver” así “minikube start –vm-driver=<driver_name>”. Para saber más sobre este tema ir a https://kubernetes.io/docs/setup/learning-environment/minikube/#specifying-the-vm-driver

Inicialización de Kubernetes paso a paso

Vamos a ver cómo implementar una versión básica de Kubernetes con la utilidad Minikube.

Primero vamos al sitio web de Kubernetes, que es https://kubernetes.io y vamos a las instrucciones sobre cómo instalar Minikube. Así que vamos a la sección de documentación y en la parte superior izquierda aparecerá la sección de configuración. Allí es donde tenemos la documentación sobre las diversas opciones disponibles para instalar Kubernetes y comenzar con Kubernetes. Algo más abajo están las instrucciones para configurarlo en una máquina local y en diferentes hosts de terceros . Lo que nos interesa es Minikube, que es una opción para configurar Kubernetes en una máquina local.

Preparación

Antes de comenzar se debe tener la tecnología de virtualización habilitada en el BIOS del ordenador. Por lo tanto, debe asegurarse de tener la tecnología de virtualización instalada o habilitada. Para hacerlo, hay que entrar en la configuración de la BIOS y asegurarse de que esté habilitado. También se puede entrar en VirtualBox ya que es compatible con los tres sistemas operativos más comunes. Tambien se puede utilizar VMware Fusion o Hiperkit en MAC; KVM en Linux; Hyper-V en WIndows). Entrando en VIrtualBox y tratando de implementar una nueva máquina virtual haciendo clic en el botón “nuevo”. Aparecerán las Versiones de sistemas operativos que se pueden virtualizar. Si aparece alguno de 64 bits, lo más probable es que esté habilitada la tecnología de virtualización. Si no hay ninguno con 64 bits, es posible que no lo tenga habilitado.

Una vez comprobados los dos requisitos previos, el siguiente paso es instalar kube control, que es la utilidad de línea de comandos kubectl. Si en la página de Kubernetes se hace clic en instalar kubectl, y luego en el sistema operativo deseado, mostrará instrucciones para instalar kubectl. Realmente no se hace una instalación, es solo un ejecutable para descargar. Hay que guardarlo en el ordenador local

Minikube

El siguiente paso para esta inicialización de Kubernetes es instalar MiniKube haciendo click en e enlace que aparece debajo del anterior. De nuevo, no es realmente una instalación, solo descarga el ejecutable. Aparecerán las versiones disponibles, por lo que se descarga la más apropiada para el sistema operativo que esté instalado en el ordenador local. Si estamos en Windows, será necesario cambiar el nombre para añadirle la extensión .exe

Inicializacion de Kubernetes

De regreso a la documentación, en la primera página, se puede ver la Guía de inicio rápido. Las instrucciones indican que se debe ejecutar el comando de inicio de Minikube. Hay que tener en cuenta que no hay que entrar manualmente en VirtualBox y crear máquinas virtuales. Minikube extraerá automáticamente la imagen desde Internet. Luego la implementará como una máquina virtual, por lo que no hay que hacer nada manualmente. Solo asegurarse que la máquina virtual de Oracle instalada y funcionando y que se descargaron los dos ejecutables.

Al ejecutar la orden “minikube.exe start” desde la linea de comando se descarga el ISO de Minikube. Luego crea la imagen en la máquina virtual. Por último ejecuta todas las tareas de configuración, como obtener la dirección IP y configurar el clúster y localkube, etc. Básicamente, se está configurando el clúster de Kubernetes. Ahora tenemos el clúster de Kubernetes como un clúster de nodo único instalado y configurado en cuestión de minutos. Puede verse ejecutando el comando “kubectl get nodes” que  enumerará todos los nodos en un clúster y parecerá un listado con un solo nodo.

Comprobación

Para asegurarse que todo está funcionando se puede ejecutar el comando “kubectl run hello-minikube –image=k8s.gcr.io/echoserver:1.4 –port=8080”. Si se ejecuta ahora el comando “kubectl get pods”, se ve que el pod está ejecutándose que es básicamente un contenedor. En realidad es un servidor web, por lo que hay que acceder a la página web para ver su funcionamiento. Pero antes hay que ejecutar “kubectl expose deployment hello-minikube –type=NodePort” para hacerlo visible. Para conocer la URL donde debemos ir se ejecuta el comando “minikube service hello-minikube –url” que nos dará una URL en formato http://<IP>:<PUERTO> para acceder a la dirección donde está expuesta la aplicación. Si se usa esa combinación en un navegador, se accede a la página web.

Antes de terminar esta inicialización de Kubernetes, vamos a limpiar. Así que se ejecuta el comando “cubectl delete deployment hello-minicube”