클러스터 관리자: Operator Nexus에서 클러스터 관리자를 관리하는 방법

클러스터 관리자는 Operator Nexus 인프라 클러스터의 수명 주기를 관리하기 위해 운영자의 Azure 구독에 배포됩니다.

시작하기 전에

다음 정보가 있는지 확인합니다.

  • Azure 구독 ID - 클러스터 관리자를 만들어야 하는 Azure 구독 ID입니다(네트워크 패브릭 컨트롤러의 구독 ID와 동일해야 함).
  • 네트워크 패브릭 컨트롤러 ID - 네트워크 패브릭 컨트롤러와 클러스터 관리자는 1:1로 연결됩니다. Network Fabric 컨트롤러의 리소스 ID를 클러스터 관리자와 연결해야 합니다.
  • Log Analytics 작업 영역 ID - 로그 수집에 사용되는 Log Analytics 작업 영역의 리소스 ID입니다.
  • Azure 지역 - 클러스터 관리자는 네트워크 패브릭 컨트롤러와 동일한 Azure 지역에 만들어야 합니다. 이 Azure 지역은 클러스터 관리자 및 모든 연결된 Operator Nexus 인스턴스의 Location 필드에서 사용해야 합니다.

제한 사항

  • 명명 - 명명 규칙은 여기에서 찾을 수 있습니다.

전역 인수

모든 Azure CLI 명령에 사용할 수 있는 일부 인수는 다음과 같습니다.

  • --debug - 디버깅 목적으로 사용되는 CLI 작업에 대한 훨씬 더 자세한 정보를 출력합니다. 버그가 발견된 경우, 버그 보고서를 제출할 때 --debug 플래그를 사용해서 생성된 출력을 제공하십시오.
  • --help -h - 명령 및 해당 인수에 대한 CLI 참조 정보를 출력하고 사용 가능한 하위 그룹 및 명령을 나열합니다.
  • --only-show-errors - 오류만 표시하고 경고는 표시하지 않습니다.
  • --output -o - 출력 형식을 지정합니다. 사용 가능한 출력 형식은 Json, Jsonc(색이 지정된 JSON), tsv(탭으로 구분된 값), table(사람이 읽을 수 있는 ASCII 테이블) 및 yaml입니다. 기본적으로 CLI는 Json을 출력합니다.
  • --query - JMESPath 쿼리 언어를 사용하여 Azure 서비스에서 반환되는 출력을 필터링합니다.
  • --verbose - 작업 중에 Azure에서 만든 리소스에 대한 정보 및 기타 유용한 정보를 출력합니다.

클러스터 관리자 속성

속성 이름 설명
name, ID, location, tags, type name: 사용자 식별 이름
ID: <리소스 ID>
location: 클러스터 관리자가 만들어지는 Azure 지역입니다. 값 출처: az account list -locations.
tags: 리소스 태그
type: Microsoft.NetworkCloud/clusterManagers
managerExtendedLocation 클러스터 관리자와 연결된 ExtendedLocation
managedResourceGroupConfiguration 관리되는 리소스 그룹에 대한 정보
fabricControllerId 이 클러스터 관리자를 사용하여 1:1인 Network Fabric 컨트롤러에 대한 참조
analyticsWorkspaceId 고객과 관련된 로그가 릴레이되는 Log Analytics 작업 영역입니다.
clusterVersions[] 클러스터 관리자가 지원하는 클러스터 버전 목록입니다. 클러스터 clusterVersion 속성의 입력으로 사용됩니다.
provisioningState 클러스터 관리자에 대한 최신 작업의 프로비전 상태입니다. 다음 중 하나: 성공, 실패, 취소됨, 프로비전, 수락됨, 업데이트
detailedStatus 클러스터 관리자의 상태에 대한 추가 정보를 제공하는 자세한 상태입니다.
detailedStatusMessage 현재 상세 상태에 대한 설명 메시지입니다.

클러스터 관리자 ID

2024-07-01 API 버전부터 고객은 관리 ID를 클러스터 관리자에 할당할 수 있습니다. 시스템 할당 및 사용자 할당 관리 ID가 모두 지원됩니다.

사용자 할당 관리 ID를 사용하여 클러스터 관리자를 만드는 경우 고객은 Nexus 플랫폼에 대한 해당 ID에 대한 액세스를 프로비전해야 합니다. 특히 Microsoft.ManagedIdentity/userAssignedIdentities/assign/action Microsoft Entra ID에 대한 사용자 할당 ID에 AFOI-NC-MGMT-PME-PROD 권한을 추가해야 합니다. 향후 해결될 플랫폼의 알려진 제한 사항입니다.

역할 할당은 Azure Portal을 통해 수행할 수 있습니다.

  • Azure Portal을 열고 해당 사용자 할당 ID를 찾습니다.
    • 프로비전된 여러 관리 ID가 예상되는 경우 리소스 그룹 또는 구독 수준에서 역할을 대신 추가할 수 있습니다.
  • 아래에서 Access control (IAM)새 역할 할당 추가를 클릭합니다.
  • 역할 선택: Managed Identity Operator. 역할이 제공하는 사용 권한을 참조하세요.
  • 액세스 할당 대상: 사용자, 그룹 또는 서비스 주체
  • 멤버 선택: AFOI-NC-MGMT-PME-PROD 애플리케이션
  • 검토 및 할당

