Skip to content

qjoly/GitOps

Repository files navigation

Helm LOGO
Typing SVG

Blog Kubernetes Linux

GitOps

Github for cluster administration.

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

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

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.

LICENSE

License