다음을 통해 공유


Kubernetes 클러스터에 Azure IoT 작업 미리 보기 확장 배포

Important

Azure IoT 작업 미리 보기 - Azure Arc에서 지원되는 Azure IoT 작업은 현재 미리 보기로 제공됩니다. 프로덕션 환경에서는 이 미리 보기 소프트웨어를 사용하면 안 됩니다.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Azure CLI를 사용하여 Kubernetes 클러스터에 Azure IoT 작업 미리 보기를 배포합니다. Azure IoT 작업이 배포되면 Azure IoT Orchestrator 미리 보기 서비스를 사용하여 클러스터에 다른 워크로드를 관리하고 배포할 수 있습니다.

필수 조건

클라우드 리소스:

  • Azure 구독

  • Azure 액세스 권한. 최소한 Azure 구독에서 기여자 권한이 있어야 합니다. 선택한 배포 기능 플래그 상태에 따라 Arc 지원 Kubernetes 클러스터를 포함하는 리소스 그룹에 대한 Microsoft/Authorization/roleAssignments/write 권한이 필요할 수도 있습니다. Azure 역할 기반 액세스 제어에서 사용자 지정 역할을 만들거나 이 권한을 부여하는 기본 제공 역할을 할당할 수 있습니다. 자세한 정보는 Azure 기본 제공 역할을 참조하세요.

    역할 할당 쓰기 권한이 없을 경우에도 일부 기능을 사용하지 않도록 설정하여 Azure IoT 작업을 계속 배포할 수 있습니다. 이 방법은 이 문서의 배포 확장 섹션에 자세히 설명되어 있습니다.

    • Azure CLI에서 az role assignment create 명령을 사용하여 권한을 부여합니다. 예를 들어 az role assignment create --assignee sp_name --role "Role Based Access Control Administrator" --scope subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup

    • Azure Portal에서 권한 있는 관리자 역할을 사용자 또는 보안 주체에 할당할 때 조건을 사용하여 액세스를 제한하라는 메시지가 표시됩니다. 이 시나리오에서는 역할 할당 추가 페이지에서 사용자가 모든 역할을 할당하도록 허용 조건을 선택합니다.

      Azure Portal에서 사용자에게 높은 권한의 역할 액세스 권한을 할당하는 것을 보여 주는 스크린샷.

  • 권한 모델자격 증명 모음 액세스 정책으로 설정된 Azure Key Vault. 기존 키 자격 증명 모음의 액세스 구성 섹션에서 이 설정을 확인할 수 있습니다. 키 자격 증명 모음을 만들어야 할 경우 az keyvault create 명령을 사용합니다.

    az keyvault create --enable-rbac-authorization false --name "<KEYVAULT_NAME>" --resource-group "<RESOURCE_GROUP>"
    

개발 리소스:

  • 개발 컴퓨터에 설치된 Azure CLI입니다. 자세한 내용은 Azure CLI 설치 방법을 참조하세요. 이 시나리오에는 Azure CLI 버전 2.46.0 이상이 필요합니다. az --version을 사용하여 버전을 확인하고 필요한 경우 az upgrade를 사용하여 업데이트합니다.

  • Azure CLI용 Azure IoT 작업 확장입니다. 다음 명령을 사용하여 확장 프로그램을 추가하거나 최신 버전으로 업데이트합니다.

    az extension add --upgrade --name azure-iot-ops
    

클러스터 호스트:

  • Azure Arc 지원 Kubernetes 클러스터. 없는 경우 Azure Arc 지원 Kubernetes 클러스터 준비의 단계를 수행합니다.

    Azure IoT Operations를 클러스터에 이미 배포한 경우 계속하기 전에 해당 리소스를 제거합니다. 자세한 내용은 Azure IoT 작업 업데이트를 참조 하세요.

    Azure IoT 작업은 CNCF 호환 kubernetes 클러스터에서 작동해야 합니다. 현재 Microsoft는 Ubuntu Linux 및 WSL 또는 WINDOWS의 AKS Edge Essentials에서만 K3를 지원합니다. WSL(Linux용 Windows 하위 시스템)에서 Ubuntu를 사용하는 것은 테스트를 위해 Kubernetes 클러스터를 가져오는 가장 간단한 방법입니다.

    Azure CLI용 Azure IoT Operations 확장을 사용하여, 클러스터 호스트가 verify-host 명령을 사용하여 배포에 대해 올바르게 구성되었는지 확인합니다.

    az iot ops verify-host
    

배포 확장

