# Kubernetes

Kubernetes est un système open source qui vise à fournir une « plate-forme permettant d'automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d'application sur des grappes de serveurs »

# Introduction

Kubernetes est un système open source qui vise à fournir une « plate-forme permettant d'automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d'application sur des grappes de serveurs »

# Installation

Il est intéressant d'installer Minikube afin de lancer kubernetes dans une machine virtuelle, [à trouver ici](https://minikube.sigs.k8s.io/docs/start/).

```shell
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

minikube start
```

Minikube doit ensuite installer kubectl qui est un client en ligne de commande permettant de contrôler le cluster kubernetes:

```shell
minikube kubectl -- get po -A
alias kubectl="minikube kubectl --"
```

On peut déployer une application de test pour vérifier le fonctionnement de Minikube et kubectl. Ici, on créé un conteneur de déploiement appelé `hello-minikube` ayant pour image docker `kicbase/echo-server:1.0` que l'on expose au port `8080`

```shell
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
```

Il peut aussi être utile de faire une redirection de port, du `8080` au `7080` par exemple, pour y accéder à l'adresse `http://localhost:7080`

```shell
kubectl port-forward service/hello-minikube 7080:8080
```

Une fois créé, on peut lister le service et le démarrer.

```shell
kubectl get services hello-minikube
minikube service hello-minikube
```

Il est possible d'obtenir un dashboard des différents services et containers lancés.

```
minikube dashboard
```

Et supprimer un conteneur.

```
minikube kubectl -- delete deployment hello-minikube
```

# Présentation

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/lxdimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/lxdimage-png.png)

# Qu’est-ce que Kubernetes ?

**Kubernetes** est une plateforme open source conçue pour automatiser le déploiement, la gestion et la mise à l’échelle des applications contenurisées. En d’autres termes, c’est un système qui aide à organiser et faire fonctionner plusieurs applications dans des **conteneurs**, comme ceux créés avec Docker.

Il est largement utilisé dans les environnements professionnels pour gérer des infrastructures complexes et assurer la disponibilité des services.

# À quoi sert Kubernetes ?

Kubernetes permet de gérer des applications composées de plusieurs conteneurs répartis sur différents serveurs. Il facilite la distribution automatique des charges, la surveillance des applications, et la réparation automatique en cas de problème.

Cette plateforme s’assure que les applications restent disponibles, même si un serveur tombe en panne, et permet de faire évoluer facilement la capacité selon le besoin.

# Comment fonctionne Kubernetes ?

Kubernetes fonctionne grâce à un ensemble de composants qui communiquent ensemble. Un **cluster Kubernetes** est composé d’un ou plusieurs **nœuds** (serveurs) où sont déployés les conteneurs.

Une machine appelée **master** (ou control plane) coordonne le cluster, gère l’état des applications et prend les décisions pour assurer leur bon fonctionnement.

Les applications sont organisées en unités appelées **pods**, qui contiennent un ou plusieurs conteneurs. Kubernetes orchestre la création, la suppression, et la mise à jour de ces pods automatiquement.

# Pourquoi utiliser Kubernetes ?

Kubernetes offre plusieurs avantages majeurs : il automatise la gestion des applications, réduit les temps d’indisponibilité, et simplifie le déploiement de nouvelles versions.

Grâce à Kubernetes, on peut déployer des applications de manière fiable, les faire évoluer sans interruption, et gérer efficacement les ressources informatiques.

Il permet aussi une meilleure portabilité, car il fonctionne avec de nombreux fournisseurs cloud ou en local.

# Cas d’usage typiques

Kubernetes est utilisé pour :

- Héberger des applications web distribuées,
- Gérer des microservices indépendants,
- Déployer rapidement des mises à jour,
- Garantir la haute disponibilité des services critiques,
- Optimiser l’utilisation des serveurs dans les centres de données.

# Installation rapide

Installer Kubernetes peut être complexe. Pour commencer, on peut utiliser des outils comme **Minikube** ou **K3s**, qui permettent de déployer un cluster Kubernetes simple sur un poste local pour des tests.

En production, Kubernetes nécessite plusieurs machines et une configuration plus avancée.

# En résumé

**Kubernetes** est une plateforme puissante pour orchestrer les applications conteneurisées. Elle simplifie la gestion, le déploiement et la scalabilité des services dans des environnements variés, du poste local au cloud.