Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Manage namespaces and quotas

Última atualização: Sep 21, 2026

Os namespaces dividem um cluster compartilhado do Container Service for Kubernetes (ACK) em espaços de trabalho isolados, o que permite definir cotas de recursos, gerencie permissões e rastrear custos por equipe ou ambiente.

Namespaces

Em um cluster do ACK, os namespaces dividem os recursos do cluster em grupos isolados. Quando várias equipes compartilham um cluster, crie namespaces para classificar os recursos por equipe ou ambiente e, em seguida, use cotas de recursos para limitar o consumo de cada namespace.

Por padrão, os pods em execução podem consumir recursos ilimitados de CPU e memória nos nós. Os pods de um único namespace podem esgotar todos os recursos do cluster. Para evitar isso, configure cotas de recursos por namespace, incluindo CPU, memória e contagem de pods.

Exemplos de alocação: em um cluster com 32 GiB de RAM e 16 núcleos de CPU, aloque 20 GiB e 10 núcleos para a equipe A, 10 GiB e 4 núcleos para a equipe B e mantenha 2 GiB e 2 núcleos em reserva. Como alternativa, destine 1 núcleo e 1 GiB de RAM ao namespace testing e permita que o production use o restante.

Crie um namespace

Use o console do ACK

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Namespaces and Quotas.

  3. Clique em Create. Na caixa de diálogo exibida, configure o nome e o rótulo do namespace e clique em OK.

Use o kubectl

  1. Crie um namespace.

    kubectl create namespace test
  2. Verifique se o namespace foi criado.

    kubectl get namespaces

    Saída esperada:

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

    O namespace test agora está ativo na lista.

Configure cotas e limites de recursos

Nota

Após configurar as cotas de CPU e memória (ResourceQuota) para um namespace, especifique limites de CPU e memória para os pods criados nesse namespace, a menos que os limites padrão de recursos (LimitRange) estejam configurados para o namespace.

Use o console do ACK

  1. Na página Namespace, clique em Resource Quotas and Limits na coluna Actions do namespace de destino.

  2. Na caixa de diálogo Resource Quotas and Limits, configure as cotas de recursos e os limites padrão de recursos. Para mais detalhes, consulte Cotas de recursos e Configurar solicitações e limites padrão de memória para um namespace.

Melhores práticas para modificar cotas

Importante

Modifique as cotas fora dos horários de pico. Verifique o uso de recursos das cargas de trabalho existentes antes de fazer alterações.

  • Reserve recursos suficientes para o dimensionamento automático do Horizontal Pod Autoscaler (HPA).

  • Monitore o cluster por pelo menos 30 minutos após ajustar as cotas para confirmar se o HPA executa conforme o esperado.

Exclua um namespace

Aviso

Os namespaces integrados (default, kube-system, kube-public, kube-node-lease) não podem ser excluídos. Limpe todos os recursos no namespace antes de exclua. Se o namespace permanecer no status Terminating por muito tempo, consulte What do I do if the namespace is stuck in Terminating status?.

Use o console do ACK

  1. Na página Namespace, localize o namespace de destino e clique em image > Delete na coluna Actions. Para desativar a proteção contra exclusão primeiro, clique em image > Disable Deletion Protection na coluna Actions.

  2. Na caixa de diálogo Confirm, confirme os recursos associados no namespace e clique em Confirm.

Use o kubectl

kubectl delete namespace test

Perguntas frequentes

O que fazer se o namespace ficar travado no status Terminating?

Quando um namespace que ainda contém recursos é excluído, a exclusão permanece no status Terminating por muito tempo. A solução é limpar o array finalizers na especificação do namespace — o Kubernetes então remove o namespace automaticamente. Note que isso pode deixar recursos órfãos no cluster, portanto, limpe as cargas de trabalho no namespace antes de continuar.

Use as etapas a seguir para forçar a exclusão de um namespace. Este exemplo usa o namespace istio-system:

  1. Abra um terminal e inicie um proxy reverso para o cluster.

    kubectl proxy

    Saída esperada:

    Starting to serve on 127.0.0.1:8001
  2. Abra um segundo terminal. Exporte um token e verifique a conectividade com o servidor de 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. Exporte a configuração do namespace para um arquivo JSON.

    kubectl get namespace istio-system -o json > istio-system.json
  4. Abra o istio-system.json e limpe o array finalizers na seção spec.

    "spec": {
        "finalizers": []
    }
  5. Aplique a configuração atualizada para remover os 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

Documentos relacionados