Azure Kubernetes Service クラスターを Azure Arc に接続する
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
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)] を選択し、 [自分のアクセスの表示]をクリックします。
- 組み込みの Owner ロールを持つサービス プリンシパル。
- PowerShell 管理ウィンドウで、この記事のコマンドを実行します。
- AKS の network 要件を満たしていることを確認します。
手順 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 番目のコマンドは、 $Credential
変数に格納されているサービス プリンシパルの資格情報を使用して、クラスターを Azure Arc に接続します。
$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location
このコマンドで使用されるサービス プリンシパルに所有者ロールが割り当てられていることを確認し、コマンドで使用されるサブスクリプション ID のスコープを持っていることを確認します。 サービス プリンシパルの詳細については、「 Azure PowerShell を使用してサービス プリンシパルを作成するを参照してください。
AKS クラスターを Azure Arc に接続し、カスタムの場所を有効にする
Azure Arc と共にクラスターでカスタムの場所を有効にする場合は、次のコマンドを実行してカスタムの場所アプリケーションのオブジェクト ID を取得し、サービス プリンシパルを使用して Azure Arc に接続します。
$objectID = (Get-AzADServicePrincipal -ApplicationId "00001111-aaaa-2222-bbbb-3333cccc4444").Id
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location -customLocationsOid $objectID
接続されているクラスターを確認する
Azure portal で Kubernetes クラスター リソースを表示できます。 ブラウザーでポータルを開いたら、リソース グループと、 enable-akshciarcconnection PowerShell コマンドで使用されるリソース名とリソース グループ名の入力に基づく AKS リソースに移動します。
Note
クラスターを接続した後、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