Skip to content

Commit e41fc6e

Browse files
authored
Merge pull request #42010 from k0rventen/fr-tasks-access-application-cluster
[fr] translate tasks from section "access-application-cluster"
2 parents 74224bb + 8ffb57e commit e41fc6e

File tree

10 files changed

+712
-0
lines changed

10 files changed

+712
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: Selector
3+
id: selector
4+
date: 2018-04-12
5+
full_link: /docs/concepts/overview/working-with-objects/labels/
6+
short_description: >
7+
Permet aux utilisateurs de filtrer une liste de ressources en fonction de labels.
8+
9+
aka:
10+
tags:
11+
- fundamental
12+
---
13+
Permet aux utilisateurs de filtrer une liste de ressources en fonction de {{< glossary_tooltip text="labels" term_id="label" >}}.
14+
15+
<!--more-->
16+
17+
Les sélecteurs sont appliqués lors de la requête de listes de ressources pour les filtrer par labels.
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
---
2+
title: Connecter un Frontend à un Backend en utilisant les Services
3+
content_type: tutorial
4+
weight: 70
5+
---
6+
7+
<!-- overview -->
8+
Cette tâche montre comment créer un microservice _frontend_ et un microservice _backend_.
9+
Le backend renvoie un message de salutations à chaque requête.
10+
Le frontend expose le backend en utilisant Nginx et un {{< glossary_tooltip term_id="service" >}} Kubernetes.
11+
12+
## {{% heading "objectives" %}}
13+
14+
* Créer et exécuter un microservice backend `hello` en utilisant un {{< glossary_tooltip term_id="deployment" >}}.
15+
* Utiliser un Service pour envoyer du trafic vers les multiples réplicas du microservice backend.
16+
* Créer et exécuter un microservice frontend `nginx`, en utilisant également un Deployment.
17+
* Configurer le microservice frontend pour envoyer du trafic vers le microservice backend.
18+
* Utiliser un Service de type `LoadBalancer` pour exposer le microservice frontend en dehors du cluster.
19+
20+
## {{% heading "prerequisites" %}}
21+
22+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
23+
24+
Cette tâche utilise les [Services avec des équilibreurs de charge externes](/docs/tasks/access-application-cluster/create-external-load-balancer/),
25+
qui nécessitent un environnement spécifique.
26+
Si votre environnement ne prend pas en charge cette fonction, vous pouvez utiliser un Service de type
27+
[NodePort](/docs/concepts/services-networking/service/#type-nodeport) à la place.
28+
29+
<!-- lessoncontent -->
30+
31+
## Création du backend à l'aide d'un Deployment
32+
33+
Le backend est un simple microservice de salutations.
34+
Voici le fichier de configuration pour le Deployment backend :
35+
36+
{{< codenew file="service/access/backend-deployment.yaml" >}}
37+
38+
Créez le Deployment backend :
39+
40+
```shell
41+
kubectl apply -f https://k8s.io/examples/service/access/backend-deployment.yaml
42+
```
43+
44+
Affichez les informations du Deployment:
45+
46+
```shell
47+
kubectl describe deployment backend
48+
```
49+
50+
Le retour sera similaire à celui-ci:
51+
52+
```
53+
Name: backend
54+
Namespace: default
55+
CreationTimestamp: Mon, 24 Oct 2016 14:21:02 -0700
56+
Labels: app=hello
57+
tier=backend
58+
track=stable
59+
Annotations: deployment.kubernetes.io/revision=1
60+
Selector: app=hello,tier=backend,track=stable
61+
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
62+
StrategyType: RollingUpdate
63+
MinReadySeconds: 0
64+
RollingUpdateStrategy: 1 max unavailable, 1 max surge
65+
Pod Template:
66+
Labels: app=hello
67+
tier=backend
68+
track=stable
69+
Containers:
70+
hello:
71+
Image: "gcr.io/google-samples/hello-go-gke:1.0"
72+
Port: 80/TCP
73+
Environment: <none>
74+
Mounts: <none>
75+
Volumes: <none>
76+
Conditions:
77+
Type Status Reason
78+
---- ------ ------
79+
Available True MinimumReplicasAvailable
80+
Progressing True NewReplicaSetAvailable
81+
OldReplicaSets: <none>
82+
NewReplicaSet: hello-3621623197 (3/3 replicas created)
83+
Events:
84+
...
85+
```
86+
## Création du Service `hello`
87+
88+
La solution pour envoyer des requêtes d'un frontend vers un backend est le Service `backend`.
89+
Un Service crée une adresse IP persistante et un enregistrement DNS afin que le microservice backend puisse toujours être joignable.
90+
Un Service utilise des {{< glossary_tooltip text="sélecteurs" term_id="selector" >}} pour trouver les Pods vers lesquels acheminer le trafic.
91+
92+
Tout d'abord, explorez le fichier de configuration du Service :
93+
94+
{{< codenew file="service/access/backend-service.yaml" >}}
95+
96+
Dans le fichier de configuration, vous pouvez voir que le Service,
97+
nommé `hello`, achemine le trafic vers les Pods ayant les labels `app: hello` et `tier: backend`.
98+
99+
Créez le Service backend :
100+
101+
```shell
102+
kubectl apply -f https://k8s.io/examples/service/access/backend-service.yaml
103+
```
104+
105+
À ce stade, vous avez un Deployment `backend` exécutant trois réplicas de votre application `hello`,
106+
et un Service capable d'acheminer le trafic vers celles-ci.
107+
Cependant, ce service n'est ni disponible, ni résolvable en dehors du cluster.
108+
109+
## Création du frontend
110+
111+
Maintenant que votre backend est opérationnel,
112+
vous pouvez créer un frontend accessible en dehors du cluster,
113+
qui se connecte au backend en acheminant les requêtes vers celui-ci.
114+
115+
Le frontend envoie des requêtes aux Pods du backend en utilisant le nom DNS attribué au Service backend.
116+
Le nom DNS est `hello`, qui est la valeur du champ `name`
117+
dans le fichier de configuration `examples/service/access/backend-service.yaml`.
118+
119+
Les Pods du frontend Deployment exécutent une image nginx
120+
configurée pour acheminer les requêtes vers le Service backend `hello`.
121+
Voici le fichier de configuration nginx :
122+
123+
{{< codenew file="service/access/frontend-nginx.conf" >}}
124+
125+
Comme pour le backend, le frontend dispose d'un Deployment et d'un Service.
126+
Une différence importante à noter entre les services backend et frontend est que
127+
le Service frontend est configuré avec un `type: LoadBalancer`, ce qui signifie que le Service utilise
128+
un équilibreur de charge provisionné par votre fournisseur de cloud et sera accessible depuis l'extérieur du cluster.
129+
130+
{{< codenew file="service/access/frontend-service.yaml" >}}
131+
132+
{{< codenew file="service/access/frontend-deployment.yaml" >}}
133+
134+
Créez le Deployment et le Service frontend :
135+
136+
```shell
137+
kubectl apply -f https://k8s.io/examples/service/access/frontend-deployment.yaml
138+
kubectl apply -f https://k8s.io/examples/service/access/frontend-service.yaml
139+
```
140+
141+
Le retour valide la création des deux ressources:
142+
143+
```
144+
deployment.apps/frontend created
145+
service/frontend created
146+
```
147+
148+
{{< note >}}
149+
La configuration de nginx est présente dans
150+
[l'image du container](/examples/service/access/Dockerfile). Une meilleure approche serait
151+
d'utiliser une [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/),
152+
afin de pouvoir changer la configuration plus facilement.
153+
{{< /note >}}
154+
155+
## Interagir avec le Service frontend
156+
157+
Une fois que vous avez créé un Service de type LoadBalancer, vous pouvez utiliser cette commande pour trouver l'IP externe :
158+
159+
```shell
160+
kubectl get service frontend --watch
161+
```
162+
163+
Cela affiche la configuration du Service `frontend` et surveille les changements.
164+
Initialement, l'IP externe est indiquée comme `<pending>` :
165+
166+
```
167+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
168+
frontend LoadBalancer 10.51.252.116 <pending> 80/TCP 10s
169+
```
170+
171+
Dès qu'une IP externe est attribuée, cependant,
172+
la configuration est mise à jour pour inclure la nouvelle IP sous l'en-tête `EXTERNAL-IP` :
173+
174+
```
175+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
176+
frontend LoadBalancer 10.51.252.116 XXX.XXX.XXX.XXX 80/TCP 1m
177+
```
178+
179+
Cette IP peut maintenant être utilisée pour interagir avec le service `frontend` depuis l'extérieur du cluster.
180+
181+
## Envoyer du trafic via le frontend
182+
183+
Le frontend et le backend sont maintenant connectés.
184+
Vous pouvez accéder à l'endpoint en utilisant la commande curl sur l'IP externe de votre Service frontend.
185+
186+
```shell
187+
curl http://${EXTERNAL_IP} # à remplacer par l'ip externe affichée précédemment
188+
```
189+
190+
Le résultat affiche le message généré par le backend :
191+
192+
```json
193+
{"message":"Hello"}
194+
```
195+
196+
## {{% heading "cleanup" %}}
197+
198+
Pour supprimer les Services, saisissez cette commande :
199+
200+
```shell
201+
kubectl delete services frontend backend
202+
```
203+
204+
Pour supprimer les Deployments, les ReplicaSets et les Pods qui exécutent les applications backend et frontend,
205+
saisissez cette commande :
206+
207+
```shell
208+
kubectl delete deployment frontend backend
209+
```
210+
211+
## {{% heading "whatsnext" %}}
212+
213+
* En savoir plus sur les [Services](/docs/concepts/services-networking/service/)
214+
* En savoir plus sur les [ConfigMaps](/docs/tasks/configure-pod-container/configure-pod-configmap/)
215+
* En savoir plus sur le [DNS pour les Services et les Pods](/docs/concepts/services-networking/dns-pod-service/)

0 commit comments

Comments
 (0)