Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard
Namespaces gerenciados no AKS (Serviço de Kubernetes do Azure) fornecem uma maneira de isolar logicamente cargas de trabalho e equipes em um cluster. Esse recurso permite que os administradores imponham cotas de recursos, apliquem políticas de rede e gerenciem o controle de acesso no nível do namespace. Para obter uma visão geral detalhada dos namespaces gerenciados, consulte a visão geral dos namespaces gerenciados.
Antes de começar
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Se você não tiver uma, crie uma conta gratuita.
- Um cluster do AKS configurado em seu ambiente do Azure com controle de acesso baseado em função do Azure para autorização do Kubernetes será necessário se você pretende utilizar funções RBAC do Azure.
- Para usar o recurso de política de rede, o cluster do AKS precisa ser configurado com um mecanismo de política de rede. Cilium é nosso mecanismo recomendado.
| Pré-requisito | Anotações |
|---|---|
| Azure CLI |
2.80.0 ou posterior instalado. Para localizar a versão da CLI, execute az --version. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. |
| Versão da API do AKS |
2025-09-01 ou posterior. |
| Permissões necessárias |
Função interna Microsoft.ContainerService/managedClusters/managedNamespaces/* ou Azure Kubernetes Service Namespace Contributor.
Microsoft.Resources/deployments/* no grupo de recursos que contém o cluster. Para mais informações, consulte funções internas associadas a namespaces gerenciados. |
Limitações
- Não é permitido tentar integrar namespaces do sistema, como
kube-system,app-routing-system,istio-system,gatekeeper-system, etc., para que sejam gerenciados. - Quando um namespace é um namespace gerenciado, as alterações no namespace por meio da API do Kubernetes são bloqueadas.
- Listar namespaces existentes a serem convertidos no portal não funciona com clusters privados. Você pode adicionar novos namespaces.
Criar um namespace gerenciado em um cluster e atribuir usuários
Observação
Quando você cria um namespace gerenciado, um componente é instalado no cluster para reconciliar o namespace com o estado no Azure Resource Manager. Esse componente bloqueia as alterações nos campos e recursos gerenciados da API do Kubernetes, garantindo a consistência com a configuração desejada.
O exemplo Bicep a seguir demonstra como criar um namespace gerenciado como uma sub-fonte de um cluster gerenciado. Selecione o valor apropriado para defaultNetworkPolicy, adoptionPolicye deletePolicy. Para obter mais informações sobre o que esses parâmetros significam, consulte a visão geral dos namespaces gerenciados.
resource existingCluster 'Microsoft.ContainerService/managedClusters@2024-03-01' existing = {
name: 'contoso-cluster'
}
resource managedNamespace 'Microsoft.ContainerService/managedClusters/managedNamespaces@2025-09-01' = {
parent: existingCluster
name: 'retail-team'
location: location
properties: {
defaultResourceQuota: {
cpuRequest: '1000m'
cpuLimit: '2000m'
memoryRequest: '512Mi'
memoryLimit: '1Gi'
}
defaultNetworkPolicy: {
ingress: 'AllowSameNamespace'
egress: 'AllowAll'
}
adoptionPolicy: 'IfIdentical'
deletePolicy: 'Keep'
labels: {
environment: 'dev'
}
annotations: {
owner: 'retail'
}
}
}
Salve o arquivo Bicep managedNamespace.bicep no computador local.
Implante o arquivo Bicep usando a CLI do Azure.
az deployment group create --resource-group <resource-group> --template-file managedNamespace.bicep
Definir variáveis
Defina as variáveis a seguir a serem usadas nas etapas subsequentes.
RG_NAME=cluster-rg
CLUSTER_NAME=contoso-cluster
NAMESPACE_NAME=retail-team
LABELS="environment=dev"
ANNOTATIONS="owner=retail"
Criar o namespace gerenciado
Para personalizar sua configuração, os namespaces gerenciados têm várias opções de parâmetro para escolher durante a criação. Selecione o valor apropriado para ingress-network-policy, egress-network-policyadoption-policye delete-policy. Para obter mais informações sobre o que esses parâmetros significam, consulte a visão geral dos namespaces gerenciados.
az aks namespace add \
--name ${NAMESPACE_NAME} \
--cluster-name ${CLUSTER_NAME} \
--resource-group ${RG_NAME} \
--cpu-request 1000m \
--cpu-limit 2000m \
--memory-request 512Mi \
--memory-limit 1Gi \
--ingress-policy [AllowSameNamespace|AllowAll|DenyAll] \
--egress-policy [AllowSameNamespace|AllowAll|DenyAll] \
--adoption-policy [Never|IfIdentical|Always] \
--delete-policy [Keep|Delete] \
--labels ${LABELS} \
--annotations ${ANNOTATIONS}
Atribuir função
Depois que o namespace for criado, você poderá atribuir uma das funções internas para o plano de controle e o plano de dados.
ASSIGNEE="user@contoso.com"
NAMESPACE_ID=$(az aks namespace show --name ${NAMESPACE_NAME} --cluster-name ${CLUSTER_NAME} --resource-group ${RG_NAME} --query id -o tsv)
Atribua uma função de plano de controle para poder exibir o namespace gerenciado no portal, na saída da CLI do Azure e no Azure Resource Manager. Essa função também permite que o usuário recupere as credenciais para se conectar a esse namespace.
az role assignment create \
--assignee ${ASSIGNEE} \
--role "Azure Kubernetes Service Namespace User" \
--scope ${NAMESPACE_ID}
Atribua a função de plano de dados para obter acesso para criar recursos no namespace usando a API do Kubernetes.
az role assignment create \
--assignee ${ASSIGNEE} \
--role "Azure Kubernetes Service RBAC Writer" \
--scope ${NAMESPACE_ID}
- Entre no portal do Azure.
- Na home page do portal do Azure, selecione Criar um recurso.
- Na seção Categorias, selecione Namespaces Gerenciados do Kubernetes.
- Na guia Noções básicas , em detalhes do Projeto , defina as seguintes configurações:
- Selecione o cluster de destino no qual criar o namespace.
- Se você estiver criando um novo namespace, deixe o padrão criar novo, caso contrário, escolha alterar existente para gerenciado para converter um namespace existente.
- Configure a política de rede a ser aplicada no namespace.
- Configure solicitações de recursos e limites para o namespace.
- Selecione os membros (usuários ou grupos) e sua função.
- Atribua a função de Usuário do Namespace do Serviço de Kubernetes do Azure para conceder-lhes acesso para exibir o namespace gerenciado no portal, na saída da CLI do Azure e no Azure Resource Manager. Essa função também permite que o usuário recupere as credenciais para se conectar a esse namespace.
- Atribua a função de Gravador RBAC do Serviço de Kubernetes do Azure para dar a eles acesso para criar recursos no namespace usando a API do Kubernetes.
- Selecione Examinar + criar para executar a validação na configuração. Após a conclusão da validação, selecione Criar.
Listar namespaces gerenciados
Você pode listar namespaces gerenciados em escopos diferentes usando a CLI do Azure.
Nível de assinatura
Execute o comando a seguir para listar todos os namespaces gerenciados em uma assinatura.
az aks namespace list --subscription <subscription-id>
Nível do grupo de recursos
Execute o comando a seguir para listar todos os namespaces gerenciados em um grupo de recursos específico.
az aks namespace list --resource-group <rg-name>
Nível do cluster
Execute o comando a seguir para listar todos os namespaces gerenciados em um cluster específico.
az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>
Listar namespaces gerenciados
Você pode listar namespaces gerenciados em escopos diferentes usando a CLI do Azure.
Nível de assinatura
Execute o comando a seguir para listar todos os namespaces gerenciados em uma assinatura.
az aks namespace list --subscription <subscription-id>
Nível do grupo de recursos
Execute o comando a seguir para listar todos os namespaces gerenciados em um grupo de recursos específico.
az aks namespace list --resource-group <rg-name>
Nível do cluster
Execute o comando a seguir para listar todos os namespaces gerenciados em um cluster específico.
az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>
Conectar-se ao cluster
Você pode recuperar as credenciais para se conectar a um namespace por meio do comando a seguir.
az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>
Conectar-se ao cluster
Você pode recuperar as credenciais para se conectar a um namespace por meio do comando a seguir.
az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>
Próximas etapas
Este artigo se concentrou em usar o recurso namespaces gerenciados para isolar logicamente equipes e aplicativos. Você pode explorar ainda mais outros "guardrails" (proteções) e melhores práticas para aplicar por meio de proteções de implantação.