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

  1. 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'environnement REQUESTS_HUGEPAGES_1GI. <.> Spécifie de lire l'utilisation des ressources à partir de requests.hugepages-1Gi et d'exposer la valeur en tant que fichier /etc/podinfo/hugepages_1G_request.

  2. Créer le pod à partir du fichier hugepages-volume-pod.yaml:

    $ oc create -f hugepages-volume-pod.yaml

Vérification

  1. 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

  2. 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

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.