Ce repo est la partie Helm pour avoir un déploiement plus simple et plus rapide
Le repo de base et où tout se lance à la mano est ici : https://github.com/Louispautasso/kube-groupe4
La registry docker pour l'ensemble (ou presque) des images utilisé dans ce projet :https://hub.docker.com/orgs/groupe4ynov/repositories
Ce projet a été créer dans le but de fonctionner sur un Cluster Kubernetes. Ce cluster pourra être installer sur un cloud provider comme sur un cluster kube local.
Il va falloir installer helm sur le cluster Kube https://helm.sh/docs/intro/install/
Puis nous allons ajouter un controller d'ingress, pour cela, nous allons utiliser Nginx On commence par créer son propre namespace
kubectl create namespace ingress-projet
On ajoute le repo ingress-nginx et on le met à jour
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
Puis on install le controller Ingress
helm install nginx-ingress ingress-nginx/ingress-nginx --namespace ingress-projet
Enfin, on clone le repo git et on se place dedans pour la suite
git clone git@github.com:Louispautasso/kube-ynov.git
cd kube-ynov
On commence par créer son namespace
kubectl create namespace projet
On install le certificat auto-signé
kubectl create secret tls projet-1 --cert certificats/projet-1.crt --key certificats/projet-1.key
Puis on installe l'ensemble du projet via la commande helm
helm install projet ./helm-charts/projet --namespace projet
Ajouter le vhost dans le fichier /etc/hosts avec l'ip de votre ingress
20.74.17.236 siteweb.example.com
On commence par créer son namespace
kubectl create namespace monitoring
Puis on ajoute le repo helm et on l'update
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
Puis on lance l'installation du Chart Helm avec notre fichier de valeurs et dans le namespace qu'on souhaite
helm install prometheus prometheus-community/kube-prometheus-stack -f helm-charts/prometheus/values.yml --namespace monitoring
Ajouter le vhost dans le fichier /etc/hosts avec l'ip de votre ingress
20.74.17.236 grafana.example.com
On commence par créer son namespace
kubectl create namespace kube-logging
Puis on lance l'installation du Chart Helm d'ElasticSearch dans le namespace kube-logging
helm install efk ./helm-charts/efk --namespace kube-logging
On lance l'installation du Chart Helm d'ElasticSearch dans le namespace kube-logging
helm install elasticsearch ./helm-charts/elasticsearch --namespace kube-logging
Puis on lance l'installation du Chart Helm de Kibana dans le namespace kube-logging
helm install kibana ./helm-charts/kibana --namespace kube-logging
Puis on lance l'installation du Chart Helm de Fluentd dans le namespace kube-logging
helm install fluentd ./helm-charts/fluentd --namespace kube-logging
Ajouter le vhost dans le fichier /etc/hosts avec l'ip de votre ingress
20.74.17.236 kibana.example.com
Voir les releases qui tournent actuellement et les supprimer
helm list -A
helm uninstall <release_name> -n <namespace>
Se connecter à son cluster Azure
az aks get-credentials --resource-group groupe4 --name clus4
Utilisation des contexts
kubectl config get-contexts
kubectl config use-context
Création de la partie monitoring des metrics avec Prometheus
https://medium.com/codex/setup-kuberhealthy-with-prometheus-and-grafana-on-minikube-b2f6da21dc2e
Création des sondes de vivacité et de préparation
https://linuxintosh.wordpress.com/2020/12/28/k8s-les-differents-types-de-sondes/
Création des règles d'affinités
https://docs.openshift.com/container-platform/3.6/admin_guide/scheduling/pod_affinity.html
https://stackoverflow.com/questions/62292476/deployment-affinity
Création de la partie monitoring des logs avec EFK + pas mal de recherche pour des petits bug
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-elasticsearch-fluentd-and-kibana-efk-logging-stack-on-kubernetes#step-2-%E2%80%94-creating-the-elasticsearch-statefulset
Florian Agnès and Louis Pauatasso les proprios.
C'est à nous