Chapitre 7. Quotas


7.1. Quotas de ressources par projet

Le quota de ressources, défini par un objet ResourceQuota, fournit des contraintes qui limitent la consommation globale de ressources par projet. Il peut limiter la quantité d’objets qui peuvent être créés dans un projet par type, ainsi que la quantité totale de ressources de calcul et de stockage qui pourraient être consommés par les ressources de ce projet.

Ce guide décrit comment fonctionnent les quotas de ressources, comment les administrateurs de clusters peuvent définir et gérer les quotas de ressources par projet, et comment les développeurs et les administrateurs de clusters peuvent les voir.

7.1.1. Les ressources gérées par les quotas

Ce qui suit décrit l’ensemble des ressources de calcul et des types d’objets qui peuvent être gérés par un quota.

Note

Le pod est dans un état terminal si Status.phase dans (Failed, Succeed) est vrai.

Expand
Tableau 7.1. Calcul des ressources gérées par quota
Le nom de la ressourceDescription

CPU

La somme des requêtes CPU dans tous les pods dans un état non terminal ne peut pas dépasser cette valeur. CPU et request.cpu sont la même valeur et peuvent être utilisés de manière interchangeable.

la mémoire

La somme des requêtes de mémoire dans tous les pods dans un état non terminal ne peut pas dépasser cette valeur. la mémoire et les requêtes.memory sont la même valeur et peuvent être utilisées de manière interchangeable.

demandes.cpu

La somme des requêtes CPU dans tous les pods dans un état non terminal ne peut pas dépasser cette valeur. CPU et request.cpu sont la même valeur et peuvent être utilisés de manière interchangeable.

demandes.memory

La somme des requêtes de mémoire dans tous les pods dans un état non terminal ne peut pas dépasser cette valeur. la mémoire et les requêtes.memory sont la même valeur et peuvent être utilisées de manière interchangeable.

limites.cpu

La somme des limites CPU sur toutes les gousses dans un état non terminal ne peut pas dépasser cette valeur.

Limites.memory

La somme des limites de mémoire à travers tous les pods dans un état non terminal ne peut pas dépasser cette valeur.

Expand
Tableau 7.2. Les ressources de stockage gérées par quota
Le nom de la ressourceDescription

demandes.stockage

La somme des demandes de stockage sur toutes les revendications de volume persistant dans n’importe quel état ne peut pas dépasser cette valeur.

revendications persistantes du volume

Le nombre total de revendications de volume persistant qui peuvent exister dans le projet.

<storage-class-name>.storageclass.storage.k8s.io/requests.storage

La somme des demandes de stockage pour toutes les revendications de volume persistantes dans n’importe quel état ayant une classe de stockage correspondante ne peut pas dépasser cette valeur.

<storage-class-name>.storageclass.storage.k8s.io/persistentvolumeclaims

Le nombre total de revendications de volume persistant avec une classe de stockage correspondante qui peut exister dans le projet.

le stockage éphémère

La somme des demandes de stockage éphémères locales dans toutes les gousses dans un état non terminal ne peut pas dépasser cette valeur. le stockage éphémère et les requêtes.ephemeral-stockage sont la même valeur et peuvent être utilisés de manière interchangeable.

demandes.ephemeral-stockage

La somme des demandes de stockage éphémères dans toutes les gousses dans un état non terminal ne peut pas dépasser cette valeur. le stockage éphémère et les requêtes.ephemeral-stockage sont la même valeur et peuvent être utilisés de manière interchangeable.

limites.ephemeral-stockage

La somme des limites de stockage éphémères dans toutes les gousses dans un état non terminal ne peut pas dépasser cette valeur.

Expand
Tableau 7.3. Comptages d’objets gérés par quota
Le nom de la ressourceDescription

les gousses

Le nombre total de pods dans un état non terminal qui peut exister dans le projet.

contrôleurs de réplication

Le nombre total de RéplicationControllers qui peuvent exister dans le projet.

quotas de ressources

Le nombre total de quotas de ressources pouvant exister dans le projet.

les services

Le nombre total de services pouvant exister dans le projet.

balanceurs de charge Services.

Le nombre total de services de type LoadBalancer qui peuvent exister dans le projet.

les services.nodeports

Le nombre total de services de type NodePort pouvant exister dans le projet.

les secrets

Le nombre total de secrets qui peuvent exister dans le projet.

ConfigMaps

Le nombre total d’objets ConfigMap pouvant exister dans le projet.

