Azure Kubernetes Service クラスターを Azure Arc に接続する

適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server

Azure Kubernetes Service (AKS) クラスターが Azure Arc にアタッチされると、Azure Resource Manager表現が取得されます。 クラスターは、標準の Azure サブスクリプションに接続され、リソース グループ内に存在し、他の Azure リソースと同様にタグを受け取ることができます。 また、Kubernetes 表現を使用すると、次の機能を Kubernetes クラスターに拡張できます。

  • 管理サービス: 構成 (GitOps)、コンテナー用 Azure Monitor、Azure Policy (Gatekeeper)。
  • データ サービス: SQL Managed Instance、PostgreSQL Hyperscale。
  • アプリケーション サービス: App Service、Functions、Event Grid、Logic Apps、API Management。

Kubernetes クラスターを Azure に接続するには、クラスター管理者がエージェントをデプロイする必要があります。 これらのエージェントは 、azure-arc という名前の Kubernetes 名前空間で実行され、標準的な Kubernetes デプロイです。 エージェントは、Azure への接続、Azure Arc ログとメトリックの収集、クラスターでの前述のシナリオの有効化を担当します。

AKS では、転送中のデータをセキュリティで保護するための業界標準の SSL がサポートされています。 また、保存中は Azure Cosmos DB データベースに暗号化された状態で格納されるので、データの機密性が確保されます。

次の手順では、AKS クラスターを Arc で有効な AKS の Azure Arc に接続する方法について説明します。Windows Admin Centerを使用して Kubernetes クラスターを Azure Arc に既に接続している場合は、これらの手順をスキップできます。

開始する前に

次の要件が備わっていることを確認します。

  • 少なくとも 1 つの Linux ワーカー ノードが稼働している AKS クラスター
  • AksHci PowerShell モジュールをインストールします。
  • Azure サブスクリプションの次のアクセス レベル:
    • 組み込みの所有者ロールを持つユーザー アカウント。 アクセス レベルをチェックするには、サブスクリプションに移動し、Azure portalの左側にある [アクセス制御 (IAM)] を選択し、[アクセスの表示] をクリックします。
    • 組み込みの 所有者 ロールを持つサービス プリンシパル。
  • PowerShell 管理ウィンドウで、この記事のコマンドを実行します。
  • AKS のネットワーク要件を満たしていることを確認します。

手順 1 - Azure にサインインする

Azure にサインインするには、 Connect-AzAccount PowerShell コマンドを実行します。

Connect-AzAccount $tenantId

別のサブスクリプションに切り替える場合は、Set-AzContext PowerShell コマンドを実行します。

Set-AzContext -Subscription $subscriptionId

手順 2: AKS 用に 2 つのプロバイダーを登録する

サブスクリプションに AKS 用の 2 つのプロバイダーを既に登録している場合は、この手順をスキップできます。 登録は非同期プロセスであり、サブスクリプションごとに 1 回行う必要があります。 登録には約 10 分かかる場合があります。

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

以下のコマンドを使用して、登録されているかどうかを確認できます。

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

手順 3: Aks-Hci PowerShell モジュールを使用して Azure Arc に接続する

Enable-AksHciArcConnection PowerShell コマンドを使用して、AKS クラスターを Kubernetes に接続します。 この手順では、Kubernetes 用の Azure Arc エージェントを名前空間に azure-arc デプロイします。

Enable-AksHciArcConnection -name $clusterName 

サービス プリンシパルを使用して AKS クラスターを Azure Arc に接続する

"所有者" であるサブスクリプションにアクセスできない場合は、 サービス プリンシパルを使用して AKS クラスターを Azure Arc に接続できます。

1 つ目のコマンドではサービス プリンシパルの資格情報の入力が求められ、それらが $Credential 変数に格納されます。 メッセージが表示されたら、ユーザー名のアプリケーション ID を入力し、サービス プリンシパル シークレットをパスワードとして使用します。 サブスクリプション管理者からこれらの値を取得していることを確認します。2 番目のコマンドは、 変数に格納されているサービス プリンシパルの資格情報を使用して、クラスターを Azure Arc に $Credential 接続します。

$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location

上記のコマンドで使用されているサービス プリンシパルに "所有者" ロールが割り当てられ、コマンドで使用されるサブスクリプション ID に対するスコープがあることを確認します。 サービス プリンシパルの詳細については、「Azure PowerShellを使用してサービス プリンシパルをCreateする」を参照してください。

AKS クラスターを Azure Arc に接続し、カスタムの場所を有効にする

クラスターで Azure Arc と共にカスタムの場所を有効にする場合は、次のコマンドを実行してカスタム場所アプリケーションのオブジェクト ID を取得し、サービス プリンシパルを使用して Azure Arc に接続します。

$objectID = (Get-AzADServicePrincipal -ApplicationId "bc313c14-388c-4e7d-a58e-70017303ee3b").Id
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location -customLocationsOid $objectID

接続されているクラスターを確認する

Azure portal で Kubernetes クラスター リソースを表示できます。 ブラウザーでポータルを開いたら、 enable-akshciarcconnection PowerShell コマンドで使用されるリソース名とリソース グループ名の入力に基づくリソース グループと AKS リソースに移動します。

注意

クラスターを接続すると、クラスター メタデータ (クラスターのバージョン、エージェントのバージョン、ノードの数) が Azure portal の AKS リソースの概要ページに表示されるまで、最大で約 5 分から 10 分かかる場合があります。

Kubernetes 用 Azure Arc エージェント

AKS は、いくつかの演算子を 名前空間に azure-arc デプロイします。 これらのデプロイとポッドは、次の例に示すように を使用 kubectlして表示できます。

kubectl -n azure-arc get deployments,pods

AKS は、名前空間にデプロイされたクラスターで実行されるいくつかのエージェント (オペレーター) で構成されます azure-arc 。 これらのエージェントの詳細については、 こちらの概要を参照してください

Azure Arc から AKS クラスターを切断する

クラスターを AKS から切断する場合は、 Disable-AksHciArcConnection PowerShell コマンドを実行します。 コマンドを実行する前に、必ず Azure にサインインしてください。

Disable-AksHciArcConnection -Name $clusterName

次のステップ