You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Grégory Lebreton 91473ac83f | 10 months ago | |
---|---|---|
configs | 10 months ago | |
kubernetes | 10 months ago | |
scripts | 10 months ago | |
stack | 10 months ago | |
.gitignore | 11 months ago | |
README.md | 10 months ago | |
Vagrantfile | 11 months ago | |
settings.yaml | 10 months ago |
README.md
Kubernetes cluster avec Vagrant
Pré requis
Install Vagrant
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update -y && sudo apt install vagrant -y
config Virtualbox
sudo mkdir -p /etc/vbox/
echo "* 0.0.0.0/0 ::/0" | sudo tee -a /etc/vbox/networks.conf
Créer cluster 🔨
vagrant up
☕ Laisser le temps à Vagrant de construire les machines ⌚ 5 - 10 min approximativement
Kube config
cp configs/config ~/.kube/
On récupère la config du master pour intéragir directement avec la commande kubectl
Déployer app 🚀
kubectl apply -f kubernetes/devops.yml
- commandes utiles:
kubectl get nodes -o wide
kubectl get svc
kubectl get all
Load balancer
- Installation de metallb:
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
Cette config convient pour créer des services de load-balancer pour les cluster bare metal (non cloud)
doc: https://metallb.universe.tf/installation/
- Appliquer les configs pour metallb:
kubectl apply -f kubernetes/ipaddresspool.yml
kubectl apply -f kubernetes/l2advertisement.yml
Définit les adresses IP utilisées par les services exposant les applicatons
- Modifier son fichier /etc/hosts:
echo '10.0.0.50 k8s.exemple' | sudo tee -a /etc/hosts
Dashboard
- Obtenir un jeton pour s'authentifier à la dashboard:
kubectl -n kubernetes-dashboard get secret/admin-user -o go-template="{{.data.token | base64decode}}"
kubectl proxy
Adresse de la dashboard: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=kubernetes-dashboard
copier le jeton pour accéder à la dashboard