클러스터 관리자 만들기

Azure CLI를 사용하여 클러스터 관리자를 만듭니다.

az networkcloud clustermanager create 명령을 사용하여 클러스터 관리자를 만듭니다. 이 명령은 새 클러스터 관리자를 만들거나 클러스터 관리자가 있는 경우 해당 속성을 업데이트합니다. 여러 Azure 구독이 있는 경우 az account set 명령을 사용하여 적절한 구독 ID를 선택합니다.

az networkcloud clustermanager create \
    --name "$CLUSTER_MANAGER_NAME" \
    --location "$LOCATION" \
    --analytics-workspace-id "$LAW_NAME" \
    --fabric-controller-id "$NFC_ID" \
    --managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
    --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"
    --resource-group "$CLUSTER_MANAGER_RG"
    --subscription "$SUB_ID"
  • 인수
    • --name -n [필수] - 클러스터 관리자의 이름
    • --fabric-controller-id [Required] - 클러스터 관리자와 연결된 네트워크 패브릭 컨트롤러의 리소스 ID
    • --resource-group -g [Required] - 리소스 그룹의 이름. 기본 리소스 그룹은 az configure --defaults group=<name>을 사용하여 구성할 수 있습니다.
    • --analytics-workspace-id - 로그 수집에 사용되는 Log Analytics 작업 영역의 리소스 ID
    • --location -l - 위치. 클러스터 관리자가 만들어지는 Azure 지역입니다. 값 출처: az account list -locations. az configure --defaults location="$LOCATION"을 사용하여 기본 위치를 구성할 수 있습니다.
    • --managed-resource-group-configuration - 리소스와 연결된 관리되는 리소스 그룹의 구성
      • 사용법: --managed-resource-group-configuration location=XX name=XX
      • location: 관리되는 리소스 그룹의 지역. 지정하지 않으면 부모 리소스의 지역이 선택됩니다.
      • name: 관리되는 리소스 그룹의 이름. 지정하지 않으면 고유한 이름이 자동으로 생성됩니다.
    • wait/--no-wait - 명령이 완료될 때까지 기다리거나 장기 실행 작업이 완료될 때까지 기다리지 않습니다.
    • --tags - 공백으로 구분된 태그: key[=value] [key[=value]...]. 기존 태그를 지우려면 ''를 사용합니다.
    • --subscription - 구독의 이름 또는 ID. az account set -s NAME_OR_ID를 사용하여 기본 위치를 구성할 수 있습니다.
    • --mi-system-assigned - 시스템 할당 관리 ID를 사용하도록 설정합니다. 추가된 후에는 현재 API 호출을 통해서만 ID를 제거할 수 있습니다.
    • --mi-user-assigned - 추가할 사용자 할당 관리 ID의 공백으로 구분된 리소스 ID입니다. 추가된 후에는 현재 API 호출을 통해서만 ID를 제거할 수 있습니다.

Azure Resource Manager 템플릿 편집기를 사용하여 클러스터 관리자를 만듭니다.

클러스터 관리자를 만드는 또 다른 방법은 ARM 템플릿 편집기를 사용하는 것입니다.

이러한 방식으로 클러스터를 만들려면 템플릿 파일(clusterManager.jsonc) 및 매개 변수 파일(clusterManager.parameters.jsonc)을 제공해야 합니다.

여기에서 이 두 파일의 예를 찾을 수 있습니다.

clusterManager.jsonc , clusterManager.parameters.jsonc

참고 항목

올바른 서식을 가져오려면 원시 코드 파일을 복사합니다. ClusterManager.parameters.jsonc 파일 내의 값은 고객별로 다르며 전체 목록이 아닐 수도 있습니다. 특정 환경에 대한 값 필드를 업데이트하세요.

  1. 웹 브라우저에서 Azure Portal로 이동한 후 로그인합니다.
  2. Azure Portal 검색 창에서 '사용자 지정 템플릿 배포'를 검색한 다음, 사용 가능한 서비스에서 선택합니다.
  3. 편집기에서 사용자 고유의 템플릿 만들기를 클릭합니다.
  4. 파일 로드를 클릭합니다. ClusterManager.jsonc 템플릿 파일을 찾아서 업로드합니다.
  5. 저장을 클릭합니다.
  6. 매개 변수 편집을 클릭합니다.
  7. 파일 로드를 클릭합니다. ClusterManager.parameters.jsonc 매개 변수 파일을 찾아서 업로드합니다.
  8. 저장을 클릭합니다.
  9. 올바른 구독을 선택합니다.
  10. 이미 존재하는 경우 리소스 그룹을 검색하거나 새로 만듭니다.
  11. 모든 인스턴스 세부 정보가 올바른지 확인합니다.
  12. 검토 + 만들기를 클릭합니다.

클러스터 관리자 나열/표시

list 및 show 명령은 기존 클러스터 관리자 목록 또는 특정 클러스터 관리자의 속성을 가져오는 데 사용됩니다.

