A ne pas reproduire en Production !!!
L'objectif de ce cours, est de mettre à disposition des utilisateurs un environnement de développement local utilisant les memes ressources qu'un cluster kubernetes de pre-prod/prod. C'est à dire dans notre cas avec l'utilisation de traefik comme Ingress Controllers. Ainsi tout les environnements de travail ont la meme base commune, ce qui facilite la migration entre ceux-ci.
Attention: Kind nécessite la présence de Docker sur son PC:
Pour suivre ce cours, vous aurez besoin d'un cluster kubernetes. Vous pouvez en créer un en utilisant kind. Vous aurez également besoin d'installer le kubectl CLI pour votre distribution.
Pour créer notre cluster kubernetes, nous devons taper la commande suivante:
kind create cluster --config config.yaml
Afin de vérifier que tout fonctionne, taper la commande:
kubectl get nodes
- Installation des
Ressources Definition
:
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
- Installation du RBAC pour Traefik:
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-rbac.yml
- Installation du Service Account:
kubectl apply -f traefik/traefik-service-account.yaml
- Installation du Secret contenant les informations du certificat SSL encodé en base64:
kubectl apply -f traefik/traefik-secret.yaml
- Installation du Service pour Trefik:
kubectl apply -f traefik/traefik-svc.yaml
- Installation du ConfigMap contenant la configuration de Traefik:
kubectl apply -f traefik/traefik-configmap.yaml
- Installation du DaemonSet:
kubectl apply -f traefik/traefik-ds.yaml
- Installation de l'Ingress permettant d'accéder au Dashboard de Traefik:
kubectl apply -f traefik/traefik-ingress.yaml
- Vérifier que le pod Traefik est bien en état
Running
kubectl get pods
La création de ce pod de démo à pour objectif de permettre la compréhension de comment exposer ses pods avec Traefik.
- Installation de Nginx en tant que Deployments:
kubectl apply -f nginx/nginx-dp.yaml
- Installation du Service(https://kubernetes.io/docs/concepts/services-networking/service/):
kubectl apply -f nginx/nginx-svc.yaml
- Installation de l'Ingress pour nginx:
kubectl apply -f nginx/nginx-ingress.yaml
- Il faut avant tout éditer son fichier
hosts
afin de pouvoir accéder aux différents services. Pour Windows [Pour Mac/Linux] =>sudo nano /etc/hosts
Mettre les informations suivantes:
127.0.0.1 traefik.local
127.0.0.1 nginx.local
- Pour accéder au Dashboard de Traefik =>
https://traefik.local
- Pour accéder au Nginx =>
http://nginx.local
ouhttps://nginx.local
- Pour supprimer le cluster:
kind delete cluster --name=dev-k8s