13.3. Consommation d'énormes pages de ressources à l'aide de l'API Downward
Vous pouvez utiliser l'API Downward pour injecter des informations sur les ressources de pages volumineuses consommées par un conteneur.
Vous pouvez injecter l'allocation des ressources sous la forme de variables d'environnement, d'un plugin de volume ou des deux. Les applications que vous développez et exécutez dans le conteneur peuvent déterminer les ressources disponibles en lisant les variables d'environnement ou les fichiers dans les volumes spécifiés.
Procédure
Créez un fichier
hugepages-volume-pod.yaml
similaire à l'exemple suivant :apiVersion: v1 kind: Pod metadata: generateName: hugepages-volume- labels: app: hugepages-example spec: containers: - securityContext: capabilities: add: [ "IPC_LOCK" ] image: rhel7:latest command: - sleep - inf name: example volumeMounts: - mountPath: /dev/hugepages name: hugepage - mountPath: /etc/podinfo name: podinfo resources: limits: hugepages-1Gi: 2Gi memory: "1Gi" cpu: "1" requests: hugepages-1Gi: 2Gi env: - name: REQUESTS_HUGEPAGES_1GI <.> valueFrom: resourceFieldRef: containerName: example resource: requests.hugepages-1Gi volumes: - name: hugepage emptyDir: medium: HugePages - name: podinfo downwardAPI: items: - path: "hugepages_1G_request" <.> resourceFieldRef: containerName: example resource: requests.hugepages-1Gi divisor: 1Gi
<.> Spécifie de lire l'utilisation des ressources à partir de
requests.hugepages-1Gi
et d'exposer la valeur en tant que variable d'environnementREQUESTS_HUGEPAGES_1GI
. <.> Spécifie de lire l'utilisation des ressources à partir derequests.hugepages-1Gi
et d'exposer la valeur en tant que fichier/etc/podinfo/hugepages_1G_request
.Créer le pod à partir du fichier
hugepages-volume-pod.yaml
:$ oc create -f hugepages-volume-pod.yaml
Vérification
Vérifiez la valeur de la variable d'environnement
REQUESTS_HUGEPAGES_1GI
:$ oc exec -it $(oc get pods -l app=hugepages-example -o jsonpath='{.items[0].metadata.name}') \ -- env | grep REQUESTS_HUGEPAGES_1GI
Exemple de sortie
REQUESTS_HUGEPAGES_1GI=2147483648
Vérifier la valeur du fichier
/etc/podinfo/hugepages_1G_request
:$ oc exec -it $(oc get pods -l app=hugepages-example -o jsonpath='{.items[0].metadata.name}') \ -- cat /etc/podinfo/hugepages_1G_request
Exemple de sortie
2
Ressources supplémentaires