|
| 1 | +--- |
| 2 | +title: Définir des variables d'environnement pour un Container |
| 3 | +content_type: task |
| 4 | +weight: 20 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | + |
| 9 | +Cette page montre comment définir des variables d'environnement pour un |
| 10 | +container au sein d'un Pod Kubernetes. |
| 11 | + |
| 12 | +## {{% heading "prerequisites" %}} |
| 13 | + |
| 14 | +{{< include "task-tutorial-prereqs.md" >}} |
| 15 | + |
| 16 | +<!-- steps --> |
| 17 | + |
| 18 | +## Définir une variable d'environnement pour un container |
| 19 | + |
| 20 | +Lorsque vous créez un Pod, vous pouvez définir des variables d'environnement |
| 21 | +pour les containers qui seront exécutés au sein du Pod. |
| 22 | +Pour les définir, utilisez le champ `env` ou `envFrom` |
| 23 | +dans le fichier de configuration. |
| 24 | + |
| 25 | +Dans cet exercice, vous allez créer un Pod qui exécute un container. Le fichier de configuration pour ce Pod contient une variable d'environnement s'appelant `DEMO_GREETING` et sa valeur est `"Hello from the environment"`. Voici le fichier de configuration du Pod: |
| 26 | + |
| 27 | +{{< codenew file="pods/inject/envars.yaml" >}} |
| 28 | + |
| 29 | +1. Créez un Pod à partir de ce fichier: |
| 30 | + |
| 31 | + ```shell |
| 32 | + kubectl apply -f https://k8s.io/examples/pods/inject/envars.yaml |
| 33 | + ``` |
| 34 | + |
| 35 | +1. Listez les Pods: |
| 36 | + |
| 37 | + ```shell |
| 38 | + kubectl get pods -l purpose=demonstrate-envars |
| 39 | + ``` |
| 40 | + |
| 41 | + Le résultat sera similaire à celui-ci: |
| 42 | + |
| 43 | + ``` |
| 44 | + NAME READY STATUS RESTARTS AGE |
| 45 | + envar-demo 1/1 Running 0 9s |
| 46 | + ``` |
| 47 | + |
| 48 | +1. Listez les variables d'environnement au sein du container: |
| 49 | + |
| 50 | + ```shell |
| 51 | + kubectl exec envar-demo -- printenv |
| 52 | + ``` |
| 53 | + |
| 54 | + Le résultat sera similaire à celui-ci: |
| 55 | + |
| 56 | + ``` |
| 57 | + NODE_VERSION=4.4.2 |
| 58 | + EXAMPLE_SERVICE_PORT_8080_TCP_ADDR=10.3.245.237 |
| 59 | + HOSTNAME=envar-demo |
| 60 | + ... |
| 61 | + DEMO_GREETING=Hello from the environment |
| 62 | + DEMO_FAREWELL=Such a sweet sorrow |
| 63 | + ``` |
| 64 | + |
| 65 | +{{< note >}} |
| 66 | +Les variables d'environnement définies dans les champs `env` ou `envFrom` |
| 67 | +écraseront les variables définies dans l'image utilisée par le container. |
| 68 | +{{< /note >}} |
| 69 | + |
| 70 | +{{< note >}} |
| 71 | +Une variable d'environnement peut faire référence à une autre variable, |
| 72 | +cependant l'ordre de déclaration est important. Une variable faisant référence |
| 73 | +à une autre doit être déclarée après la variable référencée. |
| 74 | +De plus, il est recommandé d'éviter les références circulaires. |
| 75 | +{{< /note >}} |
| 76 | + |
| 77 | +## Utilisez des variables d'environnement dans la configuration |
| 78 | + |
| 79 | +Les variables d'environnement que vous définissez dans la configuration d'un Pod peuvent être utilisées à d'autres endroits de la configuration, comme par exemple dans les commandes et arguments pour les containers. |
| 80 | +Dans l'exemple ci-dessous, les variables d'environnement `GREETING`, `HONORIFIC`, et |
| 81 | +`NAME` ont des valeurs respectives de `Warm greetings to`, `The Most |
| 82 | +Honorable`, et `Kubernetes`. Ces variables sont ensuites utilisées comme arguments |
| 83 | +pour le container `env-print-demo`. |
| 84 | + |
| 85 | +```yaml |
| 86 | +apiVersion: v1 |
| 87 | +kind: Pod |
| 88 | +metadata: |
| 89 | + name: print-greeting |
| 90 | +spec: |
| 91 | + containers: |
| 92 | + - name: env-print-demo |
| 93 | + image: bash |
| 94 | + env: |
| 95 | + - name: GREETING |
| 96 | + value: "Warm greetings to" |
| 97 | + - name: HONORIFIC |
| 98 | + value: "The Most Honorable" |
| 99 | + - name: NAME |
| 100 | + value: "Kubernetes" |
| 101 | + command: ["echo"] |
| 102 | + args: ["$(GREETING) $(HONORIFIC) $(NAME)"] |
| 103 | +``` |
| 104 | +
|
| 105 | +Une fois le Pod créé, la commande `echo Warm greetings to The Most Honorable Kubernetes` sera exécutée dans le container. |
| 106 | + |
| 107 | +## {{% heading "whatsnext" %}} |
| 108 | + |
| 109 | +* En savoir plus sur les [variables d'environnement](/docs/tasks/inject-data-application/environment-variable-expose-pod-information/). |
| 110 | +* Apprendre à [utiliser des secrets comme variables d'environnement](/docs/concepts/configuration/secret/#using-secrets-as-environment-variables). |
| 111 | +* Voir la documentation de référence pour [EnvVarSource](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#envvarsource-v1-core). |
| 112 | + |
0 commit comments