6.5. Permettre aux conteneurs de consommer des objets API
Le site Downward API est un mécanisme qui permet aux conteneurs de consommer des informations sur les objets API sans être couplés à OpenShift Container Platform. Ces informations comprennent le nom du pod, l'espace de noms et les valeurs des ressources. Les conteneurs peuvent consommer les informations de l'API descendante à l'aide de variables d'environnement ou d'un plugin de volume.
6.5.1. Exposer les informations sur les pods aux conteneurs à l'aide de l'API descendante Copier lienLien copié sur presse-papiers!
L'API descendante contient des informations telles que le nom du pod, le projet et les valeurs des ressources. Les conteneurs peuvent consommer les informations de l'API descendante à l'aide de variables d'environnement ou d'un plugin de volume.
Les champs du module sont sélectionnés à l'aide du type d'API FieldRef
. FieldRef
comporte deux champs :
Field | Description |
---|---|
| Le chemin du champ à sélectionner, par rapport au pod. |
|
La version de l'API dans laquelle le sélecteur |
Actuellement, les sélecteurs valides dans l'API v1 sont les suivants :
Sélecteur | Description |
---|---|
| Le nom du module. Ceci est supporté à la fois dans les variables d'environnement et les volumes. |
| L'espace de noms du pod est pris en charge à la fois par les variables d'environnement et les volumes. |
| Les étiquettes du pod. Ceci n'est possible que dans les volumes et non dans les variables d'environnement. |
| Les annotations du pod. Ceci n'est possible que dans les volumes et non dans les variables d'environnement. |
| L'IP du pod. Ceci n'est supporté que dans les variables d'environnement et non dans les volumes. |
Le champ apiVersion
, s'il n'est pas spécifié, prend par défaut la version API du modèle de pod qui l'entoure.
6.5.2. Comprendre comment consommer les valeurs des conteneurs à l'aide de l'API descendante Copier lienLien copié sur presse-papiers!
Les conteneurs peuvent consommer les valeurs de l'API à l'aide de variables d'environnement ou d'un plugin de volume. Selon la méthode choisie, les conteneurs peuvent consommer :
- Nom du pod
- Pod projet/espace de noms
- Annotations sur les pods
- Étiquettes des gousses
Les annotations et les étiquettes sont disponibles en utilisant uniquement un plugin de volume.
6.5.2.1. Consommer des valeurs de conteneurs à l'aide de variables d'environnement Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez les variables d'environnement d'un conteneur, utilisez le champ valueFrom
du type EnvVar
(de type EnvVarSource
) pour spécifier que la valeur de la variable doit provenir d'une source FieldRef
au lieu de la valeur littérale spécifiée par le champ value
.
Seuls les attributs constants du pod peuvent être consommés de cette manière, car les variables d'environnement ne peuvent pas être mises à jour une fois qu'un processus est lancé d'une manière qui permette au processus d'être informé que la valeur d'une variable a changé. Les champs pris en charge par les variables d'environnement sont les suivants
- Nom du pod
- Pod projet/espace de noms
Procédure
Pour utiliser des variables d'environnement
Créer un fichier
pod.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le pod à partir du fichier
pod.yaml
:oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez les journaux du conteneur pour les valeurs
MY_POD_NAME
etMY_POD_NAMESPACE
:oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.2.2. Consommer les valeurs d'un conteneur à l'aide d'un plugin de volume Copier lienLien copié sur presse-papiers!
Les conteneurs peuvent consommer les valeurs de l'API à l'aide d'un plugin de volume.
Les conteneurs peuvent consommer :
- Nom du pod
- Pod projet/espace de noms
- Annotations sur les pods
- Étiquettes des gousses
Procédure
Pour utiliser le plugin de volume :
Créer un fichier
volume-pod.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le pod à partir du fichier
volume-pod.yaml
:oc create -f volume-pod.yaml
$ oc create -f volume-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Consultez les journaux du conteneur et vérifiez la présence des champs configurés :
oc logs -p dapi-volume-test-pod
$ oc logs -p dapi-volume-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3. Comprendre comment consommer les ressources d'un conteneur à l'aide de l'API descendante Copier lienLien copié sur presse-papiers!
Lors de la création de pods, vous pouvez utiliser l'API descendante pour injecter des informations sur les demandes et les limites des ressources informatiques afin que les auteurs d'images et d'applications puissent créer correctement une image pour des environnements spécifiques.
Vous pouvez le faire en utilisant une variable d'environnement ou un plugin de volume.
6.5.3.1. Consommer les ressources d'un conteneur à l'aide de variables d'environnement Copier lienLien copié sur presse-papiers!
Lors de la création de pods, vous pouvez utiliser l'API descendante pour injecter des informations sur les demandes et les limites des ressources informatiques à l'aide de variables d'environnement.
Procédure
Pour utiliser les variables d'environnement :
Lors de la création d'une configuration de pod, spécifiez les variables d'environnement qui correspondent au contenu du champ
resources
dans le champspec.container
dans le champCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si les limites de ressources ne sont pas incluses dans la configuration du conteneur, l'API descendante utilise par défaut les valeurs de CPU et de mémoire allouables du nœud.
Créer le pod à partir du fichier
pod.yaml
fichier :oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3.2. Consommer les ressources d'un conteneur à l'aide d'un plugin de volume Copier lienLien copié sur presse-papiers!
Lors de la création de pods, vous pouvez utiliser l'API Downward pour injecter des informations sur les demandes et les limites des ressources informatiques à l'aide d'un plugin de volume.
Procédure
Pour utiliser le plugin de volume :
Lors de la création d'une configuration de pod, utilisez le champ
spec.volumes.downwardAPI.items
pour décrire les ressources souhaitées qui correspondent au champspec.resources
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si les limites de ressources ne sont pas incluses dans la configuration du conteneur, l'API descendante utilise par défaut les valeurs de l'unité centrale et de la mémoire allouable du nœud.
Créer le pod à partir du fichier
volume-pod.yaml
fichier :oc create -f volume-pod.yaml
$ oc create -f volume-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.4. Consommer des secrets à l'aide de l'API descendante Copier lienLien copié sur presse-papiers!
Lors de la création de pods, vous pouvez utiliser l'API descendante pour injecter des secrets afin que les auteurs d'images et d'applications puissent créer une image pour des environnements spécifiques.
Procédure
Créer un fichier
secret.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un objet
Secret
à partir du fichiersecret.yaml
:oc create -f secret.yaml
$ oc create -f secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un fichier
pod.yaml
qui fait référence au champusername
de l'objetSecret
ci-dessus :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le pod à partir du fichier
pod.yaml
:oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez les journaux du conteneur pour la valeur
MY_SECRET_USERNAME
:oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.5. Consommer des cartes de configuration à l'aide de l'API descendante Copier lienLien copié sur presse-papiers!
Lors de la création de pods, vous pouvez utiliser l'API Downward pour injecter des valeurs de carte de configuration afin que les auteurs d'images et d'applications puissent créer une image pour des environnements spécifiques.
Procédure
Créer un
configmap.yaml
fichier :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un objet
ConfigMap
à partir duconfigmap.yaml
fichier :oc create -f configmap.yaml
$ oc create -f configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un fichier
pod.yaml
qui fait référence à l'objetConfigMap
ci-dessus :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le pod à partir du fichier
pod.yaml
fichier :oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez les journaux du conteneur pour la valeur
MY_CONFIGMAP_VALUE
:oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.6. Référence aux variables d'environnement Copier lienLien copié sur presse-papiers!
Lors de la création de pods, vous pouvez faire référence à la valeur d'une variable d'environnement précédemment définie en utilisant la syntaxe $()
. Si la référence à la variable d'environnement ne peut pas être résolue, la valeur sera laissée sous la forme de la chaîne fournie.
Procédure
Créer un fichier
pod.yaml
qui fait référence à un fichier existantenvironment variable
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le pod à partir du fichier
pod.yaml
fichier :oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez les journaux du conteneur pour la valeur
MY_ENV_VAR_REF_ENV
:oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.7. Échapper aux références aux variables d'environnement Copier lienLien copié sur presse-papiers!
Lors de la création d'un module, vous pouvez échapper à une référence à une variable d'environnement en utilisant un double signe de dollar. La valeur sera alors remplacée par une version avec un seul signe de dollar de la valeur fournie.
Procédure
Créer un fichier
pod.yaml
qui fait référence à un fichier existantenvironment variable
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le pod à partir du fichier
pod.yaml
fichier :oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez les journaux du conteneur pour la valeur
MY_NEW_ENV
:oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow