Vous êtes sur la page 1sur 5

- Installation et prise en main

Installation de minikube
Sur une machine Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Sur une machine MS Windows


En utilisant le gestionnaire de paquets Windows (winget)
winget install minikube

Vérification de l'installation
minikube version

Démarrer et contrôler l'état et le fonctionnement du Cluster


alias kubectl="minikube kubectl --"← Permet d’utiliser la commande ‘kubectl’
intéressant à ajouter en fin du fichier ‘.bashrc’
minikube start
minikube status
kubectl version
kubectl cluster-info
kubectl config view

Commandes d'analyses et de vérification


kubectl get pods -A
kubectl get componentstatuses
kubectl get nodes -A
kubectl describe node 'nom_du_node'
kubectl get daemonsets -o wide -A
kubectl get deployments -o wide -A

Lancement du tableau de bord


minikube addons enable metrics-server
minikube dashboard ← lance un navigateur web sur le ‘dashboard’

minikube v230202 Jean GAUTIER


Déployer une application

Créer un déploiement simple d'un service, exposé sur le port réseau 8080
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080

Après un moment, le déploiement doit être visible avec la commande :


kubectl get services hello-minikube

Il est possible d’accéder à ce service en demandant à minikube de lancer un navigateur WEB


minikube service hello-minikube

On peut également établir une redirection de port avec 'kubectl'


kubectl port-forward service/hello-minikube 1080:8080
et ainsi accéder à l'application via une requête : http://localhost:1080/

Mettre en place un 'LoadBalancer'

La commande de déploiement 'minikube tunnel' permet de mettre en place un 'Load-Balancer'


kubectl create deployment balanced --image=kicbase/echo-server:1.0
kubectl expose deployment balanced --type=LoadBalancer --port=8080

Dans une deuxième fenêtre, on démarre le tunnel afin de créer une IP routable vers le service
minikube tunnel

Pour déterminer l'adresse IP, examiner la colonne,e 'External-IP' avec la commande :


kubectl get services balanced
➔ le déploiement est alors accessible via l'adresse IP et le port 8080

Ajouter un addon 'ingress'

minikube addons enable ingress

minikube v230202 Jean GAUTIER


Exemple de création d'un service 'echo-server' associé à un objet 'Ingress' permettant l’accès au service

kind: Pod
apiVersion: v1
metadata:
name: foo-app
labels:
app: foo
spec:
containers:
- name: foo-app
image: 'kicbase/echo-server:1.0'
---
kind: Service
apiVersion: v1
metadata:
name: foo-service
spec:
selector:
app: foo
ports:
- port: 8080
---
kind: Pod
apiVersion: v1
metadata:
name: bar-app
labels:
app: bar
spec:
containers:
- name: bar-app
image: 'kicbase/echo-server:1.0'
---
kind: Service
apiVersion: v1
metadata:
name: bar-service
spec:
selector:
app: bar
ports:
- port: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- http:
paths:
- pathType: Prefix
path: /foo
backend:
service:
name: foo-service
Intégration du déploiement au cluster
port:
kubectl apply -f https://storage.googleapis.com/minikube-site-examples/ingress-example.yaml
number: 8080
- pathType: Prefix
path: /bar Peu de temps après, on doit pouvoir visualiser l'objet ingress
backend:
service: kubectl get ingress
name: bar-service
port: NAME CLASS HOSTS ADDRESS PORTS AGE
number: 8080 example-ingress nginx * 192.168.49.5 80 5m45s
---

minikube v230202 Jean GAUTIER


Gestion simple du cluster
Toute la doc est ici

Parcourir la liste des services Kubernetes : minikube addons list


Démarrer le cluster : minikube start
Stopper le cluster : minikube stop
Mettre Kubernetes en pause : minikube pause
Reprendre l’exécution : minikube unpause
Lancer le tableau de bord du cluster : minikube dashboard
Mettre à jour le cluster : minikube start --kubernetes-version=latest
Supprimer tous les clusters minikube : minikube delete --all

minikube v230202 Jean GAUTIER


Fichier permettant de déployer l'application nginx

Fichier nginx.yml
apiVersion: v1
kind: Service
metadata:
name: nginx-project
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: nginx-project
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-project
spec:
replicas: 4
selector:
matchLabels:
app: nginx-project
template:
metadata:
labels:
app: nginx-project
spec:
containers:
- name: nginx
image: nginx:1.17.3
ports:
- containerPort: 80

minikube v230202 Jean GAUTIER

Vous aimerez peut-être aussi