리소스 그룹의 클러스터 관리자 나열

이 명령은 지정된 리소스 그룹의 클러스터 관리자를 나열합니다.

az networkcloud clustermanager list --resource-group "$CLUSTER_MANAGER_RG"

구독의 클러스터 관리자 나열

이 명령은 지정된 구독의 클러스터 관리자를 나열합니다.

az networkcloud clustermanager list  --subscription "$SUB_ID"

클러스터 관리자 속성 표시

이 명령은 지정된 클러스터 관리자의 속성을 나열합니다.

az networkcloud clustermanager show \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"

list 및 show 명령 인수

  • --name -n - 클러스터 관리자의 이름
  • --IDs - 하나 이상의 리소스 ID(공백으로 구분). '리소스 ID' 인수의 모든 정보가 포함된 완전한 리소스 ID여야 합니다.
  • --resource-group -g - 리소스 그룹의 이름. az configure --defaults group=<name>을 사용하여 기본 그룹을 구성할 수 있습니다.
  • --subscription - 구독의 이름 또는 ID. az account set -s NAME_OR_ID를 사용하여 기본 위치를 구성할 수 있습니다.

클러스터 관리자 업데이트

이 명령은 제공된 클러스터 관리자의 속성을 패치하거나 클러스터 관리자에 할당된 태그를 업데이트하는 데 사용됩니다. 속성 및 태그 업데이트는 독립적으로 수행할 수 있습니다.

az networkcloud clustermanager update \
    --name "$CLUSTER_MANAGER_NAME" \
    --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
  • 인수
    • --tags - 공백으로 구분된 태그: key[=value] [key[=value] ...]. 기존 태그를 지우려면 ''를 사용합니다.
    • --name -n - 클러스터 관리자의 이름
    • --IDs - 하나 이상의 리소스 ID(공백으로 구분). '리소스 ID' 인수의 모든 정보가 포함된 완전한 리소스 ID여야 합니다.
    • --resource-group -g - 리소스 그룹의 이름. az configure --defaults group=<name>을 사용하여 기본 그룹을 구성할 수 있습니다.
    • --subscription - 구독의 이름 또는 ID. az account set -s NAME_OR_ID를 사용하여 기본 위치를 구성할 수 있습니다.
    • --mi-system-assigned - 시스템 할당 관리 ID를 사용하도록 설정합니다. 추가된 후에는 현재 API 호출을 통해서만 ID를 제거할 수 있습니다.
    • --mi-user-assigned - 추가할 사용자 할당 관리 ID의 공백으로 구분된 리소스 ID입니다. 추가된 후에는 현재 API 호출을 통해서만 ID를 제거할 수 있습니다.

API를 통해 클러스터 관리자 ID 업데이트

클러스터 관리자 관리 ID는 CLI를 통해 할당할 수 있습니다. ID 할당 취소는 API 호출을 통해 수행할 수 있습니다. <APIVersion> API 버전 2024-07-01 이상입니다.

  • 모든 관리 ID를 제거하려면 다음을 실행합니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
    
  • 사용자 할당 및 시스템 할당 관리 ID가 모두 추가된 경우 다음을 업데이트하여 사용자 할당을 type SystemAssigned제거할 수 있습니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    요청 본문(uai-body.json) 예제:

    {
      "identity": {
          "type": "SystemAssigned"
      }
    }
    
  • 사용자 할당 및 시스템 할당 관리 ID가 모두 추가된 경우 다음을 업데이트 type UserAssigned하여 시스템 할당을 제거할 수 있습니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    요청 본문(uai-body.json) 예제:

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {}
      	}
      }
    }
    
  • 여러 사용자 할당 관리 ID가 추가된 경우 다음을 실행하여 해당 ID 중 하나를 제거할 수 있습니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    요청 본문(uai-body.json) 예제:

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      	}
      }
    }
    

클러스터 관리자 삭제

이 명령은 제공된 클러스터 관리자를 삭제하는 데 사용됩니다.

Warning

기존 연결된 네트워크 패브릭 컨트롤러가 있는 클러스터 관리자 또는 이 클러스터 관리자를 참조하는 클러스터는 삭제되지 않을 수 있습니다.

az networkcloud clustermanager delete \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
  • 인수
    • --no-wait - 장기 실행 작업이 완료될 때까지 기다리지 않습니다.
    • --yes -y - 확인 메시지를 표시하지 않습니다.
    • --name -n - 클러스터 관리자의 이름
    • --IDs - 하나 이상의 리소스 ID(공백으로 구분). '리소스 ID' 인수의 모든 정보가 포함된 완전한 리소스 ID여야 합니다.
    • --resource-group -g - 리소스 그룹의 이름. az configure --defaults group=<name>을 사용하여 기본 그룹을 구성할 수 있습니다.
    • --subscription - 구독의 이름 또는 ID. az account set -s NAME_OR_ID를 사용하여 기본 위치를 구성할 수 있습니다.

다음 단계

Network Fabric 컨트롤러 및 클러스터 관리자를 성공적으로 만든 후 다음 단계는 Network Fabric만드는 것입니다.