Azure Arc 対応 Kubernetes にカスタムの場所を作成および管理する
"カスタムの場所" 機能を使用すると、テナントまたはクラスター管理者は、Azure オファリングのインスタンスをデプロイするターゲットの場所として、Azure Arc 対応 Kubernetes クラスターを構成できます。 カスタムの場所の上にデプロイできる Azure オファリングの例としては、Azure Arc 対応 SQL Managed Instance、Azure Arc 対応 PostgreSQL サーバーなどのデータベースや、App Services、Functions、Event Grid、Logic Apps、API Management などのアプリケーション インスタンスがあります。
カスタムの場所には、Azure Arc 対応 Kubernetes クラスター内の名前空間への一対一のマッピングがあります。 Azure ロールベースのアクセス制御 (Azure RBAC) と組み合わせたカスタムの場所 Azure リソースを使用すると、アプリケーション開発者またはデータベース管理者は詳細なアクセス許可を受け、マルチテナントの方法で Arc 対応 Kubernetes クラスター上にデータベースやアプリケーション インスタンスなどのリソースをデプロイできるようになります。
この機能の概念的な概要については、「カスタムの場所 - Azure Arc 対応 Kubernetes」を参照してください。
この記事では、次の方法について説明します。
- Azure Arc 対応 Kubernetes クラスター上のカスタムの場所を有効にする。
- カスタムの場所を作成する。
前提条件
次の Azure CLI の拡張機能の最新バージョンをインストールします。
connectedk8s
k8s-extension
customlocation
az extension add --name connectedk8s az extension add --name k8s-extension az extension add --name customlocation
connectedk8s
、k8s-extension
、customlocation
の拡張機能をインストール済みの場合は、次のコマンドを使用して最新バージョンに更新します。az extension update --name connectedk8s az extension update --name k8s-extension az extension update --name customlocation
Microsoft.ExtendedLocation
のプロバイダー登録の完了を確認します。次のコマンドを入力します。
az provider register --namespace Microsoft.ExtendedLocation
登録プロセスを監視します。 登録には最大で 10 分かかる場合があります。
az provider show -n Microsoft.ExtendedLocation -o table
登録後、
RegistrationState
状態にRegistered
値が与えられます。
Azure Arc 対応 Kubernetes に接続されたクラスターが既に存在することを確認します。
- 最新バージョンにエージェントをアップグレードします。
クラスターでカスタムの場所を有効にする
Azure Active Directory (Azure AD) ユーザーとして Azure CLI にサインインしている場合、クラスターでこの機能を有効にするには、次のコマンドを実行します。
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
サービス プリンシパルを使用して Azure CLI にサインインしているときに上のコマンドを実行した場合、次の警告が表示されることがあります。
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
これは、Azure Arc サービスによって使用されるアプリケーションについての情報を取得するためのアクセス許可がサービス プリンシパルにないためです。 このエラーを回避するには、次の手順を実行します。
ユーザー アカウントを使用して Azure CLI にサインインします。 Azure Arc サービスで使用される Azure AD アプリケーションの
objectId
またはid
をフェッチします。 使用するコマンドは、Azure CLI のバージョンによって異なります。2.37.0 未満の Azure CLI バージョンを使用している場合は、次のコマンドを使用します。
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
Azure CLI バージョン 2.37.0 以降を使用している場合は、代わりに次のコマンドを使用します。
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
サービス プリンシパルを使用して Azure CLI にサインインします。 上記の手順の
<objectId>
またはid
の値を使用して、クラスターでカスタムの場所を有効にします。az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId/id> --features cluster-connect custom-locations
注意
カスタムの場所機能は、クラスター接続機能に依存します。 カスタムの場所を使用するには、両方の機能が有効になっている必要があります。
機能を有効にするクラスターを指している kubeconfig
ファイルが存在するマシン上で、az connectedk8s enable-features
を実行する必要があります。
カスタムの場所を作成する
クラスターにインストールする Azure サービス インスタンスの Azure サービス クラスター拡張機能をデプロイします。
-
Note
Azure Arc 対応 Data Services クラスター拡張機能では、認証を使用しない送信プロキシと、基本認証を使用する送信プロキシがサポートされています。 現在、信頼できる証明書が必要な送信プロキシはサポートされていません。
-
Azure Arc 対応 Kubernetes クラスターの Azure Resource Manager 識別子を取得します。これは、後の手順で
connectedClusterId
として参照されます。az connectedk8s show -n <clusterName> -g <resourceGroupName> --query id -o tsv
Azure Arc 対応 Kubernetes クラスターにデプロイされているクラスター拡張機能の Azure Resource Manager 識別子を取得します。これは、後の手順で
extensionId
として参照されます。az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName> --query id -o tsv
Azure Arc 対応 Kubernetes クラスターと拡張機能を参照して、カスタムの場所を作成します。
az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
必要なパラメーターは以下のとおりです。
パラメーター名 説明 --name, --n
カスタムの場所の名前 --resource-group, --g
カスタムの場所のリソース グループ --namespace
作成されるカスタムの場所にバインドされたクラスター内の名前空間 --host-resource-id
Azure Arc 対応 Kubernetes クラスター (接続されたクラスター) の Azure Resource Manager 識別子 --cluster-extension-ids
接続されたクラスターにインストールされているクラスター拡張機能インスタンスの Azure Resource Manager 識別子。 クラスター拡張機能の ID をスペースで区切って指定します 省略可能なパラメーター:
パラメーター名 説明 --location, --l
Azure 内のカスタムの場所の Azure Resource Manager リソースの場所。 既定では、接続されたクラスターの場所に設定されます --tags
タグのスペース区切りのリスト: key[=value] [key[=value] ...]。既存のタグをクリアするには '' を使用します --kubeconfig
クラスターの管理 kubeconfig
カスタムの場所の詳細を表示する
カスタムの場所の詳細を表示するには、次のコマンドを使用します。
az customlocation show -n <customLocationName> -g <resourceGroupName>
必要なパラメーターは以下のとおりです。
パラメーター名 | 説明 |
---|---|
--name, --n |
カスタムの場所の名前 |
--resource-group, --g |
カスタムの場所のリソース グループ |
カスタムの場所を一覧表示する
リソース グループ内のすべてのカスタムの場所を一覧表示するには、次のコマンドを使用します。
az customlocation list -g <resourceGroupName>
必要なパラメーターは以下のとおりです。
パラメーター名 | 説明 |
---|---|
--resource-group, --g |
カスタムの場所のリソース グループ |
カスタムの場所を更新する
新しいタグを追加するか、既存のタグと関連付けられたクラスター拡張機能を維持したまま、新しいクラスター拡張機能 ID をカスタムの場所に関連付けるには、update
コマンドを使用します。 --cluster-extension-ids
、--tags
、assign-identity
を更新できます。
az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
必要なパラメーターは以下のとおりです。
パラメーター名 | 説明 |
---|---|
--name, --n |
カスタムの場所の名前 |
--resource-group, --g |
カスタムの場所のリソース グループ |
--namespace |
作成されるカスタムの場所にバインドされたクラスター内の名前空間 |
--host-resource-id |
Azure Arc 対応 Kubernetes クラスター (接続されたクラスター) の Azure Resource Manager 識別子 |
省略可能なパラメーター:
パラメーター名 | 説明 |
---|---|
--cluster-extension-ids |
接続されたクラスターにインストールされているクラスター拡張機能インスタンスの Azure Resource Manager 識別子を指定して、新しいクラスター拡張機能をこのカスタムの場所に関連付けます。 クラスター拡張機能の ID をスペースで区切って指定します |
--tags |
既存のタグに加えて新しいタグを追加します。 タグのスペース区切りのリスト: key[=value] [key[=value] ...]。 |
カスタムの場所にパッチを適用する
既存のタグとクラスター拡張機能 ID を新しいタグとクラスター拡張機能 ID に置き換えるには、patch
コマンドを使用します。 --cluster-extension-ids
、assign-identity
、--tags
にパッチを適用できます。
az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
必要なパラメーターは以下のとおりです。
パラメーター名 | 説明 |
---|---|
--name, --n |
カスタムの場所の名前 |
--resource-group, --g |
カスタムの場所のリソース グループ |
省略可能なパラメーター:
パラメーター名 | 説明 |
---|---|
--cluster-extension-ids |
接続されたクラスターにインストールされているクラスター拡張機能インスタンスの Azure Resource Manager 識別子を指定して、新しいクラスター拡張機能をこのカスタムの場所に関連付けます。 クラスター拡張機能の ID をスペースで区切って指定します |
--tags |
既存のタグに加えて新しいタグを追加します。 タグのスペース区切りのリスト: key[=value] [key[=value] ...]。 |
カスタムの場所を削除する
カスタムの場所を削除するには、次のコマンドを使用します。
az customlocation delete -n <customLocationName> -g <resourceGroupName>
必要なパラメーターは以下のとおりです。
パラメーター名 | 説明 |
---|---|
--name, --n |
カスタムの場所の名前 |
--resource-group, --g |
カスタムの場所のリソース グループ |
トラブルシューティング
"不明なプロキシ エラーが発生しました" というエラーでカスタムの場所の作成が失敗する場合は、ポッド間の内部通信を禁止するように構成されたネットワーク ポリシーが原因である可能性があります。
この問題を解決するには、azure-arc
名前空間内でポッド間の内部通信を許可するようにネットワーク ポリシーを変更します。 また、構成したポリシーのプロキシなしの除外リストの一部として azure-arc
名前空間を追加してください。
次の手順
- クラスター接続を使用してクラスターに安全に接続します。
- 拡張機能のインストール、カスタムの場所の作成、App Service Kubernetes 環境の作成に関するエンドツーエンドの手順についての「Azure Arc 上の Azure App Service」に進みます。
- Kubernetes 上の Event Grid のための Event Grid トピックとイベント サブスクリプションを作成します。
- 現在使用できる Azure Arc 対応 Kubernetes 拡張機能の詳細について確認します。