GitOps
Github repository where I manage my labs.
Clusters
Cloud
Node | Type | IP | OS | RAM | Cores | Architecture | Notes |
---|---|---|---|---|---|---|---|
talos-0ya-z8j | Control-plane | 192.168.128.10 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
talos-4n2-efl | Control-plane | 192.168.128.91 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
talos-th0-iv8 | Control-plane | 192.168.128.37 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
talos-i2b-uua | Worker | 192.168.128.114 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
talos-jmc-u9l | Worker | 192.168.128.106 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
talos-v1m-53q | Worker | 192.168.128.100 | Talos v1.6.0 | 3 Go | 2 | Amd64 |
Home
Version Talos
Pour un déploiement baremetal, j'ai choisi d'utiliser Talos. Talos est un système d'exploitation pour Kubernetes. Il est conçu pour être sécurisé par défaut, simplifier les opérations et être facilement extensible.
La configuration de Talos est gérée par des fichiers YAML dans le répertoire talos
. Pour déployer Talos, il suffit de lancer la commande suivante :
cd talos/
CONTROLPLANE=("192.168.128.10" "192.168.128.91" "192.168.128.37")
for node in $CONTROLPLANE; do
talosctl apply-config --insecure -n $node -e $node --file controlplane.yaml
done
WORKER=("192.168.128.100" "192.168.128.106" "192.168.128.114")
for node in $WORKER; do
talosctl apply-config --insecure -n $node -e $node --file worker.yaml
done
Les fichiers de configuration de Talos vont également installer Cilium.
Version Packer/Terraform
Je dispose de plusieurs machines virtuelles sur lesquelles je souhaite déployer un cluster Kubernetes. Pour cela, j'ai décidé d'utiliser Terraform pour déployer l'infrastructure, Packer pour créer les images, Ansible pour provisionner les machines et Flux pour déployer les applications.
Dépendances
- terraform
- sops (facultatif)
- pre-commit (facultatif)
- yq
- taskfile
- j2cli
- flux (cli)
Démarrer le projet
Les différentes étapes de l'installation sont gérées par Taskfile. Il suffit donc de lancer la commande suivante :
task general:all
Je vous invite à suivre la documentation du projet ici pour installer les dépendances et créer le fichier de configuration.