Github for cluster administration.
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 |
Node | Type | IP | OS | RAM | Cores | Architecture | Notes |
---|---|---|---|---|---|---|---|
talos-0ya-z8j | Control-plane | 192.168.1.203 | Talos v1.5.5 | 4 Go | 4 | Arm64 | |
talos-4n2-efl | Control-plane | 192.168.1.204 | Talos v1.5.5 | 4 Go | 4 | Arm64 | |
talos-th0-iv8 | Control-plane | 192.168.1.205 | Talos v1.5.5 | 4 Go | 4 | Arm64 | |
talos-i2b-uua | Worker | 192.168.1.34 | Talos v1.6.0 | 3 Go | 2 | Amd64 |
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.
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.- terraform
- sops (facultatif)
- pre-commit (facultatif)
- yq
- taskfile
- j2cli
- flux (cli)
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.