빠른 시작: 운영자 및 CNF(컨테이너화된 네트워크 기능)를 위한 필수 구성 요소

이 빠른 시작에는 운영자 및 CNF(컨테이너화된 네트워크 기능)를 위한 필수 작업이 포함되어 있습니다. NSD(네트워크 서비스 정의) 내에서 이러한 작업을 자동화할 수 있지만 이 빠른 시작에서는 작업이 수동으로 수행됩니다.

참고 항목

이 문서에 제시된 작업을 완료하는 데 약간의 시간이 필요할 수 있습니다.

사용 권한

기여자 역할과 사용자 액세스 관리자 역할이 있는 기존 리소스 그룹이 포함된 Azure 구독이 필요합니다.

또는 AOSM CLI 확장에서 리소스 그룹을 만들 수 있으며 이 경우 이 구독에 대한 기여자 역할이 필요합니다. 이 기능을 사용하는 경우 이 새로 만든 리소스 그룹의 범위를 가진 사용자 액세스 관리자 역할을 사용자에게 추가해야 합니다.

또한 네트워크 기능 정의 게시자 리소스 그룹에 대한 사용자 액세스 관리자 역할도 필요합니다. 네트워크 기능 정의 게시자 리소스 그룹은 빠른 시작: CNF(컨테이너화된 네트워크 기능)로 Nginx 컨테이너 게시에서 사용되었습니다. input-cnf-nfd.jsonc 파일에서 리소스 그룹 이름을 확인합니다.

환경 변수 설정

특정 환경에 필요한 대로 환경 변수 설정 및 참조를 조정합니다. 예를 들어 Windows PowerShell에서 다음과 같이 환경 변수를 설정할 수 있습니다.

$env:ARC_RG="<my rg>"

환경 변수를 사용하려면 이 변수를 $env:ARC_RG로 참조합니다.

export resourceGroup=operator-rg
export location=<region>
export clusterName=<replace with clustername>
export customlocationId=${clusterName}-custom-location
export extensionId=${clusterName}-extension

리소스 그룹 만들기

AKS(Azure Kubernetes Service) 클러스터를 호스트하는 리소스 그룹을 만듭니다. 이후 가이드에서 운영자 리소스가 만들어지는 위치이기도 합니다.

az account set --subscription <subscription>
az group create -n ${resourceGroup} -l ${location}

AKS(Azure Kubernetes Service) 클러스터 프로비전

az aks create -g ${resourceGroup} -n ${clusterName} --node-count 3 --generate-ssh-keys

Azure Arc 사용

AKS(Azure Kubernetes Service) 클러스터에 Azure Arc를 사용하도록 설정합니다. 아래 명령을 실행하면 충분합니다. 자세한 내용은 Azure Arc 지원 Kubernetes 사용자 지정 위치 만들기 및 관리를 참조하세요.

AKS 클러스터에 대한 구성 파일 검색

az aks get-credentials --resource-group ${resourceGroup} --name ${clusterName}

연결된 클러스터 만들기

클러스터 만들기:

az connectedk8s connect --name ${clusterName} --resource-group ${resourceGroup}

구독 등록

Microsoft.ExtendedLocation 리소스 공급자에 구독을 등록합니다.

az provider register --namespace Microsoft.ExtendedLocation

사용자 지정 위치 사용

클러스터에서 사용자 지정 위치 사용:

az connectedk8s enable-features -n ${clusterName} -g ${resourceGroup} --features cluster-connect custom-locations

클러스터 연결

클러스터 연결:

az connectedk8s connect --name ${clusterName} -g ${resourceGroup} --location $location

확장 만들기

확장 만들기:

az k8s-extension create -g ${resourceGroup} --cluster-name ${clusterName} --cluster-type connectedClusters --name ${extensionId} --extension-type microsoft.azure.hybridnetwork --release-train preview --scope cluster

사용자 지정 위치 만들기

사용자 지정 위치 만들기:

export ConnectedClusterResourceId=$(az connectedk8s show --resource-group ${resourceGroup} --name ${clusterName} --query id -o tsv)
export ClusterExtensionResourceId=$(az k8s-extension show -c $clusterName -n $extensionId -t connectedClusters -g ${resourceGroup} --query id -o tsv)
az customlocation create -g ${resourceGroup} -n ${customlocationId} --namespace "azurehybridnetwork" --host-resource-id $ConnectedClusterResourceId --cluster-extension-ids $ClusterExtensionResourceId

사용자 지정 위치 값 검색

사용자 지정 위치 값을 검색합니다. SNS(사이트 네트워크 서비스)에 대한 구성 그룹 값을 채우려면 이러한 정보가 필요합니다.

Azure Portal에서 사용자 지정 위치(customLocationId)의 이름을 검색한 다음 [속성]을 선택합니다. Essentials 정보 영역에서 전체 리소스 ID를 찾고 필드 이름 ID를 찾습니다. 다음 이미지는 리소스 ID 정보가 있는 위치의 예를 제공합니다.

검색 필드 및 속성 정보를 보여 주는 스크린샷.

전체 리소스 ID의 형식은 다음과 같습니다. /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.extendedlocation/customlocations/{customLocationName}

