Terraform, vSphere, et cluster K8S
P’tit cluster K8S via Kubeadm~
Continuité du précédent article où nous avions déployé un template d’Ubuntu Server 24.04 via Packer, ici nous allons utiliser Terraform (et toujours via DevContainer/VSCode) pour cloner ce template en plusieurs VMs et les provisionner afin d’ensuite en faire notre cluster Kubernetes !
Une impression de déjà vu, cela dit… 😁
I) Le labo~
Rien de très compliqué : on repart donc comme dit plus haut sur notre petite VM Windows 10 sur VMware Workstation, dans laquelle nous allons ouvrir notre projet qui utilisera un Devcontainer pour setup VSCode, puis un Dockerfile qui utilisera Terraform. Ensuite, on a notre fichier main.tf, quelques fichiers de variables, et un simple script bash permettant de préparer nos futurs noeuds en installant Docker et tout le tralala !
II) L’arborescence et les différents fichiers
Alors étant donné que le fichier principal, à savoir main.tf est plutôt bien décrit, je ne vais pas m’étayer dessus. Idem concernant le fichier Dockerfile ou autre, car j’en ai déjà parlé lors du précédent article 😉.
Nous avons donc :
- Notre folder .devcontainer, avec à l’intérieur notre devcontainer.json, classique ;
- Notre fichier Dockerfile, qui utilise directement l’image Terraform, contrairement à Packer où je partais d’une Alpine « brute » ;
- Un folder scripts, avec un petit Bash permettant de préparer nos VMs à devenir des nœuds pour Kubernetes (swapoff, installation de Docker, installation de kubeadm/kubelet/kubectl…) ;
- Un fichier .gitignore, avec le fichier secret et les fichiers tfstate à l’intérieur ;
- Notre fichier main, qui décrit l’environnement vSphere et qui indique le clonage de notre template, avec come spécifité de venir chercher le(s) hostname(s) et adresse(s) IP via le fichier vm_config.auto.tfvars ;
- Nos deux fichiers de variables, avec le radical auto pour être directement pris lors du terraform apply ;
- Le fameux fichier de variables propres aux clones. A l’intérieur indiquez les hostnames et IPs voulus ;
Comme pour Packer, le tout est dispo’ sur mon Github : https://github.com/IT-Anthony/K8S-terraform-vsphere8 🫡
III) Conclusion
Ceci conclut donc cette « mini-série » sur la création d’un template Ubuntu Server 24.04, avec son déploiement via Terraform ! Maintenant les prochaines étapes seront :
- Utiliser kubeadm pour mettre en place notre cluster fraîchement installé ;
- S’amuser avec les Helmcharts, les Ingress Controller (retour de Traefik…?), Harbor… ;
- Réaliser quelques pipelines CI/CD avec Gitlab histoire d’automatiser encore et toujours et d’approfondir mes connaissances sur le DevOps ;
Et bien sur ce, je n’ai plus qu’à vous souhaiter encore et toujours une bonne journée/soirée, et vous remercie d’avoir pris le temps de lire mon article !
A la revoyure !
Laisser un commentaire