이 문서에서는 VNet(가상 네트워크) 및 서브넷을 만들고, VNet에 액세스할 수 있는 권한이 있는 관리 ID를 만들고, NAP(노드 자동 프로비저닝)를 사용하도록 설정된 사용자 지정 VNet에서 AKS(Azure Kubernetes Service) 클러스터를 만드는 방법을 보여 줍니다.
필수 조건
- Azure 구독. 계정이 없는 경우 무료 계정에 만들 수 있습니다.
- Azure CLI 버전
2.76.0이상. 버전을 확인하려면az --version을 실행합니다. Azure CLI 설치 또는 업그레이드에 대한 자세한 내용은 Azure CLI 설치를 참조하세요. - AKS 문서에서 NAP(노드 자동 프로비저닝) 개요를 읽어보세요. 이 문서에서 는 NAP의 작동 방식을 자세히 설명합니다.
- AKS(Azure Kubernetes Service)에서 NAP(노드 자동 프로비저닝)에 대한 네트워킹 구성 개요를 읽어보십시오.
제한점
- 사용자 지정 VNet(가상 네트워크)에서 NAP 클러스터를 만들 때 표준 Load Balancer를 사용해야 합니다. 기본 Load Balancer는 지원되지 않습니다.
- NAP에 대한 다른 제한 사항 및 지원되지 않는 기능을 검토하려면 AKS 문서의 NAP(노드 자동 프로비저닝) 개요를 참조하세요.
가상 네트워크 및 서브넷 만들기
중요합니다
NAP에서 사용자 지정 VNet을 사용하는 경우 다음 정보를 염두에 두어야 합니다.
- API 서버 서브넷을 만들고 위임해야 합니다. 이 서브넷은 해당 서브넷
Microsoft.ContainerService/managedClusters에 API 서버 Pod 및 내부 부하 분산 장치를 삽입할 수 있는 AKS 서비스 권한을 부여합니다. 다른 워크로드에는 서브넷을 사용할 수 없지만 동일한 VNet에 있는 여러 AKS 클러스터에 사용할 수 있습니다. 지원되는 최소 API 서버 서브넷 크기는 /28입니다. - 기본적으로 VNet 내의 모든 트래픽이 허용됩니다. 그러나 서로 다른 서브넷 간의 트래픽을 제한하는 NSG(네트워크 보안 그룹) 규칙을 추가한 경우 적절한 권한을 구성해야 합니다. 자세한 내용은 네트워크 보안 그룹 설명서를 참조하세요.
명령을 사용하여 VNet을 만듭니다
az network vnet create.az network vnet create \ --name $VNET_NAME \ --resource-group $RG_NAME \ --location $LOCATION \ --address-prefixes 172.19.0.0/16az network vnet subnet create명령을 사용하여 서브넷을 만들고Microsoft.ContainerService/managedClusters에 위임합니다.az network vnet subnet create \ --resource-group $RG_NAME \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28
관리 ID를 만들고 VNet에 액세스할 수 있는 권한을 부여합니다.
az identity create명령을 사용하여 관리 ID를 만듭니다.az identity create \ --resource-group $RG_NAME \ --name $IDENTITY_NAME \ --location $LOCATION관리 ID의 보안 주체 ID를 가져오고 [
az identity show][az-identity-show] 명령을 사용하여 환경 변수로 설정합니다.IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)명령을 사용하여 관리 ID에 네트워크 참가자 역할을 할당합니다
az role assignment create.az role assignment create \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME" \ --role "Network Contributor" \ --assignee $IDENTITY_PRINCIPAL_ID
사용자 지정 VNet에서 NAP(노드 자동 프로비저닝)를 사용하여 AKS 클러스터 만들기
명령을 사용하여 사용자 지정 VNet에서 NAP를 사용하도록 설정된 AKS 클러스터를 만듭니다
az aks create. NAP를 활성화하려면 플래그를--node-provisioning-mode에서Auto로 설정해야 합니다.다음 명령은 또한
--network-plugin을azure로,--network-plugin-mode를overlay로,--network-dataplane를cilium로 설정합니다. NAP에서 지원되는 네트워킹 구성에 대한 자세한 내용은 AKS에서 노드 자동 프로비저닝을 위한 네트워킹 구성을 참조하세요.az aks create \ --name $CLUSTER_NAME \ --resource-group $RG_NAME \ --location $LOCATION \ --assign-identity "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$IDENTITY_NAME" \ --network-dataplane cilium \ --network-plugin azure \ --network-plugin-mode overlay \ --vnet-subnet-id "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$CUSTOM_VNET_NAME/subnets/$SUBNET_NAME" \ --node-provisioning-mode Auto몇 분 후 명령이 완료되면 클러스터에 대한 JSON 형식 정보가 반환됩니다.
kubectl명령을 사용하여 Kubernetes 클러스터에 연결하도록az aks get-credentials을 구성합니다. 이 명령은 자격 증명을 다운로드하고 이를 사용하도록 Kubernetes CLI를 구성합니다.az aks get-credentials \ --resource-group $RG_NAME \ --name $CLUSTER_NAMEkubectl get명령을 사용하여 클러스터에 대한 연결을 확인합니다. 이 명령은 클러스터 노드 목록을 반환합니다.kubectl get nodes
다음 단계
AKS의 노드 자동 프로비저닝에 대한 자세한 내용은 다음 문서를 참조하세요.