기존 Azure IoT Operations 인스턴스를 복제하여 동일한 구성 및 설정으로 새 인스턴스를 만들 수 있습니다. 복제는 인스턴스의 백업을 만들거나 테스트 또는 개발 목적으로 동일한 구성으로 새 인스턴스를 설정하는 데 유용합니다.
복제에 대한 사용 사례 시나리오는 다음과 같습니다.
- 재해 복구: 재해가 발생한 경우 인스턴스를 복원하는 데 사용할 수 있는 Azure IoT Operations 인스턴스의 백업을 만듭니다.
- 테스트 및 개발: 테스트 또는 개발 목적으로 기존 인스턴스와 동일한 구성으로 새 Azure IoT Operations 인스턴스를 설정합니다.
- 마이그레이션: 인스턴스를 새 위치에 복제하여 Azure IoT Operations 인스턴스를 새 클러스터 또는 리소스 그룹으로 이동합니다.
- 크기 조정: 증가된 워크로드를 처리하거나 여러 인스턴스에 부하를 분산하기 위해 Azure IoT Operations 인스턴스의 여러 인스턴스를 만듭니다.
비고
복제 기능은 미리 보기로 제공되며 개발 중입니다.
필수 조건
클러스터에 배포된 Azure IoT Operations 인스턴스입니다. 자세한 내용은 Azure IoT 작업 배포를 참조하세요.
개발 컴퓨터에 설치된 Azure CLI입니다. 이 시나리오에는 Azure CLI 버전 2.53.0 이상이 필요합니다.
az --version을 사용하여 버전을 확인하고 필요한 경우az upgrade를 사용하여 업데이트합니다. 자세한 내용은 Azure CLI 설치 방법을 참조하세요.Azure CLI용 Azure IoT 작업 확장입니다. 복제본은 현재 다음 IoT Operations 인스턴스 버전 범위와 호환됩니다.
1.0.34>=,<1.2.0. 다음 명령을 사용하여 확장을 업데이트하거나 설치합니다. 인스턴스와 호환되는 버전으로 대체<VERSION_NUMBER>합니다.az extension add --upgrade --name azure-iot-ops --version <VERSION_NUMBER>
Clone 명령 개요
이 az iot ops clone 명령을 사용하여 기존 인스턴스를 기반으로 새 Azure IoT Operations 인스턴스를 만듭니다.
이 clone 명령은 Azure IoT Operations 인스턴스를 분석하고 ARM 템플릿을 통해 코드로서의 인프라 방식으로 재현합니다. 복제라고 하는 다른 연결된 클러스터에 복제 출력을 적용할 수 있습니다. 나중에 사용할 수 있도록 로컬 디렉터리에 클론을 저장하고 클러스터에 적용하기 전에 일부 구성 변경을 수행할 수도 있습니다.
복제 작업은 원본 인스턴스인 모델, 대상 인스턴스인 대상 및 템플릿의 세 가지 주요 구성 요소로 구성됩니다. 다음 다이어그램에서는 복제 흐름을 보여 줍니다. 이 clone 명령은 원본 인스턴스를 분석하고 IaC/ARM 템플릿을 통해 복제합니다. 복제된 정의는 하나 이상의 대상 클러스터에 적용됩니다.
모델 복제
모델은 복제 중인 인스턴스입니다. 복제 작업의 기준 정보입니다. 모델을 식별하려면 다음 매개 변수를 입력합니다.
-
--name/-n: 모델 인스턴스 이름입니다. -
--resource-group/-g: 모델 인스턴스를 포함하는 리소스 그룹입니다.
대상 복제
대상은 복제 정의를 복제하거나 저장하려는 위치입니다. 복제본을 하나, 모두 또는 아무 대상에도 적용할 수 있습니다. 대상 옵션을 제공하지 않으면 범위 내 리소스의 요약을 출력한 후 프로세스가 종료됩니다. 대상을 식별하려면 다음 매개 변수 중 하나를 입력합니다.
--to-cluster-id: 복제된 인스턴스를 복제하려는 대상 클러스터의 전체 Azure 리소스 ID를 제공합니다. 이 옵션을 사용하는 경우 복제 명령은 복제 정의에 지정된 Azure IoT Operations 버전을 대상 클러스터에 배포한 다음 모든 관련 리소스를 적용하여 배포를 완료합니다. UAMI(사용자 할당 관리 ID) 자격 증명의 자동 페더레이션은 현재 클러스터 대상으로 복제할 때만 지원됩니다.--to-dir: 복제 정의를 디스크에 복제하는 로컬 디렉터리 경로를 제공합니다. 여기서 수정 여부에 관계없이 기존 ARM 배포 도구를 사용하여 배포할 수 있습니다. 복제 정의를 검사하면, 사용자 지정을 용이하게 하기 위해 다양한 매개 변수 설정이 작동하는 것을 볼 수 있습니다.
중요합니다
대상 리소스 그룹을 선택할 때 기존 IoT Operations 설치가 없고 모델의 리소스 그룹과 별개인 리소스 그룹을 사용하는 것이 좋습니다. 기본적으로 복제 정의는 모델 인스턴스의 리소스 이름을 유지합니다. 대상과 모델이 동일한 리소스 그룹을 공유하고 사용자 지정 위치를 변경하는 경우 리소스 이름 충돌이 발생할 수 있습니다.
복제 템플릿
복제 명령은 대상에서 만들 리소스를 설명하는 ARM 템플릿을 생성합니다. 템플릿은 모델 인스턴스의 리소스 및 해당 구성에 따라 생성됩니다. 템플릿을 사용자 지정하려면 다음 선택적 매개 변수를 입력합니다.
템플릿 사용자 지정 매개 변수 복제
다음 선택적 매개 변수를 사용하여 생성된 ARM 템플릿을 사용자 지정할 수 있습니다.
--mode: 템플릿에서 하위 배포를 구성하는 방법을 지정합니다.- 모드를 사용하는 경우
nested(기본값) 모든 하위 배포는 루트 배포 파일 내에 자체 포함됩니다. -
linked모드를 사용하면 자산 관련 하위 배포가 분할되어 별도의 파일로 저장되고 루트 배포에 의해 연결됩니다. 인스턴스에 많은 수의 디바이스와 자산이 포함된 경우 모드를 사용하여linked확장성 및 관리 효율성을 개선합니다. 대규모 배포에 대해 이 분리를 요구하지 않는 한 이 매개 변수를 지정할 필요가 없습니다.
- 모드를 사용하는 경우
--param: 형식location을 사용하여 기본 제공 기본 매개 변수(예:instanceName,adrNamespaceId또는key=value)를 재정의할 수 있습니다. 키의 전체 목록을 표시하는 데 사용합니다--help.
인스턴스 복제
인스턴스를 복제하려면 적절한 매개 변수와 함께 명령을 사용하여 az iot ops clone 원본 인스턴스와 대상 위치를 지정합니다.
시작하기 전에 모델 인스턴스가 있는 동일한 구독으로 기본 구독을 설정합니다. 그렇지 않으면
--subscription명령을 실행할 때마다az iot ops clone을 추가해야 합니다.az account set -s $MODEL_SUBSCRIPTION_ID클러스터 리소스 ID를 가져오려면 다음을 실행합니다.
az resource show --name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --resource-type "Microsoft.Kubernetes/connectedClusters" --query id --output tsv기본 옵션을 사용하여 인스턴스를 복제하고 대상 아크 연결 클러스터에 복제하려면 다음을 실행합니다.
az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID>다른 클러스터에 대한 복제를 사용자 지정하려면 형식
--param으로 변경하려는 매개 변수를 사용하고key=value지정합니다. 예를 들어 복제된 인스턴스의 위치를 변경하려면 다음을 실행합니다.az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID> --param location=eastus인스턴스를 로컬 디스크에 복제하려면 매개 변수를
--to-dir사용하여 복제 정의를 저장할 디렉터리를 지정합니다. 이 옵션은 사용자의 재량에 따라 조작하거나 배포할 표준 ARM 템플릿을 생성합니다.az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-dir <DIRECTORY>팁 (조언)
인스턴스를 현재 디렉터리에 복제하려면
--to-dir .인스턴스를 복제하고 대상 클러스터에 복제하고 동일한 작업에서 파일에 저장하려면 다음을 실행합니다.
az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID> --to-dir <DIRECTORY>인스턴스를 클러스터에 복제하지만 자산 관련 하위 배포
--mode linked.를 분할 및 직렬로 적용하려면 모델 인스턴스에 상당한 수의 자산 관련 리소스가 포함된 경우 매개 변수는 가장 높은 수준의 규모를 제공합니다.az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID> --mode linked연결된 모드에서 인스턴스를 디스크에 복제하려면 연결된 각 자산 및/또는 자산 엔드포인트 프로필 템플릿을 루트 템플릿과 별도로 배포할 수 있습니다.
az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-dir . --mode linked
고려사항 및 제한사항
- 자동 ID 페더레이션은 현재 옵션에서
--to-cluster-id만 지원됩니다. - 리소스 동기화 규칙은 캡처되지 않습니다.
- IoT 운영 시스템 관리 ID와 대상 스키마 레지스트리 간의 필수 역할 할당은 복제를 통해 처리되지만 다른 시스템 관리 ID 역할 할당은 다루지 않습니다.
- 복제는 클라우드 쪽 작업입니다. 클러스터와 직접적으로 상호 작용하지 않습니다. 클러스터 비밀은 비밀 공급자 클래스 및 비밀 동기화 클라우드 리소스를 포함하는 보안 설정을 통해 클라우드에서 동기화됩니다. 모델 클러스터에서 모델 IoT Operations 솔루션에서 참조되는 configmaps와 같은 요소를 만든 경우 해당 요소를 대상 클러스터에 다시 적용해야 합니다.