자습서: 워크로드 ID를 사용하여 AKS에서 Azure OpenAI Service에 연결(미리 보기)
이 자습서에서는 워크로드 ID와 서비스 커넥터를 사용하여 Azure OpenAI Service와 통신하는 AKS(Azure Kubernetes) 클러스터에서 Pod를 만드는 방법을 알아봅니다. 이 자습서에서는 다음 작업을 완료합니다.
gpt-4
모델 배포를 사용하여 AKS 클러스터 및 Azure OpenAI Service를 만듭니다.- 서비스 커넥터를 사용하여 AKS 클러스터와 Azure OpenAI 간의 연결을 만듭니다.
- AKS 클러스터에서 Azure OpenAI Service와 통신하는 샘플 애플리케이션을 복제합니다.
- AKS 클러스터의 Pod에 애플리케이션을 배포하고 연결을 테스트합니다.
- 리소스를 정리합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
-
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
- 컨테이너 이미지와 Kubernetes 리소스를 관리하려면 Docker와 kubectl을 설치합니다.
- 컨테이너 및 AKS에 대한 기본 이해. AKS용 애플리케이션 준비부터 시작해 보세요.
- 워크로드 ID에 대한 기본적인 이해.
- Azure OpenAI 리소스를 만들고 모델을 배포하기 위한 권한에 액세스합니다.
Azure 리소스 만들기
여러 Azure 리소스를 만들어 이 자습서를 시작합니다.
이 자습서에 대한 리소스 그룹을 만듭니다.
az group create \ --name MyResourceGroup \ --location eastus
다음 명령을 사용하거나 AKS 빠른 시작을 참조하여 AKS 클러스터를 만듭니다. 이 자습서에서는 서비스 연결과 Pod 정의를 만들고 샘플 애플리케이션을 이 클러스터에 배포합니다.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 --generate-ssh-keys
az aks get-credentials 명령을 사용하여 클러스터에 연결합니다.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
az cognitiveservices account create 명령을 사용하여 Azure OpenAI Service 리소스를 만듭니다. 선택적으로 자세한 지침을 보려면 이 자습서을 참조하세요. Azure OpenAI Service는 AKS 클러스터에 연결할 대상 서비스입니다.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
az cognitiveservices deployment create 명령을 사용하여 모델을 배포합니다. 모델은 샘플 애플리케이션에서 연결을 테스트하는 데 사용됩니다.
az cognitiveservices account deployment create \ --resource-group MyResourceGroup \ --name MyOpenAIService --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" --capacity 1
az acr create 명령을 사용하거나 이 자습서를 참조하여 ACR(Azure Container Registry) 리소스를 만듭니다. 레지스트리는 AKS Pod 정의가 사용하는 샘플 애플리케이션의 컨테이너 이미지를 호스팅합니다.
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
AKS 클러스터가 레지스트리의 이미지를 사용할 수 있도록 az acr update 명령을 사용하여 익명 끌어오기를 사용하도록 설정합니다.
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
az identity create 명령을 사용하거나 이 자습서를 참조하여 사용자 할당 관리 ID를 만듭니다. 연결이 만들어지면 사용자가 할당한 관리 ID를 사용하여 AKS 워크로드에 대한 워크로드 ID를 사용하도록 설정합니다.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
서비스 커넥터(미리 보기)를 사용하여 AKS에서 서비스 연결 만들기
Azure Portal 또는 Azure CLI에서 AKS 클러스터와 Azure OpenAI Service 간의 서비스 연결을 만듭니다.
새 연결을 만들고 다음 표의 예를 참조하여 설정을 입력하는 방법은 AKS 서비스 연결 빠른 시작을 참조하세요. 다른 모든 설정은 기본값으로 둡니다.
기본 사항 탭:
설정 예제 값 설명 Kubernetes 네임스페이스 default Kubernetes 네임스페이스입니다. 서비스 종류 OpenAI Service 대상 서비스 유형입니다. 연결 이름 openai_conn 서비스 커넥터에서 제공하는 연결 이름을 사용하거나 사용자 고유의 연결 이름을 선택합니다. 구독 <MySubscription>
Azure OpenAI Service에 사용되는 구독입니다. OpenAI <MyOpenAIService>
연결하려는 대상 Azure OpenAI Service입니다. 클라이언트 유형 Python 대상 서비스에 연결하는 데 사용하는 코드 언어 또는 프레임워크입니다. [인증] 탭:
인증 설정 예제 값 설명 인증 유형 워크로드 ID 서비스 커넥터 인증 유형입니다. 구독 <MySubscription>
사용자가 할당한 관리 ID가 포함된 구독입니다. 사용자가 할당한 관리 ID <MyIdentity>
워크로드 ID를 사용하려면 사용자가 할당한 관리 ID가 필요합니다.
연결이 만들어지면 서비스 커넥터 창에서 세부 정보를 볼 수 있습니다.
샘플 애플리케이션 복제
샘플 리포지토리를 복제합니다.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Azure OpenAI에 대한 리포지토리의 샘플 폴더로 이동합니다.
cd serviceconnector-aks-samples/azure-openai-workload-identity
app.py
파일의<MyModel>
자리 표시자를 배포한 모델 이름으로 바꿉니다.
컨테이너 이미지 빌드 및 푸시
Azure CLI az acr build 명령을 사용하여 이미지를 빌드하고 ACR에 푸시합니다.
az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
az acr repository list 명령을 사용하여 ACR 인스턴스의 이미지를 봅니다.
az acr repository list --name <MyRegistry> --output table
애플리케이션 실행 및 연결 테스트
azure-openai-workload-identity
폴더에 있는pod.yaml
파일의 자리 표시자를 바꿉니다.<YourContainerImage>
를 이전에 빌드한 이미지의 이름으로 바꿉니다. 예들 들어<MyRegistry>.azurecr.io/sc-demo-openai-identity:latest
입니다.<ServiceAccountCreatedByServiceConnector>
를 연결 만들기 후 서비스 커넥터에서 만들어진 서비스 계정으로 바꿉니다. Azure Portal의 서비스 커넥터 창에서 서비스 계정 이름을 확인할 수 있습니다.<SecretCreatedByServiceConnector>
를 연결 만들기 후 서비스 커넥터에서 만들어진 비밀로 바꿉니다. Azure Portal의 서비스 커넥터 창에서 비밀 이름을 확인할 수 있습니다.
AKS 클러스터의 기본 네임스페이스에
sc-demo-openai-identity
라는 Pod를 만드는kubectl apply
명령을 사용하여 클러스터에 Pod를 배포합니다.kubectl
이 설치되지 않은 경우 az aks install-cli 명령을 사용하여 로컬로 설치합니다.kubectl apply -f pod.yaml
kubectl
로 Pod를 확인하여 배포가 성공했는지 확인합니다.kubectl get pod/sc-demo-openai-identity
kubectl
로 로그를 확인하여 연결이 설정되었는지 확인합니다.kubectl logs pod/sc-demo-openai-identity
리소스 정리
이 자습서에서 만들어진 리소스가 더 이상 필요하지 않으면 리소스 그룹을 삭제하여 정리합니다.
az group delete \
--resource-group MyResourceGroup
다음 단계
서비스 커넥터 개념과 AKS가 서비스에 연결하는 데 어떻게 도움이 되는지 자세히 알아보려면 다음 문서를 참조하세요.