revendications persistantes du volume

Le nombre total de revendications de volume persistant qui peuvent exister dans le projet.

informations sur OpenShift.io/imagestreams

Le nombre total de flux d’images pouvant exister dans le projet.

7.1.2. Champ d’application des quotas

Chaque quota peut avoir un ensemble de portées associées. Le quota ne mesure l’utilisation d’une ressource que s’il correspond à l’intersection des périmètres énumérés.

L’ajout d’une portée à un quota limite l’ensemble des ressources auxquelles ce quota peut s’appliquer. La spécification d’une ressource en dehors de l’ensemble autorisé entraîne une erreur de validation.

Expand

Champ d’application

Description

BestEffort

Assortir des gousses qui ont le meilleur effort de qualité de service pour le cpu ou la mémoire.

À propos de NotBestEffort

Assortir des gousses qui n’ont pas le meilleur effort de qualité de service pour le cpu et la mémoire.

La portée de BestEffort limite un quota à la limitation des ressources suivantes:

  • les gousses

La portée NotBestEffort limite un quota au suivi des ressources suivantes:

  • les gousses
  • la mémoire
  • demandes.memory
  • Limites.memory
  • CPU
  • demandes.cpu
  • limites.cpu

7.1.3. Application des quotas

Après la création d’un quota de ressources pour un projet, le projet restreint la possibilité de créer de nouvelles ressources qui pourraient violer une contrainte de quota jusqu’à ce qu’il ait calculé des statistiques d’utilisation mises à jour.

Après la création d’un quota et la mise à jour des statistiques d’utilisation, le projet accepte la création de nouveaux contenus. Lorsque vous créez ou modifiez des ressources, votre utilisation de quota est incrémentée immédiatement à la demande de créer ou de modifier la ressource.

Lorsque vous supprimez une ressource, votre utilisation des quotas est décrémentée lors de la prochaine recalcul complet des statistiques des quotas pour le projet. Le temps configurable détermine combien de temps il faut pour réduire les statistiques d’utilisation des quotas à la valeur actuelle du système observé.

Lorsque les modifications de projet dépassent une limite d’utilisation de quota, le serveur refuse l’action, et un message d’erreur approprié est renvoyé à l’utilisateur expliquant la contrainte de quota violée, et quelles sont les statistiques d’utilisation actuellement observées dans le système.

7.1.4. Demandes par rapport aux limites

Lors de l’attribution des ressources de calcul, chaque conteneur peut spécifier une requête et une valeur limite chacune pour le stockage CPU, mémoire et éphémère. Les quotas peuvent restreindre l’une de ces valeurs.

Lorsque le quota a une valeur spécifiée pour request.cpu ou request.memory, il exige que chaque conteneur entrant fasse une demande explicite pour ces ressources. Lorsque le quota a une valeur spécifiée pour limits.cpu ou limits.memory, il exige que chaque conteneur entrant spécifie une limite explicite pour ces ressources.

7.1.5. Exemples de définitions des quotas de ressources

Core-object-counts.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: core-object-counts
spec:
  hard:
    configmaps: "10" 
1

    persistentvolumeclaims: "4" 
2

    replicationcontrollers: "20" 
3

    secrets: "10" 
4

    services: "10" 
5

    services.loadbalancers: "2" 
6
Copy to Clipboard Toggle word wrap

1
Le nombre total d’objets ConfigMap pouvant exister dans le projet.
2
Le nombre total de revendications en volume persistant (PVC) qui peuvent exister dans le projet.
3
Le nombre total de contrôleurs de réplication pouvant exister dans le projet.
4
Le nombre total de secrets qui peuvent exister dans le projet.
5
Le nombre total de services pouvant exister dans le projet.
6
Le nombre total de services de type LoadBalancer qui peuvent exister dans le projet.

ajouter au panier OpenShift-object-counts.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: openshift-object-counts
spec:
  hard:
    openshift.io/imagestreams: "10" 
1
Copy to Clipboard Toggle word wrap

1
Le nombre total de flux d’images pouvant exister dans le projet.

calcul-resources.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    pods: "4" 
1

    requests.cpu: "1" 
2

    requests.memory: 1Gi 
3

    limits.cpu: "2" 
4

    limits.memory: 2Gi 
5
Copy to Clipboard Toggle word wrap

