Azure Arc 사용 Kubernetes 클러스터 준비
Azure Arc 지원 Kubernetes 클러스터는 Azure IoT Operations를 배포하기 위한 필수 구성 요소입니다. 이 문서에서는 Azure IoT 작업을 배포하기 전에 클러스터를 준비하는 방법을 설명합니다. 이 문서에는 Ubuntu 및 Windows 모두에 대한 지침이 포함되어 있습니다.
이 문서의 단계에서는 더 길지만 프로덕션 준비 프로세스인 보안 설정 배포를 위해 클러스터를 준비합니다. Azure IoT Operations를 신속하게 배포하고 테스트 설정 만 사용하여 샘플 워크로드를 실행하려면 빠른 시작: K3s 를 사용하여 GitHub Codespaces에서 Azure IoT 작업 실행 대신 참조하세요. 테스트 설정 및 보안 설정에 대한 자세한 내용은 배포 세부 정보 > 선택 기능을 참조하세요.
필수 조건
Microsoft는 Ubuntu에서 배포할 수 있는 Windows 및 K3의 배포를 위해 AKS(Azure Kubernetes Service) Edge Essentials를 지원합니다. 다중 노드 솔루션에 Azure IoT Operations를 배포하려면 Ubuntu에서 K3s를 사용합니다.
Azure Arc 지원 Kubernetes 클러스터를 준비하려면 다음이 필요합니다.
Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 무료 구독을 만듭니다.
Azure 리소스 그룹. 리소스 그룹당 하나의 Azure IoT Operations 인스턴스만 지원됩니다. 새 리소스 그룹을 만들려면 az group create 명령을 사용합니다. 현재 지원되는 Azure 지역 목록은 지원되는 지역을 참조하세요.
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
클러스터 머신에 설치된 Azure CLI 버전 2.64.0 이상
az --version
을 사용하여 버전을 확인하고 필요한 경우az upgrade
를 사용하여 업데이트합니다. 자세한 내용은 Azure CLI 설치 방법을 참조하세요.Azure CLI용 Connectedk8s 확장의 최신 버전:
az extension add --upgrade --name connectedk8s
시스템 요구 사항을 충족하는 하드웨어:
내결함성을 사용하도록 설정된 다중 노드 클러스터에 Azure IoT 작업을 배포하려는 경우 Edge 볼륨용 Linux 준비에서 하드웨어 및 스토리지 요구 사항을 검토합니다.
클러스터 만들기 및 Arc 사용
이 섹션에서는 Linux 및 Windows의 유효성이 검사된 환경에서 클러스터를 만드는 단계를 제공합니다.
Ubuntu에서 K3s Kubernetes 클러스터를 준비하려면 다음을 수행합니다.
단일 노드 또는 다중 노드 K3s 클러스터를 만듭니다. 예를 들어 K3s 빠른 시작 가이드 또는 K3s 관련 프로젝트를 참조하세요.
kubectl이 K3의 일부로 설치되었는지 확인합니다. 그렇지 않은 경우 지침에 따라 Linux에 kubectl을 설치합니다.
kubectl version --client
지침에 따라 Helm을 설치합니다.
.kube/config
에서 K3s 구성 yaml 파일 생성:mkdir ~/.kube sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged mv ~/.kube/merged ~/.kube/config chmod 0600 ~/.kube/config export KUBECONFIG=~/.kube/config #switch to k3s context kubectl config use-context default sudo chmod 644 /etc/rancher/k3s/k3s.yaml
다음 명령을 실행하여 사용자 조사식/인스턴스 제한을 늘립니다.
echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
성능을 향상시키려면 파일 설명자 제한을 늘입니다.
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Arc에서 클러스터를 사용하도록 설정
원격으로 관리할 수 있도록 클러스터를 Azure Arc에 연결합니다.
Kubernetes 클러스터를 배포한 컴퓨터에서 Azure CLI를 이용해 로그인합니다.
az login
리소스에 액세스하기 위해 디바이스를 관리해야 한다는 오류가 발생하는 경우 다시 실행하고
az login
브라우저를 사용하여 대화형으로 로그인해야 합니다.로그인한 후 Azure CLI는 모든 구독을 표시하고 별표
*
가 있는 기본 구독을 나타냅니다. 기본 구독을 계속하려면 .를 선택합니다Enter
. 그렇지 않은 경우 사용하려는 Azure 구독 수를 입력합니다.구독에 필요한 리소스 공급자를 등록합니다.
참고 항목
이 단계는 구독당 한 번만 실행하면 됩니다. 리소스 공급자를 등록하려면 구독 기여자 및 소유자 역할에 포함된
/register/action
작업을 수행할 수 있는 권한이 필요합니다. 자세한 내용은 Azure 리소스 공급자 및 형식을 참조하세요.az provider register -n "Microsoft.ExtendedLocation" az provider register -n "Microsoft.Kubernetes" az provider register -n "Microsoft.KubernetesConfiguration" az provider register -n "Microsoft.IoTOperations" az provider register -n "Microsoft.DeviceRegistry" az provider register -n "Microsoft.SecretSyncController"
az connectedk8s connect 명령을 사용하여 Kubernetes 클러스터를 Arc로 사용하도록 설정하고 Azure 리소스 그룹의 일부로 관리합니다.
az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Azure Arc 및 Azure IoT Operations에서 종속성으로 사용하는 시스템 Arc 확장에 대한 계획되지 않은 업데이트를 방지하기 위해 이 명령은 자동 업그레이드를 사용하지 않도록 설정합니다. 대신 필요에 따라 에이전트를 수동으로 업그레이드합니다 .
Important
사용자 환경에서 프록시 서버 또는 Azure Arc Gateway를 사용하는 경우 프록시 정보를 사용하여 명령을 수정
az connectedk8s connect
합니다.- 아웃바운드 프록시 서버를 사용하여 연결하거나 Azure Arc Gateway를 사용하여 Kubernetes 클러스터를 Azure Arc에 온보딩하는 방법의 지침을 따릅니다.
- 명령의
--proxy-skip-range
매개 변수에 추가169.254.169.254
합니다az connectedk8s connect
. Azure Device Registry는 이 로컬 엔드포인트를 사용하여 권한 부여를 위한 액세스 토큰을 가져옵니다.
Azure IoT Operations는 신뢰할 수 있는 인증서가 필요한 프록시 서버를 지원하지 않습니다.
클러스터의 발급자 URL을 가져옵니다.
az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
다음 단계에서 사용할 이 명령의 출력을 저장합니다.
k3s 구성 파일을 만듭니다.
sudo nano /etc/rancher/k3s/config.yaml
자리 표시자를 클러스터의
config.yaml
발급자 URL로 대체<SERVICE_ACCOUNT_ISSUER>
하여 파일에 다음 콘텐츠를 추가합니다.kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
파일을 저장하고 Nano 편집기를 종료합니다.
objectId
Azure Arc 서비스가 테넌트에서 사용하는 Microsoft Entra ID 애플리케이션을 가져와서 환경 변수로 저장합니다. GUID 값을 변경하지 않고 기록된 대로 정확하게 다음 명령을 실행합니다.export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
az connectedk8s enable-features 명령을 사용하여 클러스터에서 사용자 지정 위치 지원을 사용하도록 설정합니다. 이 명령은 Azure Arc 서비스에서 사용하는 Microsoft Entra ID 애플리케이션의
objectId
를 사용합니다. Kubernetes 클러스터를 배포한 컴퓨터에서 이 명령을 실행하세요.az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
K3를 다시 시작합니다.
systemctl restart k3s
Azure Container Storage에 대한 다중 노드 클러스터 구성
노드가 3개 이상인 다중 노드 클러스터에서는 Azure IoT Operations를 배포할 때 Azure Arc에서 사용하도록 설정된 Azure Container Storage를 사용하여 스토리지에 내결함성을 사용하도록 설정하는 옵션이 있습니다.
배포 중에 내결함성을 사용하도록 설정하려면 다중 노드 Ubuntu 클러스터를 사용하여 Edge 볼륨용 Linux 준비의 단계에 따라 클러스터를 구성합니다.
고급 구성
이 시점에서 Azure Arc 지원 Kubernetes 클러스터가 있지만 Azure IoT Operations를 배포하기 전에 고급 시나리오에 맞게 클러스터를 구성할 수 있습니다.
- 클러스터에서 관찰 기능 기능을 사용하도록 설정하려면 관찰 가능성 리소스 배포의 단계를 수행하고 로그를 설정합니다.
- 클러스터에서 사용자 고유의 인증서 발급자를 구성하려면 인증서 관리 > Bring your own 발급자의 단계를 수행합니다.
다음 단계
이제 Azure Arc 사용 Kubernetes 클러스터가 준비되었으며, Azure IoT 작업을 배포할 수 있습니다.