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

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

Bu eğitimde, siz:

  • AKS kümesi ve GPT-4 modeli içeren bir Azure OpenAI kaynağı oluşturun.
  • İş yükü kimliğiyle bağlantı kurmak için Hizmet Bağlayıcısı'nı yapılandırın.
  • Örnek bir uygulamayı kopyalayın.
  • Kapsayıcı görüntülerini derleyin ve Azure Container Registry gönderin.
  • Uygulamayı AKS'ye dağıtın ve bağlantıyı doğrulayın.
  • Kaynakları temizleyin.

Ö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. komutunu kullanarak kümeye bağlanın az aks get-credentials .

    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ğlandığını hedef hizmettir.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. Bir modeli, az cognitiveservices deployment create komutu ile 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 anonim çekmeyi `az acr update` komutunu kullanarak etkinleştirin.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. komutuyla veya az identity create 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 bir AKS kümesi ile Azure OpenAI arasında 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.
    Subscription 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 connection string ve hizmet ilkesi kullanımı bulunur ve kimlik bilgisi yönetimi konuları dikkate alınmalıdır.
    Subscription 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ümesinde iş yükü kimliği 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. <MyModel> dosyasındaki app.py yer tutucuyu dağıttığımız model adıyla değiştirin.

Kapsayıcı görüntülerini oluşturma ve Azure Container Registry 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. komutunu kullanarak az acr repository list kapsayıcı kayıt defterinizdeki görüntüleri görüntüleyin.

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

Azure OpenAI bağlantısına AKS dağıtımını ve testini gerçekleştirme

  1. pod.yaml klasöründeki azure-openai-workload-identity dosyasındaki yer tutucuları değiştirin.

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

    kubectl apply -f pod.yaml
    
  3. Dağıtımın başarılı olup olmadığını kontrol etmek için podu kubectl ile görüntüleyin.

    kubectl get pod/sc-demo-openai-identity
    
  4. Günlükleri kubectl kullanarak görüntüleyip 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