1
Le nombre total de pods dans un état non terminal qui peut exister dans le projet.
2
Dans tous les pods dans un état non terminal, la somme des requêtes CPU ne peut pas dépasser 1 cœur.
3
Dans tous les pods dans un état non terminal, la somme des requêtes de mémoire ne peut pas dépasser 1Gi.
4
Dans toutes les gousses dans un état non terminal, la somme des limites CPU ne peut pas dépasser 2 cœurs.
5
Dans toutes les gousses dans un état non terminal, la somme des limites de mémoire ne peut pas dépasser 2Gi.

le meilleur effort.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: besteffort
spec:
  hard:
    pods: "1" 
1

  scopes:
  - BestEffort 
2
Copy to Clipboard Toggle word wrap

1
Le nombre total de pods dans un état non terminal avec la qualité de service BestEffort qui peut exister dans le projet.
2
Limite le quota aux seuls pods assortis qui ont une qualité de service BestEffort pour la mémoire ou le CPU.

calcul-ressources-long-running.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources-long-running
spec:
  hard:
    pods: "4" 
1

    limits.cpu: "4" 
2

    limits.memory: "2Gi" 
3

  scopes:
  - NotTerminating 
4
Copy to Clipboard Toggle word wrap

1
Le nombre total de gousses dans un état non terminal.
2
Dans toutes les gousses dans un état non terminal, la somme des limites CPU ne peut pas dépasser cette valeur.
3
Dans toutes les gousses dans un état non-terminal, la somme des limites de mémoire ne peut pas dépasser cette valeur.
4
Limite le quota à des pods correspondant uniquement lorsque spec.activeDeadlineSeconds est fixé à zéro. Les pods de construction relèvent de Non-Terminating à moins que la politique de redémarrage ne soit appliquée.

calcul-resources-time-bound.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources-time-bound
spec:
  hard:
    pods: "2" 
1

    limits.cpu: "1" 
2

    limits.memory: "1Gi" 
3

  scopes:
  - Terminating 
4
Copy to Clipboard Toggle word wrap

1
Le nombre total de pods dans un état de terminaison.
2
Dans tous les pods dans un état de terminaison, la somme des limites CPU ne peut pas dépasser cette valeur.
3
Dans tous les pods dans un état de terminaison, la somme des limites de mémoire ne peut pas dépasser cette valeur.
4
Limite le quota à des pods correspondant uniquement lorsque spec.activeDeadlineSeconds >=0. À titre d’exemple, ce quota coûte des pods de construction ou de déploiement, mais pas des pods en cours d’exécution comme un serveur Web ou une base de données.

conservation-consommation.yaml

apiVersion: v1
kind: ResourceQuota
metadata:
  name: storage-consumption
spec:
  hard:
    persistentvolumeclaims: "10" 
1

    requests.storage: "50Gi" 
2

    gold.storageclass.storage.k8s.io/requests.storage: "10Gi" 
3

    silver.storageclass.storage.k8s.io/requests.storage: "20Gi" 
4

    silver.storageclass.storage.k8s.io/persistentvolumeclaims: "5" 
5

    bronze.storageclass.storage.k8s.io/requests.storage: "0" 
6

    bronze.storageclass.storage.k8s.io/persistentvolumeclaims: "0" 
7

    requests.ephemeral-storage: 2Gi 
8

    limits.ephemeral-storage: 4Gi 
9
Copy to Clipboard Toggle word wrap

1
Le nombre total de réclamations en volume persistant dans un projet
2
Dans toutes les demandes de volume persistantes dans un projet, la somme de stockage demandée ne peut pas dépasser cette valeur.
3
Dans toutes les revendications de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage aurifère ne peut pas dépasser cette valeur.
4
Dans toutes les revendications de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage d’argent ne peut pas dépasser cette valeur.
5
Dans toutes les revendications en volume persistant dans un projet, le nombre total de revendications dans la classe de stockage d’argent ne peut pas dépasser cette valeur.
6
Dans toutes les demandes de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage de bronze ne peut pas dépasser cette valeur. Lorsque cela est réglé à 0, cela signifie que la classe de stockage en bronze ne peut pas demander de stockage.
7
Dans toutes les demandes de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage de bronze ne peut pas dépasser cette valeur. Lorsque cela est réglé à 0, cela signifie que la classe de stockage de bronze ne peut pas créer de revendications.
8
Dans toutes les gousses dans un état non terminal, la somme des demandes de stockage éphémère ne peut pas dépasser 2Gi.
9
Dans toutes les gousses dans un état non terminal, la somme des limites de stockage éphémères ne peut pas dépasser 4Gi.

