création d'un cluster Kubernetes sur CentOS 7

Cloud Native Computing Foundation oeuvre pour l’incubation et l’éclosion de nouvelle génération de solution cloud tel que : Kubernetes , Prometheus , Calico et beaucoup de projets
Terminology
- Container : Les applications conteneurisées sont plus faciles à déplacer d’un environnement à un autre (développement, test, production, etc.). Dans une approche Microservices votre application est subdivisée en plusieurs containers et chaque container représente une partie de votre application qu’on peut dorénavant considérer comme une sous-application
- Pod : représente un ou plusieurs conteneurs qui sont étroitement liés et qui partagent des ressources (liés à la même sous-application)
- Container engine : gère le container et lui donne accès aux ressources souhaités ( Docker , CRI-O , containerd , podman , frakti … )
- Orchestration : dans une entreprise , nous sommes face à un ocean d’application. nous avons besoin d’orchestrateur afin d’automatiser le déploiement, le management, le networking, le scaling et la disponibilité des applications conteneurisées. on peut citer Nomad , Apache MESOS , Docker SWARM et bien sur Kubernetes

Préparation de l’environnement
Nous allons utiliser dans cet articles 04 VMs :
- 1x kubemaster : gestion du cluster Kubernetes
- 3x kubeworkers : exécution des PODs (containers)
VM | hostname | adresse IP | vCPU | vRAM |
---|---|---|---|---|
kubemaster | master.formini.local | 172.15.20.10 | 2 | 2048 MB |
kubeworker01 | worker01.formini.local | 172.15.20.101 | 1 | 1024 MB |
kubeworker02 | worker02.formini.local | 172.15.20.102 | 1 | 1024 MB |
kubeworker03 | worker03.formini.local | 172.15.20.103 | 1 | 1024 MB |
installation des prérequis
installation de Docker
Nous mettons à votre disposition un script shell sur github (install-docker.sh)
|
|
Ouvrez le compartiment ci-dessous décrivant step by step l’installation de Docker
|
|
installation de Kubernetes
Nous mettons à votre disposition un script shell sur github (install-kubernetes.sh)
|
|
Ouvrez le compartiment ci-dessous décrivant step by step l’installation de Kubernetes
|
|
Création du cluster Kubernetes
Maitenant que nous nous sommes assurer d’avoir installer sur les 04 VMs :
- docker-ce
- kubeadm
- kubelet
- kubectl
Nous allons entammer la création du cluster Kubernetes en (02) deux phases
initiation du cluster Kubernetes
nous allons initié notre cluster avec la commande :
|
|
les composants de kubernetes seront alors télécharger entant qu’image lors du preflight et déployer sur le master entant que POD (containers) :
- API Server
- etcd
- scheduller
- controller-manager
- kube-proxy
- coredns

copie du fichier admin.conf (API)
afin d’interoger l’API de votre cluster Kubernetes depuis cette VM , vous devez copier, dans le répertoire de travail de l’utilisateur courant ( root dans cet example ) , le fichier /etc/kubernetes/admin.conf
|
|
calico : le réseau des PODs
Nous allons installer la solution réseau calico avec la commande suivante :
|
|
les images et PODs de la solution réseau calico seront alors télécharger puis déployer , d’abords sur le master , puis automatiquement sur chauque worker des la jonction au cluster.
génération du token join cluster
Tout est prêt pour commencer la jonction des workers au cluster ❤️ Pour cela nous devons générer un token et l’utiliser sur chaque worker que nous souhaitons ajouter à notre cluster
|
|
voila que notre commande de génération du token vient de nous fournir une nouvelle commande à exécuter sur chaque worker

jonction des workers au cluster
désormais sur chaque worker , vous pouvez coller / exécuter la commande fournit précédement lors de la génération du token
|
|
une fois que vous joignez les worker au cluster, les PODs necessaires seront déployer automatiquement dans chauqe worker
Soyez patient, le temps que tout les PODs passe en READY 1/1 vous pouvez vérifier l’état des PODs avec la commande
|
|

et voila notre cluster Kubernetes est enfin prêt ❤️
|
|
déployer votre 1er POD
Apres tous ce magnifique travail, vous méritez bien de déployer votre premier POD
création d’un manifest
nous mettons à votre disposition ce manifest sur github (nginx.yaml)
|
|
déploiment du POD
une fois que vous avez créer le fichier manifest en language YAML
(n’utiliser pas de tabulation) afin de décrire votre desired state , vous pouvez désormais créer votre premier avec la commande suivante :
|
|

Automate with vagrant
pour votre confort, nous mettons à votre disposition sur github le repository
(kubernetes-init-join-vagrant) permetant d’automatiser le processus de bout en bout ❤️ :
- création des 04 VMs
- configuration des 04 VMs
- installation des prérequis
- construction d’un serveur / client NFS (pour l’échange de token de jonction)
- initiation du cluster Kubernetes sur le master
- installation de calico sur le master
- generation du token dans un fichier /root/.kube/join-kube-cluster.sh
- envoie du token vers les workers en utilisant le serveur NFS
- jonction automatique des workers au cluster Kubernetes
tout cela en 03 commandes :
|
|
Aussi, je vous invites à vous abonner à nos réseaux sociaux: