Microk8s en Ubuntu 20.04 LTS minimal.

¿Qué es Microk8s?

MicroK8s  ofrece una forma rápida y eficiente de poder desplegar Kubernetes en cuestión de segundos.

MicroK8s se entrega como un paquete de acoplamiento único que se puede instalar en 42 versiones diferentes de Linux.

Con un pequeño espacio en disco y memoria, MicroK8s proporciona una manera eficiente de empezar a usar Kubernetes, ya sea en el escritorio, en el servidor, en una nube o en dispositivos IoT.

Beneficios:

Se incluyen actualizaciones automáticas y funciones de seguridad.

Las actualizaciones automáticas garantizan que los desarrolladores estén siempre trabajando desde las últimas

versiones de Kubernetes con binarios entregados directamente de la fuente y configurados en segundos.

La ejecución de la versión más reciente también significa que MicroK8s se beneficia de las capacidades de

seguridad integradas de Kubernetes.

Para acelerar aún más la adopción de Kubernetes y simplificar los escenarios de desarrollador comunes,

MicroK8s incluye un número creciente de servicios complementarios.

De los cuales se incluyen:

  1. Un registro de contenedor
  2. El almacenamiento y el paso de permitir GPGPU (General-purpose computing on graphics processing units) nativa todos habilitados con un solo comando.
  3. Para los científicos de datos e ingenieros de aprendizaje de máquina, la capacitación del GPGPU simplifica la adición de aceleración de hardware a sus flujos de trabajo de aprendizaje de máquina.

Los casos clave de uso que facilita MicroK8 incluyen:

  1. Kubernetes integrados y de actualización automática para potenciar las aplicaciones de IoT.
  2. Configure un canal de CI / CD localmente en unos pocos pasos.
  3. Instalar rápidamente Kubernetes desechables como parte de su producción CI / CD pipeline.
  4. Implementar aplicaciones de un solo nodo en un servidor escalado.
  5. Crear un registro local de contenedores compatibles con OCI para almacenar en caché los contenedores más utilizados.
  6. Experimenta con proyectos CNCF Trail Map de forma fácil y rápida.
  7. Acelere el aprendizaje y modelado de aprendizaje automático con el soporte de GPU.
  8. Implementaciones de Kubeflow: el kit de herramientas de código abierto de ML para Kubernetes.

Instalación y configuración:

Se pueden instalar en 3 SO, Linux sin necesidad de usar un hypervisor, o en MAC y Windows, donde sí es necesario usar hypervisores como VirtualBox, Vagrant, Hyper-V, etc…

  1. Ctrl + Alt + T
  2. Para identificar la versión del sistema operativo:  sudo lsb_release -a
  3. Install the microk8s snap :sudo snap install microk8s –classic –channel=1.18/stable (o lo dejan hasta –classic y éste toma la última versión.
  4. Puede usted ejecutar: microk8s kubectl get all –all-namespaces para verificar qué existe luego de esta instalación-
  5. Vamos  a habilitar el Dashboard que incluye otros servicios como Grafana y influxdb (Grafana es una solución de código abierto multiplataforma para ejecutar análisis de datos, extraer métricas que tienen sentido de la gran cantidad de datos y monitorear aplicaciones a través de paneles personalizables) e InfluxBD (InfluxDB es una base de datos de series de tiempo abierto desarrollada por InfluxData. Está escrito en Go y optimizado para el almacenamiento rápido y de alta disponibilidad y la recuperación de datos de series de tiempo en campos como monitoreo de operaciones, métricas de aplicaciones, datos de sensores de Internet de las cosas y análisis en tiempo real): microk8s enable dashboard dns
  6. Luego de la habilitar el servicios, vamos a necesitar el token que se encuentra en el un «secret» dentro del «kube-system», sería el «default-token», ejecutando:
    1. microk8s kubectl -n kube-system get secret | grep default-token
    2. microk8s kubectl -n kube-system describe secret default-token-xxxx
  1. kubectl get all –all-namespaces
  2. https://10.152.183.xxx
  1. Opción «Token» y colocar el token copiado.
  2. Ya podremos ver el «Dashboard».
  3. Para ver la información del cluster: microk8s kubectl cluster-info .
  4. Se podrán ver varios link, como «Grafana» por ejemplo, hacemos clic sobre el, nos va a solicitar user and password
  5. Para ver datos, hay que ejecutar: microk8s config.
  6. Ahora vamos a trabajar directamente con nuestro microk8s:
    1. Vamos a crear un pod, lo vamos a escalar manualmente, vamos a eliminarlos, crearemos un servicios y lo vamos a exponer:
      1. microk8s kubectl create deployment microbot–image=dontrebootme/microbot:v1
      2. microk8s kubectl scale deployment microbot –replicas=2
      3. microk8s kubectl get all
      4. microk8s kubectl scale deployment microbot –replicas=3
      5. microk8s kubectl delete podname
      6. microk8s kubectl get all (ver que el nuevo pod tiene un nombre diferente.
      7. microk8s kubectl expose deployment microbot –type=NodePort –port=80 –name=microbot-service
        1. Existen 4 tipos de opciones para exponer:
          1. NodePort: Estará el servicio en cada nodo y para llegar a el se requiere el puerto y la ip del nodo y el puerto asignado.
          2. ClusterIP: Dentro del Cluster, este el  servicetype predeterminado.
          3. LoadBalancer: Expone el servicio externamente a través de un LB de un cloud provider, El NodePort y ClusterIP se crean automáticamente para trabajar en conjunto
          4. Externalname: Asigna el Servicio al contenido del campo externalname  (por ejemplo foo.bar.example.com), devolviendo un registro CNAME. Con este valor no se configura ningún proxy de ningún tipo.
      1. Acceder a la ip del servicio con el puerto: http://localhost:XXXX
      2. Hacer la prueba de que se puede acceder al servicio web desde cualquiera de los 3 pod en HA.
    2. Para detener todo el microk8s: microk8s stop
    3. Para eliminar todo el servicio del SO: microk8s reset

Acerca de Néstor Reverón

Cloud Instructor
Esta entrada fue publicada en IT. Guarda el enlace permanente.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.