Azure CLI를 사용하여 Arc 지원 Kubernetes 클러스터에 Azure IoT Operations 구성 요소를 배포합니다.

  1. 이전에 이미 로그인한 경우에도 브라우저를 사용하여 대화형으로 Azure CLI에 로그인합니다. 대화형으로 로그인하지 않을 경우 다음 단계로 계속 진행하여 Azure IoT 작업을 배포하면 디바이스가 리소스에 액세스하도록 관리되어야 한다는 오류가 발생할 수 있습니다.

    az login
    

    참고 항목

    브라우저에서 GitHub 코드스페이스를 사용하는 경우, 로그인하면 az login는 브라우저 창에 localhost 오류를 반환합니다. 해결하려면 다음 작업 중 하나를 수행합니다.

    • VS Code 데스크톱에서 코드 영역을 연 다음 터미널에서 az login을(를) 실행합니다. 그러면 Azure에 로그인할 수 있는 브라우저 창이 열립니다.
    • 또는 브라우저에서 localhost 오류가 발생하면 브라우저에서 URL을 복사하고 새 터미널 탭에서 curl <URL>을(를) 사용합니다. JSON 응답과 "Microsoft Azure에 로그인했습니다!"라는 메시지가 표시됩니다.
  2. Azure IoT 작업을 클러스터에 배포합니다. 선택적 플래그를 사용하여 시나리오에 맞게 az iot ops init 명령을 사용자 지정합니다.

    기본적으로 az iot ops init 명령은 다음 작업을 수행하며, 그 중 일부는 CLI에 로그인한 보안 주체에 상승된 권한이 있어야 합니다.

    • 클러스터에 키 자격 증명 모음에 대한 액세스 권한을 부여하도록 서비스 주체 및 앱 등록을 설정합니다.
    • TLS 인증서를 구성합니다.
    • 키 자격 증명 모음에 연결하는 클러스터에 비밀 저장소를 구성합니다.
    • Azure IoT 작업 리소스를 배포합니다.
    az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id <KEYVAULT_SETTINGS_PROPERTIES_RESOURCE_ID>
    

    Important

    기본적으로 az iot ops init 명령은 데이터 프로세서 구성 요소를 배포하지 않습니다. 데이터 프로세서를 배포하려면 인수를 추가합니다 --include-dp .

    리소스 그룹에 Microsoft.Authorization/roleAssignment/write 권한이 없는 경우 --disable-rsync-rules 기능 플래그를 추가합니다. 이 플래그는 배포에서 리소스 동기화 규칙을 사용하지 않도록 설정합니다.

    init이(가) 새 서비스 주체를 만들도록 허용하는 대신 기존 서비스 주체 및 앱 등록을 사용하려면 --sp-app-id,--sp-object-id--sp-secret 매개 변수를 포함합니다. 자세한 내용은 서비스 주체 및 키 자격 증명 모음을 수동으로 구성을 참조하세요.

  3. 배포를 완료한 후 az iot ops check를 사용하여 상태, 구성 및 유용성에 대한 IoT 작업 서비스 배포를 평가할 수 있습니다. check 명령은 배포 및 구성에서 문제를 찾는 데 도움이 될 수 있습니다.

    az iot ops check
    

    자세한 정보 보기에 대한 --detail-level 2 매개 변수를 추가하여 토픽 맵, QoS 및 메시지 경로의 구성을 확인할 수도 있습니다.

클러스터에서 리소스 보기

배포가 진행되는 동안에는 클러스터에 적용되는 리소스를 볼 수 있습니다. kubectl 명령을 사용하여 클러스터의 변경 내용을 관찰하거나, 클러스터가 Arc를 지원하므로 Azure Portal을 사용할 수 있습니다.

클러스터에서 Pod를 보려면 다음 명령을 실행합니다.

kubectl get pods -n azure-iot-operations

배포가 완료되는 데 몇 분 정도 걸릴 수 있습니다. get pods 명령을 다시 실행하여 보기를 새로 고칩니다.

Azure Portal에서 클러스터를 보려면 다음 단계를 사용합니다.

  1. Azure Portal에서 클러스터를 포함하는 리소스 그룹으로 이동합니다.

  2. 리소스 그룹의 개요에서 클러스터의 이름을 선택합니다.

  3. 클러스터의 메뉴에서 확장을 선택합니다.

    클러스터가 microsoft.iotoperations.x 유형의 확장을 실행 중임을 확인할 수 있습니다. 이것은 모든 Azure IoT 작업 구성 요소 및 오케스트레이션 서비스의 그룹 이름입니다.

    akvsecretsprovider라는 확장도 있습니다. 이 확장은 az iot ops init 명령을 사용하여 클러스터에 구성하고 설치한 비밀 공급자입니다. 테스트하는 동안 Azure IoT 작업 구성 요소를 삭제하고 다시 설치할 수 있지만, 비밀 공급자 확장이 클러스터에 계속 있어야 합니다.

az iot ops check을(를) 실행하여 배포된 AIO 워크로드의 상태 및 구성을 평가할 수 있습니다. 기본적으로 클라우드 커넥터를 포함한 MQ가 평가되며 --ops-service --svc을(를) 사용하여 서비스를 지정할 수 있습니다.

Azure IoT 작업 제거

az iot ops delete 명령을 사용하여 클러스터에서 Azure IoT 작업을 삭제하거나 제거합니다. 이 delete 명령은 클러스터에서 Azure IoT Operations 관련 리소스를 평가하고 삭제할 리소스의 트리 뷰를 제공합니다. 클러스터는 실행하기 전에 온라인 상태여야 합니다.

delete 명령은 다음을 제거합니다.

  • Azure IoT Operations 확장
  • Azure IoT Operations 리소스 동기화 규칙
  • Azure IoT Operations 리소스
  • 연결된 사용자 지정 위치
az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>

Azure IoT 작업 업데이트

현재는 기존 Azure IoT Operations 배포를 업데이트할 수 없습니다. 대신 새 버전의 Azure IoT Operations를 제거하고 다시 배포합니다.

  1. az iot ops delete 명령을 사용하여 클러스터에서 Azure IoT Operations 배포를 삭제합니다.

    az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
    
  2. CLI 확장을 업데이트하여 최신 Azure IoT Operations 버전을 가져옵니다.

    az extension update --name azure-iot-ops
    
  3. 이 문서의 단계에 따라 최신 버전의 Azure IoT Operations를 클러스터에 배포합니다.

    --ensure-latest 명령에 플래그를 az iot ops init 추가하여 최신 Azure IoT Operations CLI 버전이 설치되어 있는지 확인하고 업그레이드를 사용할 수 있는 경우 오류가 발생합니다.

다음 단계

구성 요소가 SQL 또는 패브릭과 같은 Azure 엔드포인트에 연결해야 하는 경우 Azure IoT 작업 미리 보기 배포에 대한 비밀을 관리하는 방법을 알아봅니다.