CLI를 사용하여 Azure Arc 데이터 컨트롤러 만들기
필수 조건
개요 정보는 Azure Arc 지원 데이터 서비스 배포 계획 항목을 검토합니다.
도구 설치
시작하기 전에 Azure(az) CLI용 arcdata
확장을 설치합니다.
Azure(az
) CLI용 (arcdata
) 확장을 설치합니다.
선택한 대상 플랫폼에 관계없이 데이터 컨트롤러를 만들기 전에 다음 환경 변수를 설정해야 합니다. 이러한 환경 변수는 데이터 컨트롤러를 만든 후 메트릭 및 로그 대시보드에 액세스하는 데 사용되는 자격 증명이 됩니다.
환경 변수 설정
다음은 메트릭 및 로그 대시보드에 액세스하는 데 필요한 두 가지 환경 변수 집합입니다.
환경 변수에는 로그 및 메트릭 서비스에 대한 암호가 포함됩니다. 암호는 길이가 8자 이상이어야 하며 라틴 대문자, 라틴 소문자, 숫자 및 영숫자가 아닌 문자의 네 가지 범주 중 세 가지 범주의 문자를 포함해야 합니다.
## variables for Metrics and Monitoring dashboard credentials
export AZDATA_LOGSUI_USERNAME=<username for Kibana dashboard>
export AZDATA_LOGSUI_PASSWORD=<password for Kibana dashboard>
export AZDATA_METRICSUI_USERNAME=<username for Grafana dashboard>
export AZDATA_METRICSUI_PASSWORD=<password for Grafana dashboard>
Kubernetes 클러스터에 연결
Azure Arc 데이터 컨트롤러를 만들기 전에 Kubernetes 클러스터에 연결하여 인증하고 기존 Kubernetes 컨텍스트를 선택해야 합니다. Kubernetes 클러스터 또는 서비스에 연결하는 방법은 다양합니다. Kubernetes API 서버에 연결하는 방법에 대해서는 사용 중인 Kubernetes 배포 또는 서비스에 대한 문서를 참조하세요.
현재 Kubernetes 연결이 있는지 확인하고 다음 명령을 사용하여 현재 컨텍스트를 확인할 수 있습니다.
kubectl cluster-info
kubectl config current-context
Azure Arc 데이터 컨트롤러 만들기
다음 섹션에서는 특정 유형의 Kubernetes 플랫폼에 대한 지침을 제공합니다. 자신의 플랫폼에 맞는 지침을 따르세요.
- AKS(Azure Kubernetes Service)
- Azure Stack HCI의 AKS
- ARO(Azure Red Hat OpenShift)
- Red Hat OCP(OpenShift Container Platform)
- 오픈 소스, 업스트림 Kubernetes(kubeadm)
- AWS EKS(Elastic Kubernetes Service)
- GKE(Google Cloud Kubernetes Engine) 서비스
팁
Kubernetes 클러스터가 없는 경우 Azure에서 만들 수 있습니다. 빠른 시작: Azure Arc 지원 데이터 서비스 배포 - 직접 연결 모드 - Azure Portal의 지침에 따라 전체 프로세스를 살펴봅니다.
그런 다음, AKS(Azure Kubernetes Service)에서 만들기의 지침을 따릅니다.
AKS(Azure Kubernetes Service)에서 만들기
기본적으로 AKS 배포 프로필은 managed-premium
스토리지 클래스를 사용합니다. managed-premium
스토리지 클래스는 프리미엄 디스크가 있는 VM 이미지를 사용하여 배포된 VM이 있는 경우에만 작동합니다.
managed-premium
을 스토리지 클래스로 사용하려는 경우 다음 명령을 실행하여 데이터 컨트롤러를 만들 수 있습니다. 명령의 자리 표시자를 리소스 그룹 이름, 구독 ID 및 Azure 위치로 대체합니다.
az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace <namespace> --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --use-k8s
#Example:
#az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace arc --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --use-k8s
사용할 스토리지 클래스가 확실하지 않은 경우 사용 중인 VM 유형에 관계없이 지원되는 default
스토리지 클래스를 사용해야 합니다. 가장 빠른 성능을 제공하지는 않습니다.
default
스토리지 클래스를 사용하려는 경우 다음 명령을 실행할 수 있습니다.
az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
Azure Stack HCI의 AKS에서 만들기
스토리지 구성(AKS-HCI가 포함된 Azure Stack HCI)
AKS-HCI와 함께 Azure Stack HCI를 사용하는 경우 fsType
을 사용하여 사용자 지정 스토리지 클래스를 만듭니다.
fsType: ext4
이 형식을 사용하여 데이터 컨트롤러를 배포합니다. Azure Stack HCI의 AKS 디스크에 대한 사용자 지정 스토리지 클래스 만들기의 전체 지침을 참조하세요.
기본적으로 배포 프로필은 default
라는 스토리지 클래스와 서비스 유형 LoadBalancer
를 사용합니다.
다음 명령을 실행하여 default
스토리지 클래스와 서비스 유형 LoadBalancer
를 사용하여 데이터 컨트롤러를 만들 수 있습니다.
az arcdata dc create --profile-name azure-arc-aks-hci --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-aks-hci --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
ARO(Azure Red Hat OpenShift)에서 만들기
사용자 지정 배포 프로필 만들기
Azure Red Hat OpenShift에 azure-arc-azure-openshift
프로필을 사용합니다.
az arcdata dc config init --source azure-arc-azure-openshift --path ./custom
데이터 컨트롤러 만들기
다음 명령을 실행하여 데이터 컨트롤러를 만들 수 있습니다.
az arcdata dc create --profile-name azure-arc-azure-openshift --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example
#az arcdata dc create --profile-name azure-arc-azure-openshift --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
Red Hat OCP(OpenShift Container Platform)에서 만들기
스토리지 클래스 결정
사용할 스토리지 클래스를 확인하려면 다음 명령을 실행합니다.
kubectl get storageclass
사용자 지정 배포 프로필 만들기
다음 명령을 실행하여 azure-arc-openshift
배포 프로필을 기반으로 새 사용자 지정 배포 프로필 파일을 만듭니다. 이 명령은 현재 작업 디렉터리에 custom
디렉터리를 만들고 해당 디렉터리에 사용자 지정 배치 프로필 파일 control.json
을 만듭니다.
OpenShift Container Platform에 azure-arc-openshift
프로필을 사용합니다.
az arcdata dc config init --source azure-arc-openshift --path ./custom
스토리지 클래스 설정
이제 아래 명령의 <storageclassname>
을 위의 kubectl get storageclass
명령을 실행하여 결정된 스토리지 클래스의 이름으로 대체하여 원하는 스토리지 클래스를 설정합니다.
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"
#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"
LoadBalancer 설정(선택 사항)
기본적으로 azure-arc-openshift
배포 프로필은 NodePort
를 서비스 유형으로 사용합니다. 부하 분산 장치와 통합된 OpenShift 클러스터를 사용하는 경우 다음 명령을 사용하여 LoadBalancer
서비스 유형을 사용하도록 구성을 변경할 수 있습니다.
az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"
데이터 컨트롤러 만들기
이제 다음 명령을 사용하여 데이터 컨트롤러를 만들 준비가 되었습니다.
참고 항목
--path
매개 변수는 control.json 파일 자체가 아니라 control.json 파일이 포함된 디렉터리를 가리켜야 합니다.
참고 항목
OpenShift Container Platform에 배포하는 경우 --infrastructure
매개 변수 값을 지정합니다. 옵션은 aws
, azure
, alibaba
, gcp
, onpremises
입니다.
az arcdata dc create --path ./custom --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>
#Example:
#az arcdata dc create --path ./custom --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
오픈 소스, 업스트림 Kubernetes(kubeadm)에서 만들기
기본적으로 kubeadm 배치 프로파일은 local-storage
라는 스토리지 클래스와 서비스 유형 NodePort
를 사용합니다. 이것이 허용되는 경우 원하는 스토리지 클래스 및 서비스 유형을 설정하는 아래 지침을 건너뛰고 바로 아래의 az arcdata dc create
명령을 실행할 수 있습니다.
특정 스토리지 클래스 및/또는 서비스 유형을 지정하도록 배포 프로필을 사용자 지정하려면 다음 명령을 실행하여 kubeadm 배포 프로필을 기반으로 새 사용자 지정 배포 프로필 파일을 만듭니다. 이 명령은 현재 작업 디렉터리에 custom
디렉터리를 만들고 해당 디렉터리에 사용자 지정 배치 프로필 파일 control.json
을 만듭니다.
az arcdata dc config init --source azure-arc-kubeadm --path ./custom
다음 명령을 실행하여 사용 가능한 스토리지 클래스를 조회할 수 있습니다.
kubectl get storageclass
이제 아래 명령의 <storageclassname>
을 위의 kubectl get storageclass
명령을 실행하여 결정된 스토리지 클래스의 이름으로 대체하여 원하는 스토리지 클래스를 설정합니다.
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"
#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"
기본적으로 kubeadm 배포 프로필은 NodePort
를 서비스 유형으로 사용합니다. 부하 분산 장치와 통합된 Kubernetes 클러스터를 사용하는 경우 다음 명령을 사용하여 구성을 변경할 수 있습니다.
az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"
이제 다음 명령을 사용하여 데이터 컨트롤러를 만들 준비가 되었습니다.
참고 항목
OpenShift Container Platform에 배포하는 경우 --infrastructure
매개 변수 값을 지정합니다. 옵션은 aws
, azure
, alibaba
, gcp
, onpremises
입니다.
az arcdata dc create --path ./custom --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>
#Example:
#az arcdata dc create --path ./custom - --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
AWS EKS(Elastic Kubernetes Service)에서 만들기
기본적으로 EKS 스토리지 클래스는 gp2
이고 서비스 유형은 LoadBalancer
입니다.
제공된 EKS 배포 프로필을 사용하여 데이터 컨트롤러를 만들려면 다음 명령을 실행합니다.
az arcdata dc create --profile-name azure-arc-eks --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-eks --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
GKE(Google Cloud Kubernetes Engine) 서비스에서 만들기
기본적으로 GKE 스토리지 클래스는 standard
이고 서비스 유형은 LoadBalancer
입니다.
제공된 GKE 배포 프로필을 사용하여 데이터 컨트롤러를 만들려면 다음 명령을 실행합니다.
az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
명령을 실행한 후 만들기 상태 모니터링으로 계속 진행합니다.
만들기 상태 모니터링
컨트롤러를 완전히 만드는 데 몇 분 정도 걸립니다. 다음 명령을 사용하여 다른 터미널 창에서 진행률을 모니터링할 수 있습니다.
참고 항목
아래 예제 명령에서는 arc-dc
라는 이름으로 데이터 컨트롤러 및 arc
라는 이름으로 Kubernetes 네임스페이스를 만들었다고 가정합니다. 다른 값을 사용한 경우 스크립트를 적절하게 업데이트합니다.
kubectl get datacontroller/arc-dc --namespace arc
kubectl get pods --namespace arc
아래와 같은 명령을 실행하여 특정 Pod의 생성 상태를 확인할 수도 있습니다. 이 기능은 문제를 해결하는 데 특히 유용합니다.
kubectl describe po/<pod name> --namespace arc
#Example:
#kubectl describe po/control-2g7bl --namespace arc
만들기 문제 해결
만들기 관련 문제가 발생하는 경우 문제 해결 가이드를 참조하세요.