チュートリアル: ワークロード ID を使用して Service Connector で Azure Kubernetes Service (AKS) の Azure ストレージ アカウントに接続する
Service Connector でワークロード ID を使用して Azure ストレージ アカウントと通信するポッドをAKS クラスターに作成する方法について説明します。 このチュートリアルでは、次のタスクを実行します。
- AKS クラスターと Azure ストレージ アカウントを作成します。
- Service Connector を使用して AKS クラスターと Azure ストレージ アカウントの間の接続を作成します。
- AKS クラスターから、Azure ストレージ アカウントと通信するサンプル アプリケーションを複製します。
- AKS クラスター内のポッドにアプリケーションを配置し、接続をテストします。
- リソースをクリーンアップする。
重要
AKS 内のサービス接続は現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure CLI をインストールし、az login コマンドを使用して Azure CLI にサインインします。
- コンテナー イメージと Kubernetes リソースを管理するために、Docker と kubectl をインストールします。
- コンテナーと AKS の基本的な理解。 AKS 用のアプリケーションの準備から開始します。
- ワークロード ID の基本的な理解。
Azure リソースを作成する
このチュートリアル用のリソース グループを作成します。
az group create \ --name MyResourceGroup \ --location eastus
次のコマンドを使用するか、チュートリアルを参照してAKS クラスターを作成します。 サービス接続、ポッド定義を作成し、このクラスターにサンプル アプリケーションを配置します。
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
次のコマンドでクラスターに接続します。
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
次のコマンドを使用するか、チュートリアルを参照して Azure ストレージ アカウントを作成します。 これは、AKS クラスターに接続され、サンプル アプリケーションがやりとりするターゲット サービスです。
az storage account create \ --resource-group MyResourceGroup \ --name MyStorageAccount \ --location eastus \ --sku Standard_LRS
次のコマンドを使用するか、チュートリアルを参照して、Azure コンテナー レジストリを作成します。 レジストリは、AKS ポッド定義によって使用されるサンプル アプリケーションのコンテナー イメージをホストします。
az acr create \ --resource-group MyResourceGroup \ --name MyRegistry \ --sku Standard
また、AKS クラスターがレジストリ内のイメージを使用できるように、匿名プルを有効にします。
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
次のコマンドを使用するか、チュートリアルを参照して、ユーザー割り当てマネージド ID を作成します。 ユーザー割り当てマネージド ID は、AKS ワークロードのワークロード ID を有効にするために、サービス接続の作成で使用されます。
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Service Connector を使ってサービス接続を作成する (プレビュー)
Azure portal または Azure CLI を使用して、AKS クラスターと Azure ストレージ アカウントの間のサービス接続を作成します。
Azure portal で [Kubernetes サービス] を開き、左側のメニューから [Service Connector] を選択します。
[作成] を選択し、次に示すように設定を入力します。 その他の設定は、既定値のままにしておきます。
[基本] タブ:
設定 選択肢 説明 Kubernetes の名前空間 default クラスター内で接続が必要な名前空間。 サービスの種類 ストレージ - Blob ターゲット サービスの種類。 接続名 storage_conn Service Connector によって提供される接続名を使用するか、独自の接続名を選択します。 サブスクリプション <MySubscription>
Azure Blob Storage ターゲット サービスのサブスクリプション。 ストレージ アカウント <MyStorageAccount>
接続先のターゲット ストレージ アカウント。 クライアントの種類 Python ターゲット サービスに接続するために使用するコード言語またはフレームワーク。 [認証] タブ
認証設定 選択肢 説明 認証の種類 ワークロード ID Service Connector 認証の種類。 ユーザー割り当てマネージド ID <MyIdentity>
ワークロード ID を有効にするには、ユーザー割り当てマネージド ID が必要です。 接続が作成されると、Service Connector ページに新しい接続に関する情報が表示されます。
サンプル アプリケーションを複製する
サンプル リポジトリをクローンします。
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
リポジトリのAzure ストレージ用のサンプル フォルダーに移動します。
cd serviceconnector-aks-samples/azure-storage-workload-identity
コンテナー イメージをビルドしてプッシュする
Azure CLI の
az acr build
コマンドを使用して、イメージをビルドしてコンテナー レジストリにプッシュします。az acr build --registry <MyRegistry> --image sc-demo-storage-identity:latest ./
az acr repository list
コマンドを使用して、コンテナー レジストリ内のイメージを表示します。az acr repository list --name <MyRegistry> --output table
アプリケーションを実行し接続をテストする
プレースホルダーを
azure-storage-identity
フォルダー内のpod.yaml
ファイルで置き換えます。<YourContainerImage>
を、最後の手順でビルドしたイメージ名 (たとえば、<MyRegistry>.azurecr.io/sc-demo-storage-identity:latest
) に置き換えます。<ServiceAccountCreatedByServiceConnector>
を、接続の作成後に Service Connector によって作成されたサービス アカウントに置き換えます。 サービス アカウント名は、Service Connector の Azure portal で確認できます。<SecretCreatedByServiceConnector>
を、接続の作成後に Service Connector によって作成されたシークレットに置き換えます。 シークレット名は、Service Connector の Azure portal で確認できます。
kubectl apply
コマンドを使用してポッドをクラスターに配置します。kubectl
がインストールされていない場合は、az aks install-cli コマンドを使用して、ローカルにインストールします。 コマンドでは、AKS クラスターの既定の名前空間にsc-demo-storage-identity
という名前のポッドが作成されます。kubectl apply -f pod.yaml
kubectl
でポッドを表示して、デプロイが成功したことを確認します。kubectl get pod/sc-demo-storage-identity.
kubectl
でログを表示して接続が確立されていることを確認します。kubectl logs pod/sc-demo-storage-identity
リソースをクリーンアップする
このチュートリアルで作成したリソースを再利用する必要がない場合は、リソース グループを削除して作成したリソースをすべて削除してください。
az group delete \
--resource-group MyResourceGroup
次のステップ
サービス コネクタの概念と、それを使って AKS をサービスに接続する方法について詳しくは、次の記事をご覧ください。