Aprender Kubernetes localmente a través de Minikube en Manjaro/Archlinux
Minikube es una herramienta que te permite ejecutar Kubernetes en tu sistema informático local. Minikube creará un cluster de Kubernetes de un solo nodo dentro de la VM, dependiendo del vm-driver que utilices. Minikube es bueno para aprender sobre Kubernetes, incluso para probarlo, desarrollarlo o formarlo.
En este tutorial, te mostraremos paso a paso cómo crear un clúster de Kubernetes de un solo nodo de forma local utilizando Minikube en Manjaro/ArchLinux. Esta guía implementará el clúster Kubernetes localmente con el controlador KVM2, y cubrirá un ejemplo de despliegue de servicios Nginx.
Lo que haremos
- Instalar las dependencias de los paquetes
- Instalar Docker-machine y el controlador KVM2
- Instalar Minikube y Kubectl
- Inicialización de Kubernetes con Minikube
- Probar el despliegue
- Acceder al panel de control de Kubernetes
Paso 1 – Instalar las dependencias de los paquetes
El primer paso que haremos es instalar todas las dependencias de los paquetes, incluyendo qemu KVM y dnsmasq.
Instala qemu y dnsmasq utilizando el comando pacman que aparece a continuación.
sudo pacman -Sy libvirt qemu ebtables dnsmasq
Cuando la instalación esté completa, añade el usuario al grupo ‘libvirt’ y vuelve a cargar.
sudo usermod -a -G libvirt $(whoami)
newgrp libvirt
Ahora inicia los servicios libvirtd y virtlogd, y añade esos servicios al tiempo de arranque.
sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service
sudo systemctl start virtlogd.service
sudo systemctl enable virtlogd.service
Los paquetes KVM de qemu y las dependencias se han instalado en el sistema.
Paso 2 – Instalar Docker-Machine y el controlador KVM2
Minikube utiliza docker-machine para gestionar la VM Kubernetes, y necesitamos instalar el ‘docker-machine-driver-kvm2’ para ello.
Instala la máquina docker usando el comando pacman que aparece a continuación.
sudo pacman -Sy docker-machine
Ahora instala el ‘docker-machine-driver-kvm2’ desde el repositorio AUR utilizando el comando yaourt.
yaourt -Sy docker-machine-driver-kvm2
Espera a que se instale.
Paso 3 – Instalar Minikube y Kubectl
Para esta guía, instalaremos Minikube y kubectl desde el repositorio AUR.
Ejecuta el siguiente comando yaourt.
yaourt -Sy minikube-bin kubectl-bin
Cuando se complete la instalación, comprueba la versión de Minikube y el comando kubectl.
minikube version
whereis kubectl
kubectl -h
Paso 4 – Inicialización de Kubernetes con Minikube
Inicializa el clúster de Kubernetes de un solo nodo utilizando el comando Minikube que aparece a continuación.
minikube start --vm-driver kvm2
El comando descargará el archivo ISO de Minikube y creará la máquina virtual KVM en el sistema.
Cuando se complete, obtendrás el resultado que se indica a continuación.
Se ha instalado Kubernetes en el ordenador local mediante Minikube, compruébalo ejecutando todos los comandos que aparecen a continuación.
minikube status
kubectl cluster-info
kubectl get nodes
Ahora verás el resultado de abajo.
El clúster de Kubernetes está funcionando en un ordenador local con la dirección IP ‘192.168.39.78’, utilizando Kubernetes v1.10, y un único nodo llamado minikube como maestro del clúster.
Paso 5 – Prueba de los despliegues
En este paso, probaremos los kubernetes creando un nuevo despliegue para el servidor web Nginx.
Crea un nuevo directorio llamado ‘project/nginx/’ y ve a él.
mkdir -p projects/nginx/
cd projects/nginx/
Ahora crea un nuevo archivo yaml para la configuración de nuestro despliegue.
vim nginx-deployment-service.yaml
Y pega las configuraciones de abajo.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
run: nginx-service
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
selector:
app: nginx
Guarda y sal.
Ahora crea el despliegue ejecutando el comando kubectl de abajo.
kubectl create -f nginx-deployment.yaml
Cuando esté completo, comprueba el despliegue de Kubernetes.
kubectl get deployments
kubectl describe deployments nginx-deployment
Y obtendrás el ‘nginx-deployment’ en la lista.
Ahora comprueba el servicio de Kubernetes.
kubectl get services
kubectl describe services nginx-service
Y verás que el NodePort ‘nginx-service’ se está ejecutando en el puerto ‘32274’.
Comprueba la IP del clúster de Kubernetes y accede a él mediante el comando curl.
minikube ip
curl -I http://192.168.39.49:32274/
Y obtendrás la respuesta del servidor web Nginx.
A continuación se muestra el resultado cuando accedemos desde el navegador web.
http://192.168.39.49:32274/
Paso 6 – Acceder al panel de control de Kubernetes
Minikube proporciona un comando para acceder al panel de control de Kubernetes que se ejecuta dentro del clúster de Minikube.
Ejecuta el siguiente comando.
minikube dashboard
El comando abrirá el panel de control de Kubernetes utilizando el navegador web por defecto del sistema.
A continuación se muestra el panel de control de Kubernetes.
La instalación de Kubenrnetes en el ordenador local Manjaro/Archlinux utilizando Minikube se ha completado con éxito.