7.1.6. Créer un quota

Il est possible de créer un quota pour limiter l’utilisation des ressources dans un projet donné.

Procédure

  1. Définissez le quota dans un fichier.
  2. À utiliser le fichier pour créer le quota et l’appliquer à un projet:

    $ oc create -f <file> [-n <project_name>]
    Copy to Clipboard Toggle word wrap

    À titre d’exemple:

    $ oc create -f core-object-counts.yaml -n demoproject
    Copy to Clipboard Toggle word wrap

7.1.6.1. Création de quotas de comptage d’objets

Il est possible de créer un quota de nombre d’objets pour tous les types de ressources standard d’espacement de noms sur Red Hat OpenShift Service sur AWS, tels que les objets BuildConfig et DeploymentConfig. Le nombre de quotas d’objets place un quota défini sur tous les types de ressources standard en espace de noms.

Lors de l’utilisation d’un quota de ressources, un objet est facturé sur le quota lors de la création. Ces types de quotas sont utiles pour protéger contre l’épuisement des ressources. Le quota ne peut être créé que s’il y a suffisamment de ressources de rechange dans le projet.

Procédure

Configurer un quota de nombre d’objets pour une ressource:

  1. Exécutez la commande suivante:

    $ oc create quota <name> \
        --hard=count/<resource>.<group>=<quota>,count/<resource>.<group>=<quota> 
    1
    Copy to Clipboard Toggle word wrap
    1
    La variable &lt;resource&gt; est le nom de la ressource, et <group> est le groupe API, le cas échéant. Utilisez la commande oc api-ressources pour une liste de ressources et leurs groupes API associés.

    À titre d’exemple:

    $ oc create quota test \
        --hard=count/deployments.extensions=2,count/replicasets.extensions=4,count/pods=3,count/secrets=4
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    resourcequota "test" created
    Copy to Clipboard Toggle word wrap

    Cet exemple limite les ressources répertoriées à la limite dure de chaque projet du cluster.

  2. Assurez-vous que le quota a été créé:

    $ oc describe quota test
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:                         test
    Namespace:                    quota
    Resource                      Used  Hard
    --------                      ----  ----
    count/deployments.extensions  0     2
    count/pods                    0     3
    count/replicasets.extensions  0     4
    count/secrets                 0     4
    Copy to Clipboard Toggle word wrap

Le surengagement des ressources n’est pas autorisé pour les ressources étendues, vous devez donc spécifier les demandes et les limites pour la même ressource étendue dans un quota. Actuellement, seuls les éléments de quota avec les demandes de préfixe. est autorisé pour les ressources étendues. Ce qui suit est un scénario d’exemple de la façon de définir le quota de ressources pour la ressource GPU nvidia.com/gpu.

