"カスタムの場所" 機能によって、Azure オファリングのインスタンスをデプロイするターゲットの場所として、Azure Arc 対応 Kubernetes クラスターを構成できます。 カスタムの場所の上にデプロイできる Azure オファリングの例としては、Azure Arc で有効になっている SQL Managed Instance などのデータベースや、Container Apps、Logic Apps、Event Grid、Logic Apps、API Management などのアプリケーション インスタンスなどがあります。
カスタムの場所には、Azure Arc 対応 Kubernetes クラスター内の名前空間への一対一のマッピングがあります。 Azure ロールベースのアクセス制御 (Azure RBAC) と組み合わせたカスタムの場所の Azure リソースを使用すると、アプリケーション開発者またはデータベース管理者は詳細なアクセス許可を付与され、マルチテナント環境で Arc 対応 Kubernetes クラスター上にデータベースやアプリケーション インスタンスなどのリソースをデプロイできるようになります。
この記事では、Arc 対応 Kubernetes クラスターでカスタムの場所を有効にする方法と、カスタムの場所を作成する方法について説明します。
前提条件
次の Azure CLI の拡張機能の最新バージョンをインストールします。
connectedk8sk8s-extensioncustomlocationaz extension add --name connectedk8s az extension add --name k8s-extension az extension add --name customlocationconnectedk8s、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 接続クラスターがあることを確認し、最新バージョンにエージェントをアップグレードします。 この記事で説明するコマンドを実行するコンピューターに、このクラスターを指す
kubeconfigファイルがあることを確認します。
クラスターでカスタムの場所を有効にする
重要
カスタムの場所機能は、 クラスター接続 機能に依存します。 カスタムの場所を機能させるには、クラスターで両方の機能が有効になっている必要があります。
カスタムの場所を有効にするには、カスタムの場所オブジェクト ID (OID) が必要です。 ユーザー アカウントに必要なアクセス許可がある場合は、機能の有効化中に OID が自動的に取得されます。 有効なユーザー アカウントがない場合は、手動で渡された OID が使用されますが、OID を検証できません。 OID が無効な場合は、カスタムの場所が正しく有効にならない可能性があります。
カスタムの場所を作成する前にカスタムの場所機能を有効にする必要があります。これは、Kubernetes クラスターでカスタムの場所名前空間を作成するために必要なアクセス許可が有効化によって提供されるためです。
Microsoft Entra ユーザーとしてカスタムの場所を有効にする
Microsoft Entra ユーザーとして Azure CLI にサインインし、次のコマンドを実行します。
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
サービス プリンシパルを使用してカスタムの場所を有効にする
次の手順に従って、カスタムの場所 OID を手動で取得します。
重要
手順 2 のコマンドを次のようにコピーして実行します。
--id パラメーターに渡された値を別の値に置き換えないでください。
Microsoft Entra ユーザーとして Azure CLI にサインインします。
次のコマンドを実行して、カスタムの場所
oid(オブジェクト ID) をフェッチします。ここで、--idはカスタムの場所サービス アプリ自体を参照するもので、定義済みであり、bc313c14-388c-4e7d-a58e-70017303ee3bに設定されています。az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsvサービス プリンシパルを使用して Azure CLI にサインインします。 次のコマンドを実行して、
oidパラメーターの前の手順の--custom-locations-oid(オブジェクト ID) 値を使用して、クラスターでカスタムの場所機能を有効にします。az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <cl-oid> --features cluster-connect custom-locations
カスタムの場所を作成する
クラスターにインストールする Azure サービス インスタンスの Azure サービス クラスター拡張機能をデプロイします。
-
注意
Azure Arc 対応データ サービス クラスター拡張機能では、認証を使用しない送信プロキシと、基本認証を使用する送信プロキシがサポートされています。 現時点では、信頼できる証明書が必要な送信プロキシはサポートされていません。
-
Azure Arc 対応 Kubernetes クラスターの Azure Resource Manager 識別子を取得します。これは、後の手順で
connectedClusterIdとして参照されます。az connectedk8s show -n <clusterName> -g <resourceGroupName> --query id -o tsvAzure Arc 対応 Kubernetes クラスターにデプロイしたクラスター拡張機能の Azure Resource Manager 識別子を取得します。これは、後の手順で
extensionIdとして参照されます。az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName> --query id -o tsvAzure Arc 対応 Kubernetes クラスターと拡張機能を参照して、カスタムの場所を作成します。
az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId>[Required parameters]\(必須のパラメーター\):
パラメーター名 説明 --name, --nカスタムの場所の名前。 --resource-group, --gカスタムの場所のリソース グループ。 --namespace作成中のカスタムの場所に関連付けられたクラスター内の名前空間。 --host-resource-idAzure Arc 対応 Kubernetes クラスター (接続されたクラスター) の Azure Resource Manager 識別子。 --cluster-extension-ids接続されたクラスターにインストールされているクラスター拡張機能インスタンスの Azure Resource Manager 識別子。 複数の拡張機能の場合は、クラスター拡張機能 ID のスペース区切りの一覧を指定します 省略可能なパラメーター:
パラメーター名 説明 --___location, --lAzure 内のカスタムの場所の Azure Resource Manager リソースの場所。 指定しない場合は、接続されているクラスターの場所が使用されます。 --tags形式 key[=value]のタグのスペース区切りの一覧。 既存のタグをクリアするには '' を使用します。--kubeconfigクラスターの管理者 kubeconfig。
次のコマンドを実行し、
ProvisioningStateがSucceededであることを確認することで、カスタムの場所が正常に有効化されたことを確認します。
az customlocation show -n <customLocationName> -g <resourceGroupName>
カスタムの場所の使用状況を確認する
カスタムの場所が他の Azure リソースによってアクティブに使用されているかどうかを確認するには、Azure CLI を使用して、その場所に対して有効になっているリソースの種類を一覧表示できます。
az customlocation list-enabled-resource-types -n <customLocationName> -g <resourceGroupName>
このコマンドは、指定したカスタムの場所を使用するように構成されている Azure リソースの種類の一覧を返します。 リストが空でない場合は、カスタムの場所がそれらのリソースの種類で現在使用されていることを示します。
出力例:
[
{
"resourceType": "Microsoft.App/containerApps"
},
{
"resourceType": "Microsoft.Data/sqlManagedInstances"
}
]
カスタムの場所の詳細を表示する
カスタムの場所の詳細を表示するには、次のコマンドを使用します。
az customlocation show -n <customLocationName> -g <resourceGroupName>
カスタムの場所を一覧表示する
リソース グループ内のすべてのカスタムの場所を一覧表示するには、次のコマンドを使用します。
az customlocation list -g <resourceGroupName>
カスタムの場所を更新する
タグの既存の値と関連付けられたクラスター拡張機能を維持したまま、update の新しい値を追加するか、新しい --tags をカスタムの場所に関連付けるには、--cluster-extension-ids コマンドを使用します。
az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
カスタムの場所にパッチを適用する
patch または --cluster-extension-ids の既存の値を置き換えるには、--tags コマンドを使用します。 以前の値は保持されません。
az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
カスタムの場所を削除する
カスタムの場所を削除するには、次のコマンドを使用します。
az customlocation delete -n <customLocationName> -g <resourceGroupName>
トラブルシューティング
Azure CLI v2.70.0 でログイン資格情報の取得エラーが発生する
TypeError: get_login_credentials() got an unexpected keyword argument 'resource'を含むエラーが発生する可能性があります。 Azure CLI v2.70.0 では、このエラーをトリガーする破壊的変更がリリースされました。 Azure CLI v2.70.0 以降との互換性のために、 az customlocation v0.1.4 で修正プログラムを入手できます。
下位バージョンの az customlocationを使用するには、Azure CLI バージョン 2.69.0 以前も使用する必要があります。 Azure CLI インストーラーを使用した場合は、現在のバージョンをアンインストールし、 Azure CLI installation pageから Azure CLI v2.69.0 をインストールできます。 pip インストーラーを使用した場合は、次のコマンドを実行してダウングレードできます: pip install azure-cli==2.69.0。 ただし、通常は最新バージョンの az customlocation と Azure CLI を使用することをお勧めします。
不明なプロキシ エラー
カスタムの場所の作成がエラー Unknown proxy error occurred で失敗した場合は、azure-arc 名前空間内でポッド間の内部通信を許可するようにネットワーク ポリシーを変更します。 また、構成したポリシーのプロキシなしの除外リストの一部として azure-arc 名前空間を追加してください。
サービス プリンシパルの警告
サービス プリンシパルを使用して Azure CLI にサインインしているときにカスタムの場所を有効にしようとすると、次の警告が表示されることがあります。
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
この警告は、サービス プリンシパルに、Azure Arc サービスで使用されるカスタムの場所の oid (オブジェクト ID) を取得するために必要なアクセス許可が不足しているために発生します。 提供されている手順に従って、 サービス プリンシパルを使用してカスタムの場所機能を有効にします。
リソース プロバイダーに必要なアクセス許可がありません
Kubernetes クラスターでカスタムの場所機能が有効になる前にカスタムの場所を作成しようとすると、次のエラー メッセージが表示されることがあります。
Deployment failed. Correlation ID: ... "Microsoft.ExtendedLocation" resource provider does not have the required permissions to create a namespace on the cluster. Refer to https://aka.ms/ArcK8sCustomLocationsDocsEnableFeature to provide the required permissions to the resource provider.
まず、 クラスターでカスタムの場所機能を有効にします。 この機能を有効にすると、手順に従ってカスタムの場所を作成できます。
次のステップ
- クラスター接続機能を使用して、クラスターに安全に 接続します 。
- 拡張機能のインストール、カスタムの場所の作成、 Azure Container Apps 接続環境の作成に関するエンド ツー エンドの手順については、Azure Arc 上の Azure Container Apps に進んでください。
- 現在使用できる Azure Arc 対応 Kubernetes 拡張機能の詳細について確認します。