사이트 네트워크 서비스에 대한 사용자 할당 관리 ID 만들기

  1. 다음 Bicep 스크립트를 로컬에 prerequisites.bicep으로 저장합니다.

    param location string = resourceGroup().location
    param identityName string = 'identity-for-nginx-sns'
    
    
    resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
      name: identityName
      location: location
    }
    output managedIdentityId string = managedIdentity.id
    
  2. 다음 명령을 실행하여 사용자 할당 관리 ID의 배포를 시작합니다.

    az deployment group create --name prerequisites --resource-group ${resourceGroup}  --template-file prerequisites.bicep
    
  3. 이 스크립트는 관리 ID를 만듭니다.

관리 ID에 대한 리소스 ID 검색

  1. 다음 명령을 실행하여 만든 관리 ID의 리소스 ID를 찾습니다.

    az deployment group list -g ${resourceGroup} | jq -r --arg Deployment prerequisites '.[] | select(.name == $Deployment).properties.outputs.managedIdentityId.value'
    
  2. 리소스 ID인 출력을 복사하고 저장합니다. 사이트 네트워크 서비스를 만들 때 이 출력이 필요합니다.

SNS(사이트 네트워크 서비스) 권한 업데이트

이러한 작업을 수행하려면 운영자와 네트워크 기능 정의 게시자 리소스 그룹 둘 다에서 '소유자' 또는 '사용자 액세스 관리자' 역할이 필요합니다. 이전 작업에서 운영자 리소스 그룹을 만들었습니다. 빠른 시작: Nginx 컨테이너를 CNF(컨테이너화된 네트워크 기능)에서 네트워크 기능 정의 게시자 리소스 그룹이 생성되었으며 input.json 파일에서 nginx-publisher-rg라고 이름이 지정되었습니다.

이전 단계에서는 참조 리소스 그룹 내에 identity-for-nginx-sns라는 레이블이 지정된 관리 ID를 만들었습니다. 이 ID는 SNS(사이트 네트워크 서비스)를 배포하는 데 중요한 역할을 합니다. 다음 섹션의 단계를 수행하여 ID에 게시자 리소스 그룹에 대한 '기여자' 역할과 자체에 대한 관리 ID 운영자 역할을 부여합니다. 이 ID를 통해 SNS(사이트 네트워크 서비스)는 필요한 권한을 얻습니다.

게시자 리소스 그룹에 대한 기여자 역할을 관리 ID에 부여

  1. Azure Portal에 액세스하고 네트워크 기능 정의를 게시할 때 만들어진 게시자 리소스 그룹을 엽니다.

  2. 리소스 그룹의 사이드 메뉴에서 IAM(액세스 제어)을 선택합니다.

  3. 역할 할당 추가를 선택합니다.

    게시자 리소스 그룹 역할 할당 추가를 보여 주는 스크린샷.

  4. 권한 있는 관리자 역할에서 범주에서 기여자를 선택한 후 다음을 진행합니다.

    참가자가 선택된 권한 있는 관리자 역할을 보여 주는 스크린샷.

  5. 관리 ID를 선택합니다.

  6. + 멤버 선택을 선택한 다음 사용자가 할당한 관리 ID identity-for-nginx-sns를 찾아서 선택합니다.

    사용자가 할당한 관리 ID를 사용하여 선택한 관리 ID를 보여 주는 스크린샷.

관리 ID에 사용자 지정 위치를 통해 기여자 역할 부여

  1. Azure Portal에 액세스하고 운영자 리소스 그룹, operator-rg를 엽니다.

  2. 리소스 그룹의 사이드 메뉴에서 IAM(액세스 제어)을 선택합니다.

  3. 역할 할당 추가를 선택합니다.

    게시자 리소스 그룹이 사용자 지정 위치에 역할 할당을 추가하는 것을 보여 주는 스크린샷.

  4. 권한 있는 관리자 역할에서 범주에서 기여자를 선택한 후 다음을 진행합니다.

    참가자가 선택된 권한 있는 관리자 역할을 보여 주는 스크린샷.

  5. 관리 ID를 선택합니다.

  6. + 멤버 선택을 선택한 다음 사용자가 할당한 관리 ID identity-for-nginx-sns를 찾아서 선택합니다.

    사용자가 할당한 관리 ID를 사용하여 선택한 관리 ID를 보여 주는 스크린샷.

자신에게 관리 ID 운영자 역할 부여

  1. Azure Portal로 이동하여 관리 ID를 검색합니다.

  2. 관리 ID 목록에서 identity-for-nginx-sns를 선택합니다.

  3. 사이드 메뉴에서 IAM(액세스 제어)을 선택합니다.

  4. 역할 할당 추가를 선택합니다.

    nginx SNS 역할 할당 추가에 대한 ID를 보여 주는 스크린샷입니다.

  5. 관리 ID 운영자 역할을 선택한 후 다음을 진행합니다.

    관리 ID 연산자가 선택된 역할 할당 추가를 보여 주는 스크린샷.

  6. 관리 ID를 선택합니다.

  7. + 멤버 선택을 선택하고 identity-for-nginx-sns라는 사용자 할당 관리 ID로 이동하여 할당을 진행합니다.

    사용자가 할당한 관리 ID를 사용하여 선택한 관리 ID를 보여 주는 스크린샷.

  8. 검토 및 할당을 선택합니다.

이 문서에 설명된 모든 작업을 완료하면 SNS(사이트 네트워크 서비스)가 지정된 Azure 환경 내에서 효과적으로 작동하는 데 필요한 권한을 갖게 됩니다.

다음 단계