You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/fr/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md
+60-70Lines changed: 60 additions & 70 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,13 @@
1
1
---
2
-
3
-
title: Découverte de l'HorizontalPodAutoscaler
2
+
title: "Découverte de l'HorizontalPodAutoscaler"
4
3
content_type: task
5
4
weight: 100
6
5
min-kubernetes-server-version: 1.23
7
6
---
8
7
9
8
<!-- overview -->
10
9
11
-
Un [HorizontalPodAutoscaler](/docs/tasks/run-application/horizontal-pod-autoscale/) (HPA pour faire court)
10
+
Un [HorizontalPodAutoscaler](/docs/tasks/run-application/horizontal-pod-autoscale/) (raccourci en HPA)
12
11
met à jour automatiquement une ressource de charge de travail
13
12
(comme un {{< glossary_tooltip text=Deployment term_id=deployment >}}
14
13
ou un {{< glossary_tooltip text=StatefulSet term_id=statefulset >}}),
@@ -23,17 +22,16 @@ aux Pods qui sont déjà en cours d'exécution pour la charge de travail.
23
22
24
23
Si la charge diminue et que le nombre de Pods est supérieur au minimum configuré,
25
24
le HorizontalPodAutoscaler indique à la ressource de charge de travail
26
-
(le Deployment, le StatefulSet ou une autre ressource similaire)
27
-
de réduire son échelle.
25
+
(le Deployment, le StatefulSet ou une autre ressource similaire)
26
+
de réduire son échelle (nombre de réplicas).
28
27
29
-
Ce document vous guide à travers un exemple d'activation de HorizontalPodAutoscaler pour gérer
30
-
automatiquement l'échelle d'une application web d'exemple.
28
+
Ce document vous guide à travers un exemple d'activation de HorizontalPodAutoscaler pour gérer
29
+
automatiquement l'échelle d'une application web.
31
30
Cette charge de travail d'exemple est Apache httpd exécutant du code PHP.
32
31
33
32
## {{% heading prerequisites %}}
34
33
{{< include task-tutorial-prereqs.md >}} {{< version-check >}} Si vous utilisez
35
-
une version plus ancienne de Kubernetes,
36
-
consultez la version de la documentation correspondante
34
+
une version plus ancienne de Kubernetes, consultez la version de la documentation correspondante
37
35
(voir [versions de documentation disponibles](/docs/home/supported-doc-versions/)).
38
36
39
37
Pour suivre ce guide, vous devez également utiliser un cluster qui dispose d'un
@@ -43,18 +41,18 @@ Le Metrics Server Kubernetes collecte les métriques des ressources des
43
41
{{<glossary_tooltip term_id=kubelet text=kubelets>}} de votre cluster et expose
44
42
ces métriques via l'[API Kubernetes](/docs/concepts/overview/kubernetes-api/),
45
43
en utilisant un [APIService](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/)
46
-
pour ajouter de nouveaux types de ressources représentant
47
-
les lectures de métriques.
44
+
pour ajouter de nouveaux types de ressources représentant les lectures de métriques.
48
45
49
-
Pour apprendre comment déployer le Metrics Server, consultez la [documentation du metrics-server](https://github.com/kubernetes-sigs/metrics-server#deployment).
46
+
Pour apprendre comment déployer le Metrics Server, consultez la [documentation de metrics-server](https://github.com/kubernetes-sigs/metrics-server#deployment).
50
47
51
48
<!-- steps -->
52
49
53
50
## Exécutez et exposez le serveur php-apache
51
+
54
52
Pour démontrer un HorizontalPodAutoscaler, vous commencerez par démarrer un
55
-
déploiement qui exécute un conteneur utilisant l'image `hpa-example`
53
+
Deployment qui exécute un conteneur utilisant l'image `hpa-example`
56
54
et l'expose en tant que {{< glossary_tooltip term_id=service>}} en utilisant le
Pour créer les ressources, exécutez la commande suivante:
60
58
```shell
@@ -68,25 +66,25 @@ service/php-apache created
68
66
69
67
## Créer le HorizontalPodAutoscaler {#create-horizontal-pod-autoscaler}
70
68
71
-
Maintenant que le serveur est en cours d'exécution, créez l'autoscaler
72
-
à l'aide de `kubectl`. Il existe une sous-commande
73
-
[`kubectl autoscale`](/docs/reference/generated/kubectl/kubectl-commands#autoscale), faisant partie de `kubectl`, qui vous aide à le faire.
69
+
Maintenant que le serveur est en cours d'exécution, créez l'autoscaler à l'aide de `kubectl`.
70
+
Il existe une sous-commande[`kubectl autoscale`](/docs/reference/generated/kubectl/kubectl-commands#autoscale),
71
+
faisant partie de `kubectl`, qui vous aide à le faire.
74
72
75
73
Vous allez bientôt exécuter une commande qui crée un HorizontalPodAutoscaler
76
-
qui maintient entre 1 et 10 répliques des Pods contrôlés par le déploiement
77
-
php-apache que vous avez créé à la première étape de ces instructions.
74
+
qui maintient entre 1 et 10 réplicas des Pods contrôlés par le déploiement
75
+
php-apache que vous avez créé lors de la première étape.
78
76
79
-
En gros, le HPA ({{<glossary_tooltip text="contrôleur" term_id="controller">}})
80
-
augmentera ou diminuera le nombre de répliques (en mettant à jour le déploiement)
81
-
pour maintenir une utilisation moyenne de l'UC de 50% sur l'ensemble des Pods.
77
+
Généralement, le HPA ({{<glossary_tooltip text="contrôleur" term_id="controller">}})
78
+
augmentera ou diminuera le nombre de réplicas (en mettant à jour le déploiement)
79
+
pour maintenir une utilisation CPU moyenne de 50% sur l'ensemble des Pods.
82
80
83
81
Ensuite, le déploiement met à jour le ReplicaSet - cela fait partie du
84
82
fonctionnement de tous les déploiements dans Kubernetes - puis le ReplicaSet
85
83
ajoute ou supprime des Pods en fonction des modifications apportées à son champ `.spec`.
86
84
87
85
Étant donné que chaque pod demande 200 milli-cores via `kubectl run`,
88
-
cela signifie une utilisation moyenne de l'UC de 100 milli-cores.
89
-
Consultez les détails de l'algorithme pour plus d'informations sur l'algorithme.
86
+
cela signifie une utilisation CPU moyenne de 100 milli-cores.
87
+
Consultez les [détails de l'algorithme](/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details) pour plus d'informations sur l'algorithme.
et le nombre de réplicas du Deployment aura descendu:
192
+
et le nombre de réplicas du Deployment sera descendu:
195
193
196
194
```shell
197
195
kubectl get deployment php-apache
@@ -202,7 +200,7 @@ NAME READY UP-TO-DATE AVAILABLE AGE
202
200
php-apache 1/1 1 1 27m
203
201
```
204
202
205
-
Une fois que la consommation CPU atteindra 0, le HPA ajustera automatiquement le nombre de réplicas à 0.
203
+
Une fois que la consommation CPU atteindra 0, le HPA ajustera automatiquement le nombre de réplicas à 1.
206
204
207
205
Cette étape peut prendre quelques minutes.
208
206
@@ -254,30 +252,27 @@ status:
254
252
```
255
253
256
254
Veuillez noter que le champ `targetCPUUtilizationPercentage` a été remplacé par un tableau appelé `metrics`.
257
-
La métrique d'utilisation du processeur (CPU) est une *métrique de ressource*, car elle est représentée en pourcentage
258
-
d'une ressource spécifiée sur les conteneurs de pod.
255
+
La métrique d'utilisation du CPU est une *métrique de ressource*, car elle est représentée en pourcentage d'une ressource spécifiée sur les conteneurs de pod.
259
256
Notez que vous pouvez spécifier d'autres métriques de ressource en plus du CPU.
260
257
Par défaut, la seule autre métrique de ressource prise en charge est la mémoire.
261
258
Ces ressources ne changent pas de nom d'un cluster à l'autre et devraient
262
259
toujours être disponibles tant que l'API `metrics.k8s.io` est disponible.
263
260
264
-
Vous pouvez également spécifier des métriques de ressource en termes de valeurs directes,
265
-
au lieu de pourcentages de la valeur demandée,
261
+
Vous pouvez également spécifier des métriques de ressource en termes de valeurs directes, au lieu de pourcentages de la valeur demandée,
266
262
en utilisant un `target.type` de `AverageValue` au lieu de `Utilization`,
267
263
et en définissant le champ correspondant `target.averageValue` au lieu de `target.averageUtilization`.
268
264
269
-
Il existe deux autres types de métriques, tous deux considérés comme des *métriques personnalisées* :
270
-
les métriques de pod et les métriques d'objet.
265
+
Il existe deux autres types de métriques, tous deux considérés comme des *métriques personnalisées*: les métriques de pod et les métriques d'objet.
271
266
Ces métriques peuvent avoir des noms spécifiques au cluster et
272
-
nécessitent une configuration de surveillance de cluster plus avancée.
267
+
nécessitent une configuration de la surveillance du cluster plus avancée.
273
268
274
-
Le premier de ces types de métriques alternatifs est les *métriques de pod*.
269
+
Le premier de ces types de métriques alternatives est les *métriques de pod*.
275
270
Ces métriques décrivent les pods et sont regroupées en moyenne sur l'ensemble des pods,
276
271
puis comparées à une valeur cible pour déterminer le nombre de réplicas.
277
272
Elles fonctionnent de manière similaire aux métriques de ressource,
278
-
à la différence qu'elles ne prennent en charge *seulement* le type de `target` `AverageValue`.
273
+
à la différence qu'elles prennent en charge *seulement* le type de `target` `AverageValue`.
279
274
280
-
Les métriques de pod sont spécifiées à l'aide d'un bloc métrique comme suit :
275
+
Les métriques de pod sont spécifiées à l'aide d'une définition `metric` comme ceci:
281
276
282
277
```yaml
283
278
type: Pods
@@ -290,16 +285,13 @@ pods:
290
285
```
291
286
292
287
Le deuxième type de métrique alternative est *les métriques d'objet*.
293
-
Ces métriques décrivent un objet différent dans le même espace de noms,
288
+
Ces métriques décrivent un objet différent dans le même namespace,
294
289
au lieu de décrire des Pods.
295
-
Les métriques ne sont pas nécessairement récupérées à partir de l'objet ;
296
-
elles le décrivent simplement.
297
-
Les métriques d'objet prennent en charge
298
-
les types de `cible` `Value` et `AverageValue`.
290
+
Les métriques ne sont pas nécessairement récupérées à partir de l'objet mais le décrivent.
291
+
Les métriques d'objet prennent en charge les types de `target` suivants: `Value`et `AverageValue`.
299
292
Avec `Value`, la cible est comparée directement à la métrique renvoyée par l'API.
300
293
Avec `AverageValue`, la valeur renvoyée par l'API de métriques
301
-
personnalisées est divisée par le nombre de Pods avant
302
-
d'être comparée à la cible.
294
+
personnalisées est divisée par le nombre de Pods avant d'être comparée à la cible.
303
295
L'exemple suivant est la représentation YAML de la métrique `requests-per-second`.
304
296
305
297
```yaml
@@ -316,10 +308,10 @@ object:
316
308
value: 2k
317
309
```
318
310
319
-
Si vous fournissez plusieurs blocs de métriques similaires,
311
+
Si vous fournissez plusieurs définitions de métriques similaires,
320
312
le HorizontalPodAutoscaler examinera chaque métrique à tour de rôle.
321
-
Le HorizontalPodAutoscaler calculera les nombres de répliques proposés pour chaque métrique,
322
-
puis choisira celle avec le nombre de répliques le plus élevé.
313
+
Il calculera les nombres de réplicas proposés pour chaque métrique,
314
+
puis choisira celle avec le nombre de réplicas le plus élevé.
323
315
Par exemple, si votre système de surveillance collecte des métriques sur le trafic réseau,
324
316
vous pouvez mettre à jour la définition ci-dessus en utilisant `kubectl edit` pour qu'elle ressemble à ceci :
325
317
@@ -384,20 +376,20 @@ status:
384
376
value: 10k
385
377
```
386
378
387
-
Ensuite, votre HorizontalPodAutoscaler tenterait de s'assurer
379
+
Ensuite, votre HorizontalPodAutoscaler tentera de s'assurer
388
380
que chaque pod consomme environ 50% de sa CPU demandée,
389
381
en traitant 1000 paquets par seconde,
390
382
et que tous les pods derrière l'Ingress `main-route`
391
383
servent un total de 10000 requêtes par seconde.
392
384
393
-
### Autoscaling sur des métriques plus spécifiques
385
+
### Auto-ajustement sur des métriques plus spécifiques
394
386
395
-
De nombreux pipelines de métriques vous permettent de décrire les métriques soit par leur nom,
387
+
De nombreuses chaines de métriques vous permettent de décrire les métriques soit par leur nom,
396
388
soit par un ensemble de descripteurs supplémentaires appelés _labels_.
397
389
Pour tous les types de métriques autres que les ressources (pod, objet et externe, décrits ci-dessous),
398
-
vous pouvez spécifier un sélecteur de label supplémentaire qui est transmis à votre pipeline de métriques.
390
+
vous pouvez spécifier un sélecteur de label supplémentaire qui est transmis à votre chaine de métriques.
399
391
Par exemple, si vous collectez une métrique `http_requests` avec le label `verb`,
400
-
vous pouvez spécifier le bloc de métrique suivant pour ne faire varier l'échelle que sur les requêtes de type GET:
392
+
vous pouvez spécifier la définition de métrique suivante pour ne faire varier l'échelle que sur les requêtes de type GET:
401
393
402
394
```yaml
403
395
type: Object
@@ -408,28 +400,27 @@ object:
408
400
```
409
401
410
402
Ce sélecteur utilise la même syntaxe que les sélecteurs d'étiquettes complets de Kubernetes.
411
-
La chaine de surveillance détermine comment regrouper plusieurs séries en une seule valeur,
412
-
si le nom et le sélecteur correspondent à plusieurs séries.
403
+
La chaine de surveillance détermine comment regrouper plusieurs séries en une seule valeur, si le nom et le sélecteur correspondent à plusieurs séries.
413
404
Le sélecteur est additif et ne peut pas sélectionner des métriques qui décrivent des objets qui ne sont **pas** l'objet cible
414
405
(les pods cibles dans le cas du type `Pods`, et l'objet décrit dans le cas du type `Object`).
415
406
416
-
### Autoscaling sur des métriques non liées aux objets Kubernetes
407
+
### Auto-ajustement sur des métriques non liées aux objets Kubernetes
417
408
418
409
Les applications s'exécutant sur Kubernetes peuvent avoir besoin de
419
410
s'auto-adapter en fonction de métriques qui n'ont pas de relation évidente
420
411
avec un objet dans le cluster Kubernetes,
421
-
telles que des métriques décrivant un service hébergé sans corrélation directe avec les espaces de noms Kubernetes.
412
+
telles que des métriques décrivant un service hébergé sans corrélation directe avec les namespace Kubernetes.
422
413
À partir de Kubernetes 1.10, vous pouvez répondre à ce cas d'utilisation avec des *métriques externes*.
423
414
424
415
L'utilisation de métriques externes nécessite une connaissance de votre système de surveillance ;
425
416
la configuration est similaire à celle requise lors de l'utilisation de métriques personnalisées.
426
417
Les métriques externes vous permettent de mettre à l'échelle automatiquement
427
418
votre cluster en fonction de n'importe quelle métrique disponible dans votre
428
419
système de surveillance.
429
-
Fournissez un bloc `metric` avec un `name` et un `selector`, comme ci-dessus,
420
+
Créez un bloc `metric` avec un `name` et un `selector`, comme ci-dessus,
430
421
et utilisez le type de métrique `External` au lieu de `Object`.
431
422
Si plusieurs séries temporelles correspondent au `metricSelector`,
432
-
la somme de leurs valeurs est utilisée par le HorizontalPodAutoscaler.
423
+
la somme de leurs valeurs sera utilisée par le HorizontalPodAutoscaler.
433
424
Les métriques externes prennent en charge les types de cible `Value` et `AverageValue`, qui fonctionnent exactement de la même manière que lorsque vous utilisez le type `Object`.
434
425
435
426
Par exemple, si votre application traite des tâches à partir d'un service de file de messages hébergé,
@@ -455,16 +446,15 @@ car cela facilite la sécurisation de l'API des métriques personnalisées pour
455
446
L'API des métriques externes permet potentiellement l'accès à n'importe quelle métrique,
456
447
il est donc nécessaire que les administrateurs de cluster fassent attention lors de son exposition.
457
448
458
-
## Annexe : Conditions d'état du Pod Autoscaler horizontal
449
+
## Annexe : Conditions d'état du Horizontal Pod Autoscaler
459
450
460
-
Lorsque vous utilisez la forme `autoscaling/v2` du Pod Autoscaler horizontal,
461
-
vous pourrez voir les *conditions d'état* définies par Kubernetes sur le Pod
462
-
Autoscaler horizontal. Ces conditions d'état indiquent si le Pod Autoscaler
463
-
horizontal est capable de se mettre à l'échelle et s'il est actuellement
451
+
Lorsque vous utilisez la forme `autoscaling/v2` du HorizontalPodAutoscaler,
452
+
vous pourrez voir les *conditions d'état* définies par Kubernetes sur celui-ci.
453
+
Ces conditions d'état indiquent s'il est capable de se mettre à l'échelle et s'il est actuellement
464
454
restreint de quelque manière que ce soit. Les conditions apparaissent dans le
465
455
champ `status.conditions`.
466
456
467
-
Pour voir les conditions affectant un Pod Autoscaler horizontal, nous pouvons utiliser la commande `kubectl describe hpa`.
457
+
Pour voir les conditions affectant un HorizontalPodAutoscaler, nous pouvons utiliser la commande `kubectl describe hpa`.
468
458
469
459
```shell
470
460
kubectl describe hpa cm-test
@@ -493,23 +483,23 @@ Events:
493
483
494
484
Pour ce HorizontalPodAutoscaler, vous pouvez voir plusieurs conditions dans un état sain.
495
485
La première, `AbleToScale`, indique si le HPA est capable de récupérer et de mettre à jour les échelles,
496
-
ainsi que si des conditions liées à la limitation sont susceptibles d'empêcher le redimensionnement.
497
-
La deuxième, `ScalingActive`, indique si le HPA est activé (c'est-à-dire que le nombre de répliques de la cible n'est pas nul) et est capable de calculer les échelles souhaitées.
486
+
ainsi que si des conditions liées aux limitations sont susceptibles d'empêcher le redimensionnement.
487
+
La deuxième, `ScalingActive`, indique si le HPA est activé (c'est-à-dire que le nombre de réplicas de la cible n'est pas nul) et est capable de calculer les échelles souhaitées.
498
488
Lorsqu'il est `False`, cela indique généralement des problèmes de récupération des métriques.
499
489
Enfin, la dernière condition, `ScalingLimited`, indique que l'échelle souhaitée a été limitée par le maximum ou le minimum du HorizontalPodAutoscaler.
500
-
Cela indique que vous souhaiterez peut-être augmenter ou diminuer les contraintes de nombre de répliques minimum ou maximum de votre HorizontalPodAutoscaler.
490
+
Cela indique que vous souhaiteriez peut-être augmenter ou diminuer les contraintes de nombre de réplicas minimum ou maximum de votre HorizontalPodAutoscaler.
501
491
502
492
## Quantités
503
493
504
494
Toutes les métriques dans le HorizontalPodAutoscaler et les API de métriques
505
495
sont spécifiées à l'aide d'une notation spéciale en nombres entiers connue dans Kubernetes sous le nom de {{< glossary_tooltip term_id=quantity text=quantité >}}.
506
496
Par exemple, la quantité `10500m` serait écrite comme `10.5` en notation décimale.
507
-
Les API de métriques renverront des nombres entiers sans suffixe lorsque cela est possible, et renverront généralement des quantités en milli-unités sinon.
497
+
Les API de métriques renvoient des nombres entiers sans suffixe lorsque cela est possible, et renvoient généralement des quantités en milli-unités sinon.
508
498
Cela signifie que vous pouvez voir la valeur de votre métrique fluctuer entre `1` et `1500m`, ou `1` et `1.5` lorsqu'elle est écrite en notation décimale.
509
499
510
500
## Autres scénarios possibles
511
501
512
-
### Création du autoscaler de manière déclarative
502
+
### Création de l'autoscaler de manière déclarative
513
503
514
504
Au lieu d'utiliser la commande `kubectl autoscale` pour créer un HorizontalPodAutoscaler de manière impérative,
515
505
nous pouvons utiliser le manifeste suivant pour le créer de manière déclarative :
0 commit comments