Procédure

  1. Déterminez combien de GPU sont disponibles sur un nœud dans votre cluster. À titre d’exemple:

    # oc describe node ip-172-31-27-209.us-west-2.compute.internal | egrep 'Capacity|Allocatable|gpu'
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

                        openshift.com/gpu-accelerator=true
    Capacity:
     nvidia.com/gpu:  2
    Allocatable:
     nvidia.com/gpu:  2
      nvidia.com/gpu  0           0
    Copy to Clipboard Toggle word wrap

    Dans cet exemple, 2 GPU sont disponibles.

  2. Créez un objet ResourceQuota pour définir un quota dans l’espace de noms nvidia. Dans cet exemple, le quota est 1:

    Exemple de sortie

    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: gpu-quota
      namespace: nvidia
    spec:
      hard:
        requests.nvidia.com/gpu: 1
    Copy to Clipboard Toggle word wrap

  3. Créer le quota:

    # oc create -f gpu-quota.yaml
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    resourcequota/gpu-quota created
    Copy to Clipboard Toggle word wrap

  4. Assurez-vous que l’espace de noms a le bon jeu de quotas:

    # oc describe quota gpu-quota -n nvidia
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:                    gpu-quota
    Namespace:               nvidia
    Resource                 Used  Hard
    --------                 ----  ----
    requests.nvidia.com/gpu  0     1
    Copy to Clipboard Toggle word wrap

  5. Définissez un pod qui demande un seul GPU. Le fichier de définition d’exemple suivant est appelé gpu-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      generateName: gpu-pod-
      namespace: nvidia
    spec:
      restartPolicy: OnFailure
      containers:
      - name: rhel7-gpu-pod
        image: rhel7
        env:
          - name: NVIDIA_VISIBLE_DEVICES
            value: all
          - name: NVIDIA_DRIVER_CAPABILITIES
            value: "compute,utility"
          - name: NVIDIA_REQUIRE_CUDA
            value: "cuda>=5.0"
        command: ["sleep"]
        args: ["infinity"]
        resources:
          limits:
            nvidia.com/gpu: 1
    Copy to Clipboard Toggle word wrap
  6. Créer le pod:

    # oc create -f gpu-pod.yaml
    Copy to Clipboard Toggle word wrap
  7. Assurez-vous que le pod est en cours d’exécution:

    # oc get pods
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME              READY     STATUS      RESTARTS   AGE
    gpu-pod-s46h7     1/1       Running     0          1m
    Copy to Clipboard Toggle word wrap

  8. Assurez-vous que le compteur utilisé est correct:

    # oc describe quota gpu-quota -n nvidia
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:                    gpu-quota
    Namespace:               nvidia
    Resource                 Used  Hard
    --------                 ----  ----
    requests.nvidia.com/gpu  1     1
    Copy to Clipboard Toggle word wrap

  9. Essayez de créer un deuxième pod GPU dans l’espace de noms nvidia. Ceci est techniquement disponible sur le nœud car il dispose de 2 GPU:

    # oc create -f gpu-pod.yaml
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Error from server (Forbidden): error when creating "gpu-pod.yaml": pods "gpu-pod-f7z2w" is forbidden: exceeded quota: gpu-quota, requested: requests.nvidia.com/gpu=1, used: requests.nvidia.com/gpu=1, limited: requests.nvidia.com/gpu=1
    Copy to Clipboard Toggle word wrap

    Ce message d’erreur interdit est attendu parce que vous avez un quota de 1 GPU et ce pod a essayé d’allouer un second GPU, qui dépasse son quota.

7.1.7. Affichage d’un quota

Les statistiques d’utilisation liées à toute limite dure définie dans le quota d’un projet peuvent être affichées en naviguant dans la console Web vers la page Quota du projet.

Il est également possible d’utiliser le CLI pour afficher les détails des quotas.

Procédure

  1. Demandez la liste des quotas définis dans le projet. À titre d’exemple, pour un projet appelé démoproject:

    $ oc get quota -n demoproject
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                           AGE    REQUEST                                                                                                      LIMIT
    besteffort                     4s     pods: 1/2
    compute-resources-time-bound   10m    pods: 0/2                                                                                                    limits.cpu: 0/1, limits.memory: 0/1Gi
    core-object-counts             109s   configmaps: 2/10, persistentvolumeclaims: 1/4, replicationcontrollers: 1/20, secrets: 9/10, services: 2/10
    Copy to Clipboard Toggle word wrap

  2. Décrivez le quota qui vous intéresse, par exemple le quota des comptes d’objets de base:

    $ oc describe quota core-object-counts -n demoproject
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:			core-object-counts
    Namespace:		demoproject
    Resource		Used	Hard
    --------		----	----
    configmaps		3	10
    persistentvolumeclaims	0	4
    replicationcontrollers	3	20
    secrets			9	10
    services		2	10
    Copy to Clipboard Toggle word wrap

7.1.8. Configuration des quotas de ressources explicites

Configurez des quotas de ressources explicites dans un modèle de demande de projet pour appliquer des quotas de ressources spécifiques dans de nouveaux projets.

Conditions préalables

  • Accès au cluster en tant qu’utilisateur avec le rôle cluster-admin.
  • Installez le OpenShift CLI (oc).

