Skip to content

Commit e10ab31

Browse files
committedAug 15, 2024·
create new readme-fr for chap2 and update all other readme files to include fr translation
1 parent 20ec91d commit e10ab31

File tree

6 files changed

+221
-6
lines changed

6 files changed

+221
-6
lines changed
 

‎chapter-1/README-fr.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Ces événements sont envoyés puis capturés par une application frontend. Heur
5151

5252
![events](imgs/events-backoffice.png)
5353

54-
## Résumé et Contribuez
54+
## Résumé et Contribuer
5555

56-
Vous voulez améliorer ce tutoriel? Créez une [issue](https://github.com/salaboy/platforms-on-k8s/issues/new), envoyez-moi un message sur [Twitter](https://twitter.com/salaboy), ou soumettez une [Pull Request](https://github.com/salaboy/platforms-on-k8s/compare).
56+
Vous voulez améliorer ce tutoriel? Créez un [ticket](https://github.com/salaboy/platforms-on-k8s/issues/new), envoyez-moi un message sur [Twitter](https://twitter.com/salaboy), ou soumettez une [Pull Request](https://github.com/salaboy/platforms-on-k8s/compare).
5757

‎chapter-2/README-es.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Capitulo 2 :: Desafios de una Aplicación Cloud-Native
22

33
4-
_🌍 Disponible en_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [Español](README-es.md) | [日本語 (Japanese)](README-ja.md)
4+
_🌍 Disponible en_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [Español](README-es.md) | [日本語 (Japanese)](README-ja.md) | [Français](README-fr.md)
5+
56
> **Nota:** Presentado por la fantástica comunidad de [ 🌟 contribuidores](https://github.com/salaboy/platforms-on-k8s/graphs/contributors) cloud-native!
67
78
En este breve tutorial, instalaremos la `Aplicación para Conferencia` usando Helm en un Clúster Kubernetes local de KinD.

‎chapter-2/README-fr.md

+214
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
# Chapitre 2 :: Défis des Applications Cloud-Native
2+
3+
---
4+
_🌍 Disponible en_: [English](README.md) | [中文 (Chinois)](README-zh.md) | [Português (Portugais)](README-pt.md) | [日本語 (Japonais)](README-ja.md) | [Español](README-es.md) | [Français](README-fr.md)
5+
6+
> **Remarque :** Proposé par les [ 🌟 contributeurs](https://github.com/salaboy/platforms-on-k8s/graphs/contributors) de la fantastique communauté cloud-native!
7+
8+
Dans ce court tutoriel, nous allons installer l'`Application Conférence` en utilisant Helm dans un cluster Kubernetes KinD local.
9+
10+
> [!NOTE]
11+
> Les Helm Charts peuvent être publiés dans des dépôts Helm Chart ou, depuis Helm 3.7, en tant que conteneurs OCI dans des registres de conteneurs.
12+
13+
## Création d'un cluster local avec Kubernetes KinD
14+
15+
> [!Important]
16+
> Assurez-vous de disposer des prérequis pour tous les tutoriels. Vous pouvez les trouver [ici](../chapter-1/README-fr.md#prérequis-pour-les-tutoriels).
17+
18+
Utilisez la commande ci-dessous pour créer un cluster KinD avec trois nœuds de travail et 1 Plan de Contrôle.
19+
20+
```shell
21+
cat <<EOF | kind create cluster --name dev --config=-
22+
kind: Cluster
23+
apiVersion: kind.x-k8s.io/v1alpha4
24+
nodes:
25+
- role: control-plane
26+
kubeadmConfigPatches:
27+
- |
28+
kind: InitConfiguration
29+
nodeRegistration:
30+
kubeletExtraArgs:
31+
node-labels: "ingress-ready=true"
32+
extraPortMappings:
33+
- containerPort: 80
34+
hostPort: 80
35+
protocol: TCP
36+
- containerPort: 443
37+
hostPort: 443
38+
protocol: TCP
39+
- role: worker
40+
- role: worker
41+
- role: worker
42+
EOF
43+
44+
```
45+
46+
![3 nœuds de travail](imgs/cluster-topology.png)
47+
48+
### Chargement des images de conteneurs avant l'installation de l'application et d'autres composants
49+
50+
Le script `kind-load.sh` précharge, c'est-à-dire télécharge et charge les images de conteneurs que nous utiliserons pour notre application dans notre cluster KinD.
51+
52+
L'idée ici est d'optimiser le processus pour notre cluster, afin que lorsque nous installerons l'application, nous n'ayons pas à attendre plus de 10 minutes pendant que toutes les images de conteneurs nécessaires sont récupérées. Avec toutes les images déjà préchargées dans notre cluster KinD, l'application devra démarrer en environ 1 minute, ce qui est le temps nécessaire pour que PostgreSQL, Redis et Kafka se lancent.
53+
54+
Maintenant, récupérons les images requises dans notre cluster KinD.
55+
56+
> [!Important]
57+
> En exécutant le script indiqué à l'étape suivante, vous téléchargerez et chargerez toutes les images nécessaires dans chaque nœud de votre cluster KinD. Si vous exécutez les exemples sur un fournisseur cloud, cette étape pourrait ne pas être nécessaire, car ces fournisseurs bénéficient de connexions haut débit aux registres de conteneurs, permettant de récupérer les images en quelques secondes.
58+
59+
Dans votre terminal, accédez au répertoire `chapter-2`, puis exécutez le script :
60+
61+
```shell
62+
./kind-load.sh
63+
```
64+
65+
> [!Note]
66+
> Si vous utilisez Docker Desktop sur MacOS et avez défini une taille plus petite pour le disque virtuel, vous pourriez rencontrer l'erreur suivante :
67+
>
68+
> ```shell
69+
> $ ./kind-load.sh
70+
> ...
71+
> Command Output: Error response from daemon: write /var/lib/docker/...
72+
> /layer.tar: no space left on device
73+
> ```
74+
>
75+
> Vous pouvez modifier la valeur de la limite du disque virtuel dans le menu ``Settings -> Resources``.
76+
> ![Limites du disque virtuel Docker Desktop sur MacOS](imgs/macos-docker-desktop-virtual-disk-setting.png)
77+
78+
### Installation du NGINX Ingress Controller
79+
80+
Nous avons besoin du NGINX Ingress Controller pour diriger le trafic de notre ordinateur portable vers les services exécutés à l'intérieur du cluster. Le NGINX Ingress Controller fonctionne comme un routeur: il opère au sein du cluster tout en étant accessible depuis l'extérieur.
81+
82+
```shell
83+
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
84+
```
85+
86+
Vérifiez que les pods à l'intérieur du `ingress-nginx` sont correctement démarrés avant de continuer:
87+
88+
```shell
89+
> kubectl get pods -n ingress-nginx
90+
NAME READY STATUS RESTARTS AGE
91+
ingress-nginx-admission-create-cflcl 0/1 Completed 0 62s
92+
ingress-nginx-admission-patch-sb64q 0/1 Completed 0 62s
93+
ingress-nginx-controller-5bb6b499dc-7chfm 0/1 Running 0 62s
94+
```
95+
96+
Cela devrait vous permettre d'acheminer le trafic de `http://localhost` vers les services à l'intérieur du cluster. Notez que pour que KinD fonctionne de cette manière, nous avons fourni des paramètres et des labels supplémentaires pour le nœud de plan de contrôle lorsque nous avons créé le cluster:
97+
```yaml
98+
nodes:
99+
- role: control-plane
100+
kubeadmConfigPatches:
101+
- |
102+
kind: InitConfiguration
103+
nodeRegistration:
104+
kubeletExtraArgs:
105+
node-labels: "ingress-ready=true" #This allow the ingress controller to be installed in the control plane node
106+
extraPortMappings:
107+
- containerPort: 80 # Cela nous permet de lier le port 80 sur l'hôte local à l'Ingress Controller, afin qu'il puisse acheminer le trafic vers les services exécutés à l'intérieur du cluster.
108+
hostPort: 80
109+
protocol: TCP
110+
- containerPort: 443
111+
hostPort: 443
112+
protocol: TCP
113+
```
114+
115+
Une fois notre cluster et notre Ingress Controller installés et configurés, nous pouvons passer à l'installation de notre application.
116+
117+
### Installation de l'Application de Conférence
118+
119+
Depuis Helm 3.7+, nous pouvons utiliser des images OCI pour publier, télécharger et installer des Helm Charts. Cette approche utilise Docker Hub comme registre Helm Chart.
120+
121+
Pour installer l'Application de Conférence, il vous suffit d'exécuter la commande suivante:
122+
123+
```shell
124+
helm install conference oci://docker.io/salaboy/conference-app --version v1.0.0
125+
```
126+
127+
Vous pouvez également exécuter la commande suivante pour voir les détails du chart:
128+
129+
```shell
130+
helm show all oci://docker.io/salaboy/conference-app --version v1.0.0
131+
```
132+
133+
Vérifiez que tous les pods de l'application sont en cours d'exécution.
134+
135+
> [!Note]
136+
> Notez que si votre connexion Internet est lente, il peut falloir un certain temps avant que l'application ne démarre. Étant donné que les services de l'application dépendent de certains composants d'infrastructure (Redis, Kafka, PostgreSQL), ces composants doivent démarrer et être prêts pour que les services puissent se connecter.
137+
>
138+
> Les composants comme Kafka sont assez lourds, avec environ 335+ Mo, PostgreSQL 88+ Mo, et Redis 35+ Mo.
139+
140+
Vous devriez éventuellement voir quelque chose comme ceci. Cela peut prendre quelques minutes:
141+
142+
```shell
143+
kubectl get pods
144+
NAME READY STATUS RESTARTS AGE
145+
conference-agenda-service-deployment-7cc9f58875-k7s2x 1/1 Running 4 (45s ago) 2m2s
146+
conference-c4p-service-deployment-54f754b67c-br9dg 1/1 Running 4 (65s ago) 2m2s
147+
conference-frontend-deployment-74cf86495-jthgr 1/1 Running 4 (56s ago) 2m2s
148+
conference-kafka-0 1/1 Running 0 2m2s
149+
conference-notifications-service-deployment-7cbcb8677b-rz8bf 1/1 Running 4 (47s ago) 2m2s
150+
conference-postgresql-0 1/1 Running 0 2m2s
151+
conference-redis-master-0 1/1 Running 0 2m2s
152+
```
153+
154+
La colonne `RESTARTS` des pods indique que Kafka a peut-être mis du temps à démarrer, ce qui a conduit Kubernetes à démarrer le service en premier et à le redémarrer en attendant que Kafka soit prêt.
155+
156+
Vous pouvez maintenant ouvrir votre navigateur et accéder à [http://localhost](http://localhost) pour visualiser l'application.
157+
158+
![app conférence](imgs/conference-app-homepage.png)
159+
160+
------
161+
## [Important] Nettoyage - _!!!À LIRE ABSOLUMENT!!_
162+
Étant donné que l'Application de Conférence installe PostgreSQL, Redis et Kafka, si vous souhaitez supprimer et réinstaller l'application (ce que nous ferons au fur et à mesure des guides), vous devez vous assurer de supprimer les PersistenceVolumeClaims (PVC) associés.
163+
164+
Ces PVC sont les volumes utilisés pour stocker les données des bases de données et de Kafka. Ne pas supprimer ces PVC entre les installations peut entraîner l'utilisation d'anciens identifiants pour se connecter aux nouvelles bases de données provisionnées.
165+
166+
Vous pouvez lister tous les PVC avec:
167+
168+
```shell
169+
kubectl get pvc
170+
```
171+
172+
Vous devriez voir quelque chose comme ceci:
173+
174+
```shell
175+
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
176+
data-conference-kafka-0 Bound pvc-2c3ccdbe-a3a5-4ef1-a69a-2b1022818278 8Gi RWO standard 8m13s
177+
data-conference-postgresql-0 Bound pvc-efd1a785-e363-462d-8447-3e48c768ae33 8Gi RWO standard 8m13s
178+
redis-data-conference-redis-master-0 Bound pvc-5c2a96b1-b545-426d-b800-b8c71d073ca0 8Gi RWO standard 8m13s
179+
```
180+
181+
Puis supprimez-les avec:
182+
183+
```shell
184+
kubectl delete pvc data-conference-kafka-0 data-conference-postgresql-0 redis-data-conference-redis-master-0
185+
```
186+
187+
Les noms des PVC changeront en fonction du nom de la release Helm que vous avez utilisé lors de l'installation du chart.
188+
189+
Enfin, si vous souhaitez supprimer complètement le cluster KinD, vous pouvez exécuter:
190+
191+
```shell
192+
kind delete clusters dev
193+
```
194+
195+
## Étapes suivantes
196+
197+
Je vous recommande vivement de vous familiariser avec un vrai cluster Kubernetes hébergé par un fournisseur de cloud. Vous pouvez essayer la plupart des fournisseurs de cloud, car ils offrent un essai gratuit permettant de créer des clusters Kubernetes et de réaliser tous ces exemples [consultez ce dépôt pour plus d'informations](https://github.com/learnk8s/free-kubernetes).
198+
199+
Si vous parvenez à créer un cluster chez un fournisseur de cloud et à faire fonctionner l'application, vous acquérirez une expérience concrète sur tous les sujets abordés dans le Chapitre 2.
200+
201+
202+
## Résumé et Contribuer
203+
Dans ce court tutoriel, nous avons réussi à installer le squelette fonctionnel de l'application Conférence. Nous utiliserons cette application comme exemple tout au long des chapitres suivants. Assurez-vous que cette application fonctionne pour vous, car elle couvre les bases de l'utilisation et de l'interaction avec un cluster Kubernetes.
204+
205+
Vous souhaitez améliorer ce tutoriel? Créez un [ticket](https://github.com/salaboy/platforms-on-k8s/issues/new), envoyez-moi un message sur [Twitter](https://twitter.com/salaboy), ou soumettez une [pull request](https://github.com/salaboy/platforms-on-k8s/compare).
206+
207+
208+
209+
210+
211+
212+
213+
214+

‎chapter-2/README-ja.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 第2章 :: クラウドネイティブアプリケーションの課題
22

33
---
4-
_🌍 翻訳_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [日本語](README-ja.md)
4+
_🌍 翻訳_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [日本語](README-ja.md) | [Español](README-es.md) | [Français](README-fr.md)
55

66
> **注意:** このコンテンツは素晴らしいクラウドネイティブコミュニティの [🌟 コントリビューター](https://github.com/salaboy/platforms-on-k8s/graphs/contributors) によってもたらされています!
77

‎chapter-2/README-pt.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Capítulo 2 :: Desafios da Aplicação Cloud Native
22

33
---
4-
_🌍 Disponível em_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [日本語 (Japanese)](README-ja.md)
4+
_🌍 Disponível em_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [日本語 (Japanese)](README-ja.md) | [Español](README-es.md) | [Français](README-fr.md)
55

66
> **Nota:** Trago a você pela fantástica comunidade cloud-native e seus [ 🌟 contribuidores](https://github.com/salaboy/platforms-on-k8s/graphs/contributors)!
77

‎chapter-2/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Chapter 2 :: Cloud-Native Application Challenges
22

33
---
4-
_🌍 Available in_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [日本語 (Japanese)](README-ja.md)
4+
_🌍 Available in_: [English](README.md) | [中文 (Chinese)](README-zh.md) | [Português (Portuguese)](README-pt.md) | [日本語 (Japanese)](README-ja.md) | [Español](README-es.md) | [Français](README-fr.md)
55

66
> **Note:** Brought to you by the fantastic cloud-native community's [ 🌟 contributors](https://github.com/salaboy/platforms-on-k8s/graphs/contributors)!
77

0 commit comments

Comments
 (0)
Please sign in to comment.