istvano.microk8s
Rôle Ansible : microk8s
Rôle pour télécharger et installer microk8s, le plus petit et le plus simple K8s pur pour la production.
Exigences
- Ansible >= 2.7
- Distribution Linux
- Famille Debian
- Ubuntu
- Xenial (16.04)
- Bionic (18.04)
- Focal (20.04) (non testé)
- Jammy (22.04) (non testé)
- Ubuntu
- Arch Linux (non testé)
- Famille Debian
Licence
MIT
Utilisation
Variables du rôle
Voici quelques variables disponibles dans ce rôle. L'ensemble complet est
défini dans [defaults/main.yml](defaults/main.yml)
.
microk8s_version
: Version à utiliser, par défaut1.27/stable
.microk8s_plugins
: Activer/désactiver divers plugins. Une chaîne sera passée en tant qu'arg
lors de l'activation de l'addon avecname:arg
.microk8s_enable_HA
: Activer/désactiver la haute disponibilité.microk8s_group_HA
: Groupe d'hôtes dont les membres formeront un cluster HA.microk8s_group_WORKERS
: Groupe d'hôtes dont les membres agiront uniquement en tant que nœuds de travail (aucun composant de plan de contrôle ne s'exécute ici).microk8s_csr_template
: Si défini, provoquera l'utilisation d'une CSR personnalisée pour générer des certificats.
Playbook de base
- hosts: servers
roles:
- role: istvano.microk8s
vars:
microk8s_plugins:
dns: "1.1.1.1"
istio: true
ingress: true
Remarque : lors de la substitution de la liste des plugins, il est recommandé de copier-coller l'ensemble de la liste des plugins depuis le
defaults/main.yml
parce que certaines tâches Ansible s'y réfèrent (par exemple helm3
) et le déploiement peut échouer.
Modèle de demande de certificat personnalisé
Il peut être utile de personnaliser le modèle de demande de certificat utilisé par MicroK8s pour générer des certificats de cluster. Par exemple, des SANs supplémentaires peuvent être ajoutés aux certificats afin que les certificats MicroK8s soient validés lorsqu'ils sont adressés depuis l'extérieur du cluster, par exemple via un proxy inverse.
Pour générer un modèle CSR, le plus simple est probablement d'utiliser le rôle sans
modèle, puis de copier la CSR dans
/var/snap/microk8s/current/certs/csr.conf.template
dans le répertoire des modèles de votre playbook, d'effectuer les modifications et de définir la variable microk8s_csr_template
en conséquence, puis de relancer le playbook.
Ajouter des nœuds uniquement travailleurs (uniquement pour 1.23+)
Il est possible de configurer des nœuds supplémentaires pour agir uniquement comme des travailleurs au sein de votre cluster microk8s. Cela est possible en configurant le groupe d'hôtes Ansible microk8s_WORKERS
(le nom du groupe est configurable via microk8s_group_WORKERS
). Chaque hôte dans le groupe d'hôtes exécutera essentiellement microk8s join .... --worker
, plus d'informations à ce sujet peuvent être trouvées ici : microk8s-clustering.
Tests
Utilisation du wrapper Molecule et Python système
./moleculew lint
./moleculew create
./moleculew list
./moleculew check
./moleculew test
Utilisation d'un environnement virtuel Python
- Configurer l'environnement virtuel
$ python3 -m venv venv
- Activer l'environnement
$ . venv/bin/activate
- Installer Molecule avec les options lint et Docker
$ pip install 'molecule[lint,docker]'
- Installer le paquet Ansible à jour si nécessaire
$ pip install ansible
- Exécuter les commandes de test :
molecule lint
molecule create
molecule list
molecule check
molecule test
ansible-galaxy install istvano.microk8s