Procédure

  1. Ajouter une définition de quota de ressources à un modèle de demande de projet:

    • Lorsqu’un modèle de demande de projet n’existe pas dans un cluster:

      1. Créer un modèle de projet bootstrap et le produire dans un fichier appelé template.yaml:

        $ oc adm create-bootstrap-project-template -o yaml > template.yaml
        Copy to Clipboard Toggle word wrap
      2. Ajoutez une définition de quota de ressource à template.yaml. L’exemple suivant définit un quota de ressources nommé « stockage-consommation ». La définition doit être ajoutée avant les paramètres: section dans le modèle:

        - apiVersion: v1
          kind: ResourceQuota
          metadata:
            name: storage-consumption
            namespace: ${PROJECT_NAME}
          spec:
            hard:
              persistentvolumeclaims: "10" 
        1
        
              requests.storage: "50Gi" 
        2
        
              gold.storageclass.storage.k8s.io/requests.storage: "10Gi" 
        3
        
              silver.storageclass.storage.k8s.io/requests.storage: "20Gi" 
        4
        
              silver.storageclass.storage.k8s.io/persistentvolumeclaims: "5" 
        5
        
              bronze.storageclass.storage.k8s.io/requests.storage: "0" 
        6
        
              bronze.storageclass.storage.k8s.io/persistentvolumeclaims: "0" 
        7
        Copy to Clipboard Toggle word wrap
        1
        Le nombre total de revendications en volume persistant dans un projet.
        2
        Dans toutes les demandes de volume persistantes dans un projet, la somme de stockage demandée ne peut pas dépasser cette valeur.
        3
        Dans toutes les revendications de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage aurifère ne peut pas dépasser cette valeur.
        4
        Dans toutes les revendications de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage d’argent ne peut pas dépasser cette valeur.
        5
        Dans toutes les revendications en volume persistant dans un projet, le nombre total de revendications dans la classe de stockage d’argent ne peut pas dépasser cette valeur.
        6
        Dans toutes les demandes de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage de bronze ne peut pas dépasser cette valeur. Lorsque cette valeur est définie à 0, la classe de stockage bronze ne peut pas demander de stockage.
        7
        Dans toutes les demandes de volume persistantes dans un projet, la somme de stockage demandée dans la classe de stockage de bronze ne peut pas dépasser cette valeur. Lorsque cette valeur est définie à 0, la classe de stockage de bronze ne peut pas créer de revendications.
      3. Créer un modèle de demande de projet à partir du fichier template.yaml modifié dans l’espace de noms openshift-config:

        $ oc create -f template.yaml -n openshift-config
        Copy to Clipboard Toggle word wrap
        Note

        Afin d’inclure la configuration en tant qu’annotation de configuration kubectl.kubernetes.io/last-applied-configuration, ajoutez l’option --save-config à la commande oc create.

        Le modèle s’appelle par défaut project-request.

    • Lorsqu’un modèle de demande de projet existe déjà au sein d’un cluster:

      Note

      Lorsque vous gérez des objets de manière déclarative ou impérative au sein de votre cluster en utilisant des fichiers de configuration, modifiez plutôt le modèle de demande de projet existant via ces fichiers.

      1. Liste des modèles dans l’espace de noms openshift-config:

        $ oc get templates -n openshift-config
        Copy to Clipboard Toggle word wrap
      2. Éditer un modèle de demande de projet existant:

        $ oc edit template <project_request_template> -n openshift-config
        Copy to Clipboard Toggle word wrap
      3. Ajoutez une définition de quota de ressource, telle que l’exemple précédent de stockage-consommation, dans le modèle existant. La définition doit être ajoutée avant les paramètres : section dans le modèle.
  2. Lorsque vous avez créé un modèle de demande de projet, faites-le référence dans la ressource de configuration de projet du cluster:

    1. Accédez à la ressource de configuration du projet pour l’édition:

      • En utilisant la console web:

        1. Accédez à la page Administration Paramètres du cluster.
        2. Cliquez sur Configuration pour afficher toutes les ressources de configuration.
        3. Cherchez l’entrée pour Projet et cliquez sur Modifier YAML.
      • En utilisant le CLI:

        1. Editez la ressource project.config.openshift.io/cluster:

          $ oc edit project.config.openshift.io/cluster
          Copy to Clipboard Toggle word wrap
    2. Actualisez la section Spécification de la ressource de configuration du projet pour inclure les paramètres projectRequestTemplate et nom. L’exemple suivant fait référence au nom de modèle de demande de projet par défaut:

      apiVersion: config.openshift.io/v1
      kind: Project
      metadata:
      #  ...
      spec:
        projectRequestTemplate:
          name: project-request
      Copy to Clipboard Toggle word wrap
  3. Assurez-vous que le quota de ressources est appliqué lors de la création des projets:

    1. Créer un projet:

      $ oc new-project <project_name>
      Copy to Clipboard Toggle word wrap
    2. Énumérez les quotas de ressources du projet:

      $ oc get resourcequotas
      Copy to Clipboard Toggle word wrap
    3. Décrivez en détail le quota de ressources:

      $ oc describe resourcequotas <resource_quota_name>
      Copy to Clipboard Toggle word wrap
Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat