Skip to content

Commit

Permalink
images
Browse files Browse the repository at this point in the history
  • Loading branch information
herveleclerc committed Sep 17, 2024
1 parent 7f9345a commit afcded0
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 28 deletions.
50 changes: 25 additions & 25 deletions cours/containers/kubernetes/k8s-core-api-objects.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
- Cronjobs
- Services

### Kubernetes : Namespaces
### Kubernetes : `Namespaces`

- Fournissent une séparation logique des ressources :
- Par utilisateurs
Expand All @@ -25,7 +25,7 @@
- Défaut: Le namespace `default` existe par défaut dans chaque cluster Kubernetes.


### Kubernetes : Labels
### Kubernetes : `Labels`

- Système de clé/valeur
- Organisent, filtrent, selectionnent les différents objets de Kubernetes (Pods, RC, Services, etc.) d'une manière cohérente qui reflète la structure de l'application
Expand All @@ -40,7 +40,7 @@
- Multiples: Un objet peut avoir plusieurs labels.


### Kubernetes : Labels
### Kubernetes : `Labels`

- Exemple de label :

Expand All @@ -59,7 +59,7 @@ spec:
- containerPort: 80
```
### Kubernetes : Labels
### Kubernetes : `Labels`

- La commande `kubectl get pods`, par défaut, ne liste pas les labels.

Expand Down Expand Up @@ -100,7 +100,7 @@ kubectl get po -A -l k8s-app!=kube-dns
```

### Kubernetes : Annotations
### Kubernetes : `Annotations`

- Système de clé/valeur
- Ce sont des informations qui ne sont pas utilisées pour l'identification de ressources.
Expand All @@ -112,7 +112,7 @@ kubectl get po -A -l k8s-app!=kube-dns
- Mutables: Les annotations peuvent être modifiées après la création de l'objet.
- Multiples: Un objet peut avoir plusieurs annotations.

### Kubernetes : Annotations
### Kubernetes : `Annotations`

- exemple d'annotation

Expand All @@ -138,7 +138,7 @@ spec:
port:
```

### Kubernetes : Pod
### Kubernetes : `Pod`

- Un Pod n'est pas un processus, c'est un environnement pour les containers
- Un pod ne peut pas être redémarré
Expand All @@ -158,7 +158,7 @@ En savoir plus : <https://kubernetes.io/fr/docs/concepts/workloads/pods/pod/>



### Kubernetes : Pod
### Kubernetes : `Pod`

![pods](images/pods.png)

Expand All @@ -179,7 +179,7 @@ spec:
- containerPort: 80
```

### Kubernetes : Pod
### Kubernetes : `Pod`

Dans les statuts du pod on trouve la notion de phase d'exécution

Expand All @@ -204,7 +204,7 @@ yy-ss7nk 1/1 Running 0 84m 10.244.0.5 kind-cp
```

### Kubernetes : Pod
### Kubernetes : `Pod`

dans les statuts du pod on trouve la notion de Conditions d'état des pods

Expand All @@ -231,7 +231,7 @@ Conditions:
...
```

### Kubernetes : Pod
### Kubernetes : `Pod`

États des containers (States)

Expand All @@ -247,7 +247,7 @@ Les containers peuvent avoir seulement 3 états
$ kubectl get pods <POD_NAME> -o jsonpath='{.status}' | jq
```

### Kubernetes : Deployment
### Kubernetes : `Deployment`

- Permet d'assurer le fonctionnement d'un ensemble de Pods
- Gère les Version, Update et Rollback
Expand All @@ -258,7 +258,7 @@ $ kubectl get pods <POD_NAME> -o jsonpath='{.status}' | jq



### Kubernetes : Deployment
### Kubernetes : `Deployment`

```plaintext
+--------------------+
Expand Down Expand Up @@ -287,7 +287,7 @@ $ kubectl get pods <POD_NAME> -o jsonpath='{.status}' | jq



### Kubernetes : Deployment
### Kubernetes : `Deployment`

```yaml
apiVersion: apps/v1
Expand Down Expand Up @@ -318,7 +318,7 @@ kubectl create deployment my-deployment --image=nginx:latest --replicas=3
```


### Kubernetes : DaemonSet
### Kubernetes : `DaemonSet`

