7.2. Quotas de ressources pour plusieurs projets
Le quota multiprojet, défini par un objet ClusterResourceQuota, permet de partager les quotas entre plusieurs projets. Les ressources utilisées dans chaque projet sélectionné sont agrégées et cet agrégat est utilisé pour limiter les ressources pour tous les projets sélectionnés.
Ce guide décrit comment les administrateurs de clusters peuvent définir et gérer les quotas de ressources sur plusieurs projets.
Évitez d’exécuter des charges de travail ou de partager l’accès aux projets par défaut. Les projets par défaut sont réservés à l’exécution de composants de cluster de base.
Les projets par défaut suivants sont considérés comme hautement privilégiés: par défaut, kube-public, kube-system, openshift, openshift-infra, openshift-node, et d’autres projets créés par système qui ont l’étiquette openshift.io / run-level définie à 0 ou 1. La fonctionnalité qui repose sur des plugins d’admission, tels que l’admission de sécurité pod, les contraintes de contexte de sécurité, les quotas de ressources de cluster et la résolution de référence d’image, ne fonctionne pas dans des projets hautement privilégiés.
7.2.1. Choisir plusieurs projets lors de la création de quotas Copier lienLien copié sur presse-papiers!
Lorsque vous créez des quotas, vous pouvez sélectionner plusieurs projets en fonction de la sélection d’annotation, de la sélection d’étiquettes ou des deux.
Procédure
Afin de sélectionner des projets basés sur des annotations, exécutez la commande suivante:
oc create clusterquota for-user \ --project-annotation-selector openshift.io/requester=<user_name> \ --hard pods=10 \ --hard secrets=20
$ oc create clusterquota for-user \ --project-annotation-selector openshift.io/requester=<user_name> \ --hard pods=10 \ --hard secrets=20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela crée l’objet ClusterResourceQuota suivant:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- L’objet ResourceQuotaSpec qui sera appliqué sur les projets sélectionnés.
- 2
- C’est un simple sélecteur de valeur clé pour les annotations.
- 3
- Le sélecteur d’étiquettes qui peut être utilisé pour sélectionner des projets.
- 4
- Carte per-namespace qui décrit l’utilisation actuelle des quotas dans chaque projet sélectionné.
- 5
- L’utilisation globale de tous les projets sélectionnés.
Ce document de quota multi-projets contrôle tous les projets demandés par <user_name> à l’aide du point de terminaison de requête par défaut. Il est limité à 10 pods et 20 secrets.
De même, pour sélectionner des projets basés sur des étiquettes, exécutez cette commande:
oc create clusterresourcequota for-name \ --project-label-selector=name=frontend \ --hard=pods=10 --hard=secrets=20
$ oc create clusterresourcequota for-name \
1 --project-label-selector=name=frontend \
2 --hard=pods=10 --hard=secrets=20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela crée la définition d’objet ClusterResourceQuota suivante:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.2. Affichage des quotas de ressources de cluster applicables Copier lienLien copié sur presse-papiers!
L’administrateur de projet n’est pas autorisé à créer ou modifier le quota multiprojets qui limite son projet, mais l’administrateur est autorisé à consulter les documents de quotas multiprojets qui sont appliqués à son projet. L’administrateur de projet peut le faire via la ressource AppliedClusterResourceQuota.
Procédure
Afin de voir les quotas appliqués à un projet, exécutez:
oc describe AppliedClusterResourceQuota
$ oc describe AppliedClusterResourceQuota
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.3. Granularité de sélection Copier lienLien copié sur presse-papiers!
En raison du blocage de la demande d’allocations de quotas, le nombre de projets actifs sélectionnés par un quota multiprojets est une considération importante. La sélection de plus de 100 projets dans le cadre d’un seul quota multi-projets peut avoir des effets néfastes sur la réactivité des serveurs API dans ces projets.