events
クイックスタート: Azure Kubernetes Service (AKS) または Arc 対応 Kubernetes 用の Dapr クラスター拡張機能を使用してアプリケーションをデプロイする
このクイックスタートでは、AKS または Arc 対応 Kubernetes クラスターで Dapr クラスター拡張機能を使用します。 hello world
の例をデプロイします。これは、メッセージを生成する Python アプリケーションと、メッセージを使用して保持する Node.js アプリケーションで構成されます。
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
- Azure CLI または Azure PowerShell がインストールされている。
- 次のような AKS クラスター:
- ワークロード ID が有効
- マネージド ID が同じサブスクリプションに作成されている
- Kubernetes サービス アカウント
- フェデレーション ID 資格情報
- AKS クラスターにインストールされた Dapr クラスター拡張機能
- kubectl がローカルにインストールされていること。
git clone
コマンドを使用して、Dapr quickstarts リポジトリをクローンします。Bashgit clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
dapr-aks-extension-quickstart
ディレクトリに変更します。
Azure portal を開いて、Azure Cache for Redis の作成フローを開始します。
- 「オープンソースの Redis Cache を作成する」のクイックスタートの手順に従って、推奨される情報を入力します。
- [作成] を選択して、Redis インスタンスのデプロイを開始します。
- Redis リソースがデプロイされたら、その概要ページに移動します。
- 次の値を書き留めておきます。
- キャッシュの概要ページの [Essentials] セクションにあるホスト名。 ホスト名の形式は次のようになります:
xxxxxx.redis.cache.windows.net
。 - キャッシュの [詳細設定] ブレードにある SSL ポート。 既定値は
6380
です。
- キャッシュの概要ページの [Essentials] セクションにあるホスト名。 ホスト名の形式は次のようになります:
- [認証] ブレードに移動し、リソースで Microsoft Entra 認証が有効になっていることを確認します。
[認証] ブレードで、前提条件として作成したマネージド ID の名前を、[Enable Microsoft Entra Authentication]\(Microsoft Entra 認証を有効にする\) チェックボックスの下のフィールドに入力します。
マネージド ID が Redis ユーザー割り当てデータ所有者アクセス ポリシーのアクセス許可として追加されていることを確認します。
このシナリオでは、Redis Cache は公衆ネットワーク アクセスを使用します。 このクイック スタートが完了したらリソースをクリーンアップしてください。
- [プライベート エンドポイント] ブレードに移動します。
- 上部のメニューから [パブリック ネットワーク アクセスを有効にする] をクリックします。
redis.yaml
では、コンポーネントは、AKS クラスターで有効になっているワークロード ID を使用して Entra ID 認証を使用するように構成されています。 アクセス キーは必要ありません。
- name: useEntraID
value: "true"
- name: enableTLS
value: true
好みのコード エディターで、サンプルの
deploy
ディレクトリに移動し、redis.yaml
を開きます。redisHost
の場合は、プレースホルダーの<REDIS_HOST>:<REDIS_PORT>
値を、Azure portal から以前に保存した Redis Cache のホスト名と SSL ポートに置き換えます。yml- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
kubectl apply
コマンドを使用してredis.yaml
ファイルを適用します。Bashkubectl apply -f ./deploy/redis.yaml
kubectl get components.redis
コマンドを使用して、状態ストアが正常に構成されたことを確認します。Bashkubectl get components.redis -o yaml
想定される出力
出力component.dapr.io/statestore created
node.yaml
では、ポッド スペックにはワークロード ID を使用するために追加されたラベルがあります。
labels:
app: node
azure.workload.identity/use: "true"
deploy
ディレクトリに移動してnode.yaml
を開きます。serviceAccountName
のプレースホルダーの<SERVICE_ACCOUNT_NAME>
値を、作成したサービス アカウント名に置き換えます。- この値は、フェデレーション ID 資格情報の作成に使用したのと同じサービス アカウントにします。
kubectl apply
コマンドを使用して、クラスターに Node.js アプリのデプロイを適用します。Bashkubectl apply -f ./deploy/node.yaml
Kubernetes デプロイは非同期であるため、次の手順に進む前に、次のコマンドを使用してデプロイが完了していることを確認します。
Bashkubectl rollout status deploy/nodeapp
kubectl get svc
コマンドを使用して、サービスにアクセスします。Bashkubectl get svc nodeapp
出力内の
EXTERNAL-IP
をメモします。
curl
を使用して、EXTERNAL-IP
でサービスを呼び出します。Bashcurl $EXTERNAL_IP/ports
出力例
出力{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
アプリケーションに命令を送信します。
Bashcurl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
命令を確認します。
Bashcurl $EXTERNAL_IP/order
想定される出力
出力{ "orderId": "42" }
python.yaml
では、ポッド スペックにはワークロード ID を使用するために追加されたラベルがあります。
labels:
app: node
azure.workload.identity/use: "true"
deploy
ディレクトリに移動してpython.yaml
を開きます。serviceAccountName
のプレースホルダーの<SERVICE_ACCOUNT_NAME>
値を、作成したサービス アカウント名に置き換えます。- この値は、フェデレーション ID 資格情報の作成に使用したのと同じサービス アカウントにします。
kubectl apply
コマンドを使用して、Python アプリを Kubernetes クラスターにデプロイします。Bashkubectl apply -f ./deploy/python.yaml
Kubernetes デプロイは非同期であるため、次の手順に進む前に、次のコマンドを使用してデプロイが完了していることを確認します。
Bashkubectl rollout status deploy/pythonapp
Node.js と Python の両方のアプリケーションがデプロイされたので、メッセージを見ることができます。
kubectl logs
コマンドを使用して、Node.js アプリのログを取得します。Bashkubectl logs --selector=app=node -c node --tail=-1
想定される出力
出力Got a new order! Order ID: 1 Successfully persisted state Got a new order! Order ID: 2 Successfully persisted state Got a new order! Order ID: 3 Successfully persisted state
curl
を使用して、Node.js アプリの命令エンドポイントを呼び出して、最新の命令を取得します。Bashcurl $EXTERNAL_IP/order
応答に最新の JSON 出力が表示されます。
このクイックスタートのリソースを今後使用する予定がない場合は、リソース グループを削除することで、関連付けられているすべてのリソースを削除できます。
az group delete コマンドを使用して、リソース グループ、クラスター、名前空間、すべての関連リソースを削除します。
az group delete --name MyResourceGroup
Azure Kubernetes Service に関するフィードバック
Azure Kubernetes Service はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
その他のリソース
トレーニング
モジュール
ガイド付きプロジェクト - アプリケーションを Azure Kubernetes Service にデプロイする - Training
この対話型スキル検証体験にようこそ。 このモジュールを完了すると、Azure Kubernetes Service の評価を使用したコンテナーのデプロイと管理ができるようになります。
認定資格
Microsoft Certified: Azure Developer Associate - Certifications
Azure Functions の作成、Web アプリの実装と管理、Azure ストレージを利用したソリューションの開発などを行うために、Microsoft Azure でエンド ツー エンドのソリューションを構築します。