- Assure que tous les noeuds exécutent une copie du pod sur tous les noeuds du cluster
- Ne connaît pas la notion de `replicas`.
Expand All @@ -328,7 +328,7 @@ kubectl create deployment my-deployment --image=nginx:latest --replicas=3
- l'exécution d'agents de supervision comme NewRelic agent, Prometheus node exporter


### Kubernetes : DaemonSet
### Kubernetes : `DaemonSet`

![daemonset](images/daemonset.png)

Expand All @@ -355,7 +355,7 @@ metadata:
image: luksa/ssd-monitor
```

### Kubernetes : StatefulSet
### Kubernetes : `StatefulSet`

- Similaire au `Deployment` mais les noms des composants sont prédictibles
- Les pods possèdent des identifiants uniques.
Expand All @@ -367,7 +367,7 @@ metadata:
![statefulset](images/statefulset.png){width="500"}


### Kubernetes : StatefulSet
### Kubernetes : `StatefulSet`

```yaml
apiVersion: apps/v1
Expand Down Expand Up @@ -412,7 +412,7 @@ web-1 1/1 Running 0 7s
web-2 1/1 Running 0 5s
```

### Kubernetes : StatefulSet avancé
### Kubernetes : `StatefulSet` avancé

```yaml
Expand Down Expand Up @@ -491,7 +491,7 @@ spec:
...
```

### Kubernetes : Job
### Kubernetes : `Job`

- Crée des pods et s'assurent qu'un certain nombre d'entre eux se terminent avec succès.
- Peut exécuter plusieurs pods en parallèle
Expand All @@ -500,7 +500,7 @@ spec:

![job](images/job.png)

### Kubernetes : Job
### Kubernetes : `Job`

```yaml
apiVersion: batch/v1
Expand Down Expand Up @@ -528,15 +528,15 @@ En ligne de commande :
kubectl create job exemple-job --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster"
```

### Kubernetes: CronJob
### Kubernetes: `CronJob`

- Un CronJob permet de lancer des Jobs de manière planifiée.
- la programmation des Jobs se définit au format `Cron`
- le champ `jobTemplate` contient la définition de l'application à lancer comme `Job`.

![cronjob](images/cronjob.png)

### Kubernetes : CronJob
### Kubernetes : `CronJob`

```yaml
apiVersion: batch/v1
Expand Down Expand Up @@ -586,7 +586,7 @@ kubectl patch cronjob <cronjob-name> -p '{"spec" : {"suspend" : false }}'



### Extras : Init Containers
### Extras : `Init Containers`

- On peut définir des conteneurs qui doivent s'exécuter avant les conteneurs principaux
- Ils seront exécutés dans l'ordre
Expand Down Expand Up @@ -620,7 +620,7 @@ spec:

```

### Extras : Init Containers
### Extras : `Init Containers`


- Lors du démarrage d'un Pod, le kubelet retarde l'exécution des conteneurs d'initialisation jusqu'à ce que le réseau et le stockage soient prêts. Ensuite, le kubelet exécute les conteneurs d'initialisation du Pod dans l'ordre où ils apparaissent dans la spécification du Pod.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Méthode déclarative et impérative pour créer des objets Kubernetes

### déclaratif vs impératif

![](images/kubernetes/imperative-declarative-k8s.jpg)

### La méthode déclarative

L'approche déclarative consiste à décrire l'état désiré des ressources. Vous déclarez ce que vous voulez obtenir, et Kubernetes s'occupe de mettre en place et de maintenir cet état.
Expand Down
6 changes: 3 additions & 3 deletions cours/containers/kubernetes/k8s-usage.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,11 @@ kubectl config get-contexts

### Kubernetes : Kubectl

![kubectl](images/kubernetes/kubectl2.png){height="500px"}
![](images/kubernetes/kubectl2.png){height="500px"}



### Kubernetes : Kubectl
### Kubernetes : Kubectl `api-resources`

- Afficher la liste des ressources API supportées par le serveur:

Expand All @@ -134,7 +134,7 @@ jobs batch
ingresses ing extensions true Ingress
```

- Pourquoi utiliser kubectl api-resources ?
- Pourquoi utiliser `kubectl api-resources` ?
- Découverte: Pour connaître les ressources disponibles dans votre cluster.
- Documentation: Pour obtenir des informations sur les différentes ressources et leurs propriétés.
- Développement: Pour créer des scripts et des outils d'automatisation.
Expand Down

0 comments on commit afcded0

Please sign in to comment.