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

  1. Instalar las dependencias de los paquetes
  2. Instalar Docker-machine y el controlador KVM2
  3. Instalar Minikube y Kubectl
  4. Inicialización de Kubernetes con Minikube
  5. Probar el despliegue
  6. 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

Instalar el software Requisitos previos

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.

iniciar libvirtd

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.

Instalar Docker-Machine y el controlador KVM2

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

Instalar Minikube y Kubectl

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.

Inicialización de Kubernetes con Minikube

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.

Estado del minicubo

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

Crear un despliegue de Nginx

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.

Comprobar el despliegue

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 el servicio nginx

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.

Comprueba la IP de Minikube

A continuación se muestra el resultado cuando accedemos desde el navegador web.

http://192.168.39.49:32274/

Página de prueba

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.

Panel de control de Kubernetes

La instalación de Kubenrnetes en el ordenador local Manjaro/Archlinux utilizando Minikube se ha completado con éxito.

Referencia

https://kubernetes.io/docs/setup/minikube/

También te podría gustar...