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)
- Ubuntu
- Arch Linux (no probado)
- Familia Debian
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 es1.27/stable
.microk8s_plugins
: Activar/desactivar varios plugins. Se pasará una cadena comoarg
al habilitar un complemento usandoname: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
Ansible role for installing and set-up microk8s.
ansible-galaxy install istvano.microk8s