적용 대상: ✔️ AKS Automatic ✔️ AKS 표준
AKS(Azure Kubernetes Service)의 관리되는 네임스페이스는 클러스터 내에서 워크로드 및 팀을 논리적으로 격리하는 방법을 제공합니다. 이 기능을 사용하면 관리자가 리소스 할당량을 적용하고, 네트워크 정책을 적용하고, 네임스페이스 수준에서 액세스 제어를 관리할 수 있습니다. 관리되는 네임스페이스에 대한 자세한 개요는 관리되는 네임스페이스 개요를 참조하세요.
시작하기 전 주의 사항:
필수 조건
- 활성 구독이 있는 Azure 계정. 계정이 없는 경우 체험 계정을 만들 수 있습니다.
- Azure RBAC 역할을 활용하려는 경우 Kubernetes 권한 부여에 대한 Azure 역할 기반 액세스 제어를 사용하여 Azure 환경에 설정된 AKS 클러스터가 필요합니다.
- 네트워크 정책 기능을 사용하려면 AKS 클러스터를 네트워크 정책 엔진으로 구성해야 합니다. Cilium은 권장 엔진입니다.
| 전제 조건 | 비고 |
|---|---|
| Azure CLI |
2.80.0 이상이 설치되어 있습니다. CLI 버전을 찾으려면 다음을 실행합니다 az --version. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요. |
| AKS API 버전 |
2025-09-01 이상입니다. |
| 필요한 권한 |
Microsoft.ContainerService/managedClusters/managedNamespaces/* 또는 Azure Kubernetes Service Namespace Contributor 기본 제공 역할입니다.
Microsoft.Resources/deployments/* 클러스터를 포함하는 리소스 그룹에서. 자세한 내용은 관리되는 네임스페이스 기본 제공 역할을 참조하세요. |
제한점
- 시스템 네임스페이스(예:
kube-system,app-routing-system,istio-systemgatekeeper-system등)를 관리되는 네임스페이스로 온보딩하는 것은 허용되지 않습니다. - 네임스페이스가 관리되는 네임스페이스인 경우 Kubernetes API를 통해 네임스페이스에 대한 변경 내용이 차단됩니다.
- 포털에서 변환할 기존 네임스페이스를 나열해도 프라이빗 클러스터에서는 작동하지 않습니다. 새 네임스페이스를 추가할 수 있습니다.
클러스터에서 관리되는 네임스페이스 만들기 및 사용자 할당
비고
관리되는 네임스페이스를 만들 때 Azure Resource Manager의 상태와 네임스페이스를 조정하기 위해 구성 요소가 클러스터에 설치됩니다. 이 구성 요소는 Kubernetes API에서 관리되는 필드 및 리소스에 대한 변경 내용을 차단하여 원하는 구성과의 일관성을 보장합니다.
다음 Bicep 예제에서는 관리형 클러스터의 하위 리소스로 관리되는 네임스페이스를 만드는 방법을 보여 줍니다.
defaultNetworkPolicy, adoptionPolicy, deletePolicy에 대해 적절한 값을 선택해야 합니다. 이러한 매개 변수의 의미에 대한 자세한 내용은 관리되는 네임스페이스 개요를 참조하세요.
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'
}
}
}
Bicep 파일 managedNamespace.bicep 을 로컬 컴퓨터에 저장합니다.
Azure CLI를 사용하여 Bicep 파일을 배포합니다.
az deployment group create --resource-group <resource-group> --template-file managedNamespace.bicep
변수 정의
후속 단계에서 사용할 다음 변수를 정의합니다.
RG_NAME=cluster-rg
CLUSTER_NAME=contoso-cluster
NAMESPACE_NAME=retail-team
LABELS="environment=dev"
ANNOTATIONS="owner=retail"
관리되는 네임스페이스 만들기
구성을 사용자 지정하기 위해 관리되는 네임스페이스에는 만드는 동안 선택할 수 있는 다양한 매개 변수 옵션이 있습니다.
ingress-network-policy, egress-network-policy, adoption-policy, 그리고 delete-policy에 적절한 값을 반드시 선택해야 합니다. 이러한 매개 변수의 의미에 대한 자세한 내용은 관리되는 네임스페이스 개요를 참조하세요.
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}
역할 할당
네임스페이스를 만든 후 컨트롤 플레인 및 데이터 평면에 대한 기본 제공 역할 중 하나를 할당할 수 있습니다.
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)
포털, Azure CLI 출력 및 Azure Resource Manager에서 관리되는 네임스페이스를 볼 수 있도록 컨트롤 플레인 역할을 할당합니다. 또한 이 역할을 통해 사용자는 자격 증명을 검색하여 이 네임스페이스에 연결할 수 있습니다.
az role assignment create \
--assignee ${ASSIGNEE} \
--role "Azure Kubernetes Service Namespace User" \
--scope ${NAMESPACE_ID}
Kubernetes API를 사용하여 네임스페이스 내에서 리소스를 만드는 데 액세스할 수 있도록 데이터 평면 역할을 할당합니다.
az role assignment create \
--assignee ${ASSIGNEE} \
--role "Azure Kubernetes Service RBAC Writer" \
--scope ${NAMESPACE_ID}
- Azure Portal에 로그인합니다.
- Azure Portal 홈페이지에서 리소스 만들기를 선택합니다.
- 범주 섹션에서 관리되는 Kubernetes 네임스페이스를 선택합니다.
-
기본 사항 탭의 프로젝트 세부 정보에서 다음 설정을 구성합니다.
- 대상 클러스터 를 선택하여 네임스페이스를 만듭니다.
- 새 네임스페이스를 만드는 경우 기본값 새로 만들기를 그대로 두고, 그렇지 않으면 기존 네임스페이스를 관리형으로 변환하기 위해 기존을 변경을 선택합니다.
- 네임스페이스에 적용할 네트워킹 정책을 구성합니다.
- 네임스페이스에 대한 리소스 요청 및 제한을 구성합니다.
-
멤버(사용자 또는 그룹)와 해당 역할을 선택합니다.
- Azure Kubernetes Service 네임스페이스 사용자 역할을 할당하여 포털, Azure CLI 출력 및 Azure Resource Manager에서 관리되는 네임스페이스를 볼 수 있는 액세스 권한을 부여합니다. 또한 이 역할을 통해 사용자는 자격 증명을 검색하여 이 네임스페이스에 연결할 수 있습니다.
- Azure Kubernetes Service RBAC Writer 역할을 할당하여 Kubernetes API를 사용하여 네임스페이스 내에서 리소스를 생성할 수 있는 권한을 부여합니다.
- 검토 + 만들기를 선택하여 구성에 대한 유효성 검사를 실행합니다. 유효성 검사가 완료되면 만들기를 선택합니다.
관리되는 네임스페이스 나열
Azure CLI를 사용하여 다양한 범위에서 관리되는 네임스페이스를 나열할 수 있습니다.
구독 수준
다음 명령을 실행하여 구독의 모든 관리되는 네임스페이스를 나열합니다.
az aks namespace list --subscription <subscription-id>
리소스 그룹 수준
다음 명령을 실행하여 특정 리소스 그룹의 모든 관리되는 네임스페이스를 나열합니다.
az aks namespace list --resource-group <rg-name>
클러스터 수준
다음 명령을 실행하여 특정 클러스터의 모든 관리되는 네임스페이스를 나열합니다.
az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>
관리되는 네임스페이스 나열
Azure CLI를 사용하여 다양한 범위에서 관리되는 네임스페이스를 나열할 수 있습니다.
구독 수준
다음 명령을 실행하여 구독의 모든 관리되는 네임스페이스를 나열합니다.
az aks namespace list --subscription <subscription-id>
리소스 그룹 수준
다음 명령을 실행하여 특정 리소스 그룹의 모든 관리되는 네임스페이스를 나열합니다.
az aks namespace list --resource-group <rg-name>
클러스터 수준
다음 명령을 실행하여 특정 클러스터의 모든 관리되는 네임스페이스를 나열합니다.
az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>
클러스터에 연결
다음 명령을 통해 네임스페이스에 연결하는 자격 증명을 검색할 수 있습니다.
az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>
클러스터에 연결
다음 명령을 통해 네임스페이스에 연결하는 자격 증명을 검색할 수 있습니다.
az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>
다음 단계
이 문서에서는 관리되는 네임스페이스 기능을 사용하여 팀과 애플리케이션을 논리적으로 격리하는 방법을 집중적으로 설명했습니다. 배포 보호 장치를 통해 적용할 다른 가드레일 및 모범 사례를 추가로 살펴볼 수 있습니다.