Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Define Environment Variables for a Container
Définir des variables d'environnement pour un Container
Cette page montre comment définir des variables d'environnement pour un container au sein d'un Pod Kubernetes.
Pré-requis
Vous devez disposer d'un cluster Kubernetes et l'outil de ligne de commande kubectl doit être configuré pour communiquer avec votre cluster. Si vous ne possédez pas déjà de cluster, vous pouvez en créer un en utilisant Minikube, ou vous pouvez utiliser l'un de ces environnements Kubernetes:
Définir une variable d'environnement pour un container
Lorsque vous créez un Pod, vous pouvez définir des variables d'environnement
pour les containers qui seront exécutés au sein du Pod.
Pour les définir, utilisez le champ env
ou envFrom
dans le fichier de configuration.
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:
apiVersion: v1
kind: Pod
metadata:
name: envar-demo
labels:
purpose: demonstrate-envars
spec:
containers:
- name: envar-demo-container
image: gcr.io/google-samples/node-hello:1.0
env:
- name: DEMO_GREETING
value: "Hello from the environment"
- name: DEMO_FAREWELL
value: "Such a sweet sorrow"
-
Créez un Pod à partir de ce fichier:
kubectl apply -f https://k8s.io/examples/pods/inject/envars.yaml
-
Listez les Pods:
kubectl get pods -l purpose=demonstrate-envars
Le résultat sera similaire à celui-ci:
NAME READY STATUS RESTARTS AGE envar-demo 1/1 Running 0 9s
-
Listez les variables d'environnement au sein du container:
kubectl exec envar-demo -- printenv
Le résultat sera similaire à celui-ci:
NODE_VERSION=4.4.2 EXAMPLE_SERVICE_PORT_8080_TCP_ADDR=10.3.245.237 HOSTNAME=envar-demo ... DEMO_GREETING=Hello from the environment DEMO_FAREWELL=Such a sweet sorrow
Note:
Les variables d'environnement définies dans les champsenv
ou envFrom
écraseront les variables définies dans l'image utilisée par le container.Note:
Une variable d'environnement peut faire référence à une autre variable, cependant l'ordre de déclaration est important. Une variable faisant référence à une autre doit être déclarée après la variable référencée. De plus, il est recommandé d'éviter les références circulaires.Utilisez des variables d'environnement dans la configuration
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.
Dans l'exemple ci-dessous, les variables d'environnement GREETING
, HONORIFIC
, et
NAME
ont des valeurs respectives de Warm greetings to
, The Most Honorable
, et Kubernetes
. Ces variables sont ensuites utilisées comme arguments
pour le container env-print-demo
.
apiVersion: v1
kind: Pod
metadata:
name: print-greeting
spec:
containers:
- name: env-print-demo
image: bash
env:
- name: GREETING
value: "Warm greetings to"
- name: HONORIFIC
value: "The Most Honorable"
- name: NAME
value: "Kubernetes"
command: ["echo"]
args: ["$(GREETING) $(HONORIFIC) $(NAME)"]
Une fois le Pod créé, la commande echo Warm greetings to The Most Honorable Kubernetes
sera exécutée dans le container.
A suivre
- En savoir plus sur les variables d'environnement.
- Apprendre à utiliser des secrets comme variables d'environnement.
- Voir la documentation de référence pour EnvVarSource.