istvano.microk8s

Rol de Ansible: microk8s

Rol para descargar e instalar microk8s, el K8s más pequeño, simple y puro para producción.

Requisitos

  • Ansible >= 2.7
  • Distribución de Linux
    • Familia Debian
      • Ubuntu
        • Xenial (16.04)
        • Bionic (18.04)
        • Focal (20.04) (no probado)
        • Jammy (22.04) (no probado)
    • Arch Linux (no probado)

Licencia

MIT

Uso

Variables del Rol

Algunas variables disponibles en este rol se enumeran aquí. El conjunto completo se define en [defaults/main.yml](defaults/main.yml).

  • microk8s_version: Versión a usar, por defecto es 1.27/stable.
  • microk8s_plugins: Activar/desactivar varios plugins. Se pasará una cadena como arg al habilitar un complemento usando name:arg.
  • microk8s_enable_HA: Habilitar/deshabilitar alta disponibilidad.
  • microk8s_group_HA: Grupo de hosts cuyos miembros formarán un clúster HA.
  • microk8s_group_WORKERS: Grupo de hosts cuyos miembros actuarán solo como nodos de trabajo (no se ejecutan componentes del plano de control aquí).
  • microk8s_csr_template: Si se define, se usará un CSR personalizado para generar certificados.

Ejemplo de playbook

- hosts: servers
  roles:
    - role: istvano.microk8s
      vars:
        microk8s_plugins:
          dns: "1.1.1.1"
          istio: true
          ingress: true

Nota: al sobrescribir la lista de plugins, se recomienda copiar y pegar toda la lista de plugins desde defaults/main.yml porque algunas tareas de Ansible las referencian (por ejemplo, helm3) y la implementación puede fallar.

Plantilla de solicitud de certificado personalizado

Puede ser útil personalizar la plantilla de solicitud de certificado utilizada por MicroK8s al generar certificados de clúster. Por ejemplo, se pueden agregar SANs adicionales a los certificados para que los certificados de MicroK8s se validen cuando se usen desde fuera del clúster, como a través de un proxy inverso.

Para generar una plantilla CSR, lo más fácil probablemente sea usar el rol sin una plantilla, y luego copiar el CSR en /var/snap/microk8s/current/certs/csr.conf.template a la carpeta de plantillas de su playbook, hacer las ediciones y configurar la variable microk8s_csr_template en consecuencia, y volver a ejecutar el playbook.

Agregar nodos solo de trabajo (solo 1.23+)

Es posible configurar nodos adicionales para actuar solo como trabajadores dentro de su clúster de microk8s. Esto se puede hacer configurando el grupo de hosts de ansible microk8s_WORKERS (el nombre del grupo se puede configurar a través de microk8s_group_WORKERS). Cada host listado en el grupo de hosts ejecutará esencialmente microk8s join .... --worker. Más información sobre esto se puede encontrar aquí: microk8s-clustering.

Pruebas

Usando el wrapper de Molecule y Python del sistema

  • ./moleculew lint
  • ./moleculew create
  • ./moleculew list
  • ./moleculew check
  • ./moleculew test

Usando entorno virtual de Python

  • Configurar el entorno virtual
    $ python3 -m venv venv
    
  • Activar el entorno
    $ . venv/bin/activate
    
  • Instalar Molecule con opciones de lint y Docker
    $ pip install 'molecule[lint,docker]'
    
  • Instalar el paquete Ansible actualizado si es necesario
    $ pip install ansible
    
  • Ejecutar los comandos de prueba:
    • molecule lint
    • molecule create
    • molecule list
    • molecule check
    • molecule test
Acerca del proyecto

Ansible role for installing and set-up microk8s.

Instalar
ansible-galaxy install istvano.microk8s
Licencia
mit
Descargas
31.6k
Propietario