Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Manage namespaces and quotas

Dernière mise à jour :Aug 11, 2026

Les namespaces partitionnent un cluster Container Service for Kubernetes (ACK) partagé en espaces de travail isolés, permettant la définition de quotas de ressources, la gestion des autorisations et le suivi des coûts par équipe ou par environnement.

Namespaces

Dans un cluster ACK, les namespaces divisent les ressources du cluster en groupes isolés. Lorsque plusieurs équipes partagent un même cluster, créez des namespaces pour classer les ressources par équipe ou par environnement, puis utilisez les quotas de ressources afin de limiter la consommation de chaque namespace.

Par défaut, les pods en cours d'exécution peuvent consommer une quantité illimitée de ressources CPU et mémoire sur les nœuds. Les pods d'un seul namespace risquent ainsi d'épuiser l'ensemble des ressources du cluster. Configurez des quotas de ressources par namespace — incluant le CPU, la mémoire et le nombre de pods — pour prévenir cette situation.

Exemples d'allocation : Dans un cluster disposant de 32 GiB de RAM et de 16 cœurs CPU, allouez 20 GiB et 10 cœurs à l'équipe A, 10 GiB et 4 cœurs à l'équipe B, et conservez 2 GiB et 2 cœurs en réserve. Vous pouvez également attribuer 1 cœur et 1 GiB de RAM au namespace testing, et laisser le namespace production utiliser le reste des ressources disponibles.

Créer un namespace

Utiliser la console ACK

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Namespaces and Quotas.

  3. Cliquez sur Create. Dans la boîte de dialogue qui s'affiche, configurez le nom et le libellé du namespace, puis cliquez sur OK.

Utiliser kubectl

  1. Créez un namespace.

    kubectl create namespace test
  2. Vérifiez que le namespace a bien été créé.

    kubectl get namespaces

    Résultat attendu :

    NAME              STATUS   AGE
    default           Active   46h
    kube-node-lease   Active   46h
    kube-public       Active   46h
    kube-system       Active   46h
    test              Active   9s

    Le namespace test apparaît désormais comme actif dans la liste.

Configurer les quotas et les limites de ressources

Remarque

Après avoir configuré les quotas de CPU et de mémoire (ResourceQuota) pour un namespace, les pods créés dans ce namespace doivent spécifier des limites de CPU et de mémoire, sauf si des limites de ressources par défaut (LimitRange) sont configurées pour le namespace.

Utiliser la console ACK

  1. Sur la page Namespace, cliquez sur Resource Quotas and Limits dans la colonne Actions correspondant au namespace cible.

  2. Dans la boîte de dialogue Resource Quotas and Limits, configurez les quotas de ressources et les limites de ressources par défaut. Pour plus d'informations, consultez les pages Quotas de ressources et Configurer les requêtes et limites de mémoire par défaut pour un namespace.

Bonnes pratiques pour la modification des quotas

Important

Modifiez les quotas pendant les heures creuses. Vérifiez l'utilisation des ressources des charges de travail existantes avant d'effectuer toute modification.

  • Réservez suffisamment de ressources pour permettre la mise à l'échelle automatique via Horizontal Pod Autoscaler (HPA).

  • Surveillez le cluster pendant au moins 30 minutes après l'ajustement des quotas afin de confirmer que le HPA fonctionne comme prévu.

Supprimer un namespace

Avertissement

Les namespaces intégrés (default, kube-system, kube-public, kube-node-lease) ne peuvent pas être supprimés. Supprimez toutes les ressources présentes dans le namespace avant de le supprimer. Si le namespace reste longtemps dans l'état Terminating, consultez la rubrique Que faire si le namespace reste bloqué dans l'état Terminating ?.

Utiliser la console ACK

  1. Sur la page Namespace, repérez le namespace cible et cliquez sur image > Delete dans la colonne Actions. Pour désactiver préalablement la protection contre la suppression, cliquez sur image > Disable Deletion Protection dans la colonne Actions.

  2. Dans la boîte de dialogue Confirm, vérifiez les ressources associées au namespace et cliquez sur Confirm.

Utiliser kubectl

kubectl delete namespace test

FAQ

Que faire si le namespace reste bloqué dans l'état Terminating ?

Lorsqu'un namespace contenant encore des ressources est supprimé, l'opération de suppression reste longtemps dans l'état Terminating. La solution consiste à vider le tableau finalizers dans la spécification du namespace ; Kubernetes supprime alors automatiquement le namespace. Notez que cette méthode peut laisser des ressources orphelines dans le cluster ; nettoyez donc les charges de travail du namespace avant de procéder.

Suivez les étapes ci-dessous pour forcer la suppression d'un namespace. Cet exemple utilise le namespace istio-system :

  1. Ouvrez un terminal et démarrez un proxy inverse pour le cluster.

    kubectl proxy

    Résultat attendu :

    Starting to serve on 127.0.0.1:8001
  2. Ouvrez un second terminal. Exportez un jeton et vérifiez la connectivité avec le serveur API.

    export TOKEN=$(kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t')
    curl http://localhost:8001/api/v1/namespaces --header "Authorization: Bearer $TOKEN" --insecure
  3. Exportez la configuration du namespace dans un fichier JSON.

    kubectl get namespace istio-system -o json > istio-system.json
  4. Ouvrez le fichier istio-system.json et videz le tableau finalizers dans la section spec.

    "spec": {
        "finalizers": []
    }
  5. Appliquez la configuration mise à jour pour supprimer les finalizers.

    curl -X PUT --data-binary @istio-system.json http://localhost:8001/api/v1/namespaces/istio-system/finalize -H "Content-Type: application/json" --header "Authorization: Bearer $TOKEN" --insecure

Documents connexes