次の方法で共有


チュートリアル: AKS を openAI Azureに接続する

このチュートリアルでは、ワークロード ID 認証で Service Connector を使用して、Azure Kubernetes Service (AKS) アプリケーションを Azure OpenAI に接続する方法について説明します。 その後、Azure OpenAI と通信するサンプル Python アプリケーションをデプロイして、資格情報のない接続を確立してテストします。

このチュートリアルでは、次の操作を行います。

  • AKS クラスターを作成し、GPT-4 モデルを使用して OpenAI リソースをAzureします。
  • Service Connector を構成して、ワークロード ID との接続を確立します。
  • サンプル アプリケーションを複製します。
  • コンテナー イメージをビルドしてAzure Container Registryにプッシュします。
  • アプリケーションを AKS にデプロイし、接続を確認します。
  • リソースをクリーンアップする。

前提条件

  • アクティブなサブスクリプションを持つAzure アカウント。 無料でアカウントを作成できます。
    • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Get started with Azure Cloud Shell」を参照してください。

    • CLI 参照コマンドをローカルで実行する場合は、Azure CLIinstallします。 Windowsまたは macOS で実行している場合は、Docker コンテナーでAzure CLIを実行することを検討してください。 詳細については、「 Docker コンテナーでAzure CLIを実行する方法を参照してください。

      • ローカル インストールを使用している場合は、az login コマンドを使用してAzure CLIにサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLI を使用して Azure に認証する」を参照してください。

      • メッセージが表示されたら、最初に使用するときにAzure CLI拡張機能をインストールします。 拡張機能の詳細については、「Azure CLIを参照してください。

      • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • コンテナー イメージと Kubernetes リソースを管理するための Docker と kubectl。
  • コンテナーと AKS の基本的な理解。 AKS 用のアプリケーションの準備から開始します。
  • Azure OpenAI リソースを作成し、モデルをデプロイするためのアクセス許可。

Azure OpenAI リソースと AKS リソースを作成する。

このチュートリアルを開始するには、いくつかのAzureリソースを作成します。

  1. このチュートリアル用のリソース グループを作成します。

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. 次のコマンドを使用するか、AKS クイック スタートを参照して、AKS クラスターを作成します。 このチュートリアルでは、サービス接続とポッド定義を作成し、このクラスターにサンプル アプリケーションをデプロイします。

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
        --generate-ssh-keys
    
  3. コマンドを使用してクラスターに接続します。

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. az cognitiveservices account create コマンドを使用して、Azure OpenAI リソースを作成します。 必要に応じて、詳細な手順についてはこのチュートリアルを参照してください。 Azure OpenAI は、AKS クラスターが接続するターゲット サービスです。

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. コマンドを使用してモデルをデプロイします。 このモデルは、接続をテストするためにサンプル アプリケーションで使用されます。

    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. コンテナー化されたサンプル アプリケーションを格納するには、Azure Container Registry (ACR) を作成します。 コマンドを使用するか、このチュートリアルを参照してください。

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. AKS クラスターがレジストリ内のイメージを使用できるように、 コマンドを使用して匿名プルを有効にします。

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. コマンドを使用するか、このチュートリアルを参照して、ユーザー割り当てマネージド ID を作成します。 接続が作成されると、ユーザー割り当てマネージド ID を使用して、AKS ワークロードのワークロード ID が 有効になります。

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

AKS から Azure OpenAI へのサービス接続を作成する

Azure ポータルまたはAzure CLIで、AKS クラスターと Azure OpenAI の間にサービス接続を作成します。

新しい接続を作成し、次の表の例を参照して設定を入力する手順については、AKS サービス接続のクイックスタートを参照してください。 その他の設定はすべて既定値のままにします。

  1. [基本] タブ:

    設定 値の例 説明
    Kubernetes の名前空間 default Kubernetes 名前空間。
    サービスの種類 OpenAI サービス ターゲット サービスの種類。
    接続名 openai_conn Service Connector によって提供される接続名を使用するか、独自の接続名を選択します。
    サブスクリプション 自分のサブスクリプション Azure OpenAI リソースを含むAzure サブスクリプション。
    OpenAI MyOpenAI 接続先のAzure OpenAIリソースです。
    クライアントの種類 Python 接続構成のプログラミング言語またはフレームワーク。
  2. [認証] タブ

    認証設定 値の例 説明
    認証の種類 ワークロードアイデンティティ アプリを Azure OpenAI に接続するための認証方法。 セキュリティを強化するために、ワークロード ID を使用することをお勧めします。 別の方法には、接続文字列とサービス プリンシパルが含まれており、資格情報の管理に関する考慮事項が必要です。
    サブスクリプション 自分のサブスクリプション ユーザー割り当てマネージド ID を含むサブスクリプション。
    ユーザーが割り当てたマネージドID MyIdentity AKS クラスターのワークロード ID 認証を有効にするユーザー割り当てマネージド ID。

接続が作成されたら、[サービス コネクタ] ペインでその詳細を表示できます。

Python のサンプルアプリケーションを複製する

  1. サンプル リポジトリをクローンします。

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Azure OpenAI のリポジトリのサンプル フォルダーに移動します。

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. ファイルの プレースホルダーを、デプロイしたモデル名に置き換えます。

コンテナー イメージをビルドしてAzure Container Registryにプッシュする

  1. Azure CLI az acr build コマンドを使用して、イメージをビルドしてコンテナー レジストリにプッシュします。

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. コマンドを使用して、コンテナー レジストリ内のイメージを表示します。

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

Azure に AKS をデプロイして、OpenAI 接続をテストする

  1. プレースホルダーを フォルダー内の ファイルで置き換えます。

    • は、前にビルドしたイメージの名前に置き換えます。 たとえば、「 」のように入力します。
    • をサービス アカウント名に置き換えます。 Azure ポータルの Service Connector ペインにあります。
    • をシークレット名に置き換えます。 Azure ポータルの Service Connector ペインにあります。
  2. コマンドを使用してポッドをクラスターにデプロイします。これにより、AKS クラスターの既定の名前空間に という名前のポッドが作成されます。 インストールされていない場合は、 コマンドを使用してローカルにインストールします。

    kubectl apply -f pod.yaml
    
  3. でポッドを表示して、デプロイが成功したことを確認します。

    kubectl get pod/sc-demo-openai-identity
    
  4. でログを表示して接続が確立されていることを確認します。

    kubectl logs pod/sc-demo-openai-identity
    

リソースをクリーンアップする

このチュートリアルで作成したリソースが不要になったら、リソース グループを削除してクリーンアップしてください。

az group delete \
    --resource-group MyResourceGroup