Aracılığıyla paylaş


Öğretici: AKS'yi Azure OpenAI'ye bağlama

Bu öğreticide, iş yükü kimlik doğrulamasıyla Hizmet Bağlayıcısı'nı kullanarak Azure Kubernetes Service (AKS) uygulamalarınızı Azure OpenAI'ye nasıl bağlayacağınız gösterilmektedir. Azure OpenAI ile iletişim kuran örnek bir Python uygulaması dağıtarak kimlik bilgisi olmayan bağlantılar kuracaksınız.

Aşağıdaki görevleri tamamlayacaksınız:

  • GPT-4 modeliyle AKS kümesi ve Azure OpenAI kaynağı oluşturma
  • İş yükü kimliğiyle bağlantı kurmak için Hizmet Bağlayıcısı'nı yapılandırma
  • Örnek uygulamayı kopyalama
  • Kapsayıcı görüntülerini derleme ve Azure Container Registry'ye gönderme
  • Uygulamayı AKS'ye dağıtma ve bağlantıyı doğrulama
  • Kaynakları temizleme

Önkoşullar

Azure OpenAI ve AKS kaynakları oluşturma

Bu öğreticiyi birkaç Azure kaynağı oluşturarak başlatırsınız.

  1. Bu öğretici için bir kaynak grubu oluşturun.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Aşağıdaki komutla veya AKS hızlı başlangıcına başvurarak bir AKS kümesi oluşturun. Bu öğreticide hizmet bağlantısını ve pod tanımını oluşturacak ve örnek uygulamayı bu kümeye dağıtacağız.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
        --generate-ssh-keys
    
  3. az aks get-credentials komutunu kullanarak kümeye bağlanın .

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. az cognitiveservices account create komutunu kullanarak bir Azure OpenAI kaynağı oluşturun. daha fazla yönerge için isteğe bağlı olarak bu öğreticiye bakın. Azure OpenAI, AKS kümesinin bağlanacağı hedef hizmettir.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. az cognitiveservices deployment create komutuyla bir model dağıtın. Model, bağlantıyı test etmek için örnek uygulamada kullanılır.

    az cognitiveservices account deployment create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard" \
        --capacity 1
    
  6. Kapsayıcılı örnek uygulamayı depolamak için bir Azure Container Registry (ACR) oluşturun. az acr create komutunu kullanın veya bu öğreticiye bakın.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. AKS kümesinin kayıt defterindeki görüntüleri kullanabilmesi için az acr update komutunu kullanarak anonim çekmeyi etkinleştirin.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. az identity create komutuyla veya bu öğreticiye başvurarak kullanıcı tarafından atanan bir yönetilen kimlik oluşturun. Bağlantı oluşturulduğunda, AKS iş yükleri için iş yükü kimliğini etkinleştirmek için kullanıcı tarafından atanan yönetilen kimlik kullanılır.

    az identity create \
        --resource-group MyResourceGroup \
        --name MyIdentity
    

AKS'den Azure OpenAI'ye hizmet bağlantısı oluşturma

Azure portalında veya Azure CLI'da AKS kümesi ile Azure OpenAI arasında bir hizmet bağlantısı oluşturun.

Yeni bağlantı oluşturma yönergeleri için AKS hizmet bağlantısı hızlı başlangıcına bakın ve aşağıdaki tabloda yer alan örneklere başvuran ayarları doldurun. Diğer tüm ayarları varsayılan değerleriyle bırakın.

  1. Temel bilgiler sekmesi:

    Ayar Örnek değer Açıklama
    Kubernetes ad alanı varsayılan Kubernetes ad alanı.
    Hizmet türü OpenAI Hizmeti Hedef hizmet türü.
    Bağlantı adı openai_conn Hizmet Bağlayıcısı tarafından sağlanan bağlantı adını kullanın veya kendi bağlantı adınızı seçin.
    Abonelik Aboneliğim Azure OpenAI kaynağınızı içeren Azure aboneliği.
    OpenAI MyOpenAI Bağlanmak istediğiniz hedef Azure OpenAI kaynağı.
    İstemci türü Python Bağlantı yapılandırması için programlama dili veya çerçevesi.
  2. Kimlik doğrulama sekmesi:

Kimlik Doğrulama Ayarı Örnek değer Açıklama
Kimlik doğrulaması türü İş Yükü Kimliği Uygulamayı Azure OpenAI'ye bağlamak için kimlik doğrulama yöntemi. gelişmiş güvenlik için iş yükü kimliği önerilir. Alternatif yöntemler arasında bağlantı dizesi ve hizmet sorumlusu bulunur ve kimlik bilgisi yönetimiyle ilgili dikkat edilmesi gerekenler gerekir.
Abonelik Aboneliğim Kullanıcı tarafından atanan yönetilen kimliği içeren abonelik.
Kullanıcı tarafından atanan yönetilen kimlik myidentity AKS kümesi için iş yükü kimliği kimlik doğrulamasını etkinleştiren kullanıcı tarafından atanan yönetilen kimlik.

Bağlantı oluşturulduktan sonra ayrıntılarını Hizmet Bağlayıcısı bölmesinde görüntüleyebilirsiniz.

Python örnek uygulamasını kopyalama

  1. Örnek depoyu kopyalayın:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Azure OpenAI için deponun örnek klasörüne gidin:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Dosyadaki <MyModel> yer tutucuyu app.py dağıtılan model adıyla değiştirin.

Kapsayıcı görüntülerini derleme ve Azure Container Registry'ye gönderme

  1. Azure CLI az acr build komutunu kullanarak görüntüleri derleyin ve kapsayıcı kayıt defterinize gönderin.

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. az acr repository list komutunu kullanarak kapsayıcı kayıt defterinizdeki görüntüleri görüntüleyin.

    az acr repository list --name myregistry --output table
    

AKS'yi Azure OpenAI bağlantısına dağıtma ve test etme

  1. klasöründeki dosyadaki pod.yamlazure-openai-workload-identity yer tutucuları değiştirin.

    • değerini daha önce oluşturduğunuz görüntünün adıyla değiştirin <YourContainerImage> . Örneğin <myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>.
    • değerini hizmet hesabı adıyla değiştirin <ServiceAccountCreatedByServiceConnector> . Azure portalında , Hizmet Bağlayıcısı bölmesinde bulunabilir.
    • yerine <SecretCreatedByServiceConnector> gizli dizi adını yazın. Azure portalında , Hizmet Bağlayıcısı bölmesinde bulunabilir.
  2. AKS kümenizin varsayılan ad alanında adlı kubectl apply bir pod oluşturan komutuyla sc-demo-openai-identity podu kümenize dağıtın. Yüklü kubectl değilse az aks install-cli komutunu kullanarak yerel olarak yükleyin.

    kubectl apply -f pod.yaml
    
  3. podunu ile kubectlgörüntüleyerek dağıtımın başarılı olup olmadığını denetleyin.

    kubectl get pod/sc-demo-openai-identity
    
  4. ile günlükleri kubectlgörüntüleyerek bağlantının kurulduğunu denetleyin.

    kubectl logs pod/sc-demo-openai-identity
    

Kaynakları temizleme

Bu öğreticide oluşturulan kaynaklara artık ihtiyacınız yoksa kaynak grubunu silerek bunları temizleyin.

az group delete \
    --resource-group MyResourceGroup