AKS Edge Essentials の追加の構成とスクリプト
この記事では、プロキシ経由で接続されているクラスターに適用できる Azure Arc に接続する別の方法について説明します。
プロキシを使用して AKS Edge Essentials クラスターを Arc に接続する
前提条件
- Owner ロール、または Contributor と User Access Administrator ロールの組み合わせを持つ Azure サブスクリプション。 アクセス レベルを確認するには、サブスクリプションに移動し、Azure portal の左側にある Access コントロール (IAM) を選択してから、 アクセスの表示を選択します。 リソース グループの管理の詳細については、 Azure Resource Manager のドキュメント を参照してください。
- Microsoft.HybridCompute、Microsoft.GuestConfiguration、Microsoft.HybridConnectivity、Microsoft.Kubernetes、Microsoft.KubernetesConfiguration など、Azure サブスクリプションで必要なすべてのリソース プロバイダーを有効にします。
- AKS Edge Essentials Azure リソースのリソース グループを作成して確認します。
Note
リソース グループ内のリソースを削除できるようにするには、 Contributor ロールが必要です。 Arc から切断するコマンドは、このロールの割り当てなしで失敗します。
手順 1: Azure 接続用にクラスターを構成する
Azure/AKS-Edge GitHub リポジトリをダウンロードします (まだダウンロードしていない場合)。 Code タブに移動し、ダウンロード Zip ボタンをクリックして、リポジトリを.zip ファイルとしてダウンロードします。 .zip ファイルをローカル フォルダーに抽出します。
次の表で説明するように、 aide-userconfig.json ファイルの
Azure
セクションで Azure サブスクリプションの詳細を指定します。 Azure Arc 対応 kubernetes を使用して Azure に正常に接続するには、Azure 上のリソースへのロールベースのアクセスを提供するサービス プリンシパルが必要です。 サービス プリンシパル ID とパスワードが既にある場合は、 aide-userconfig.json ファイル内のすべてのフィールドを更新できます。 サービス プリンシパルがない場合は、名前を指定できます。次の手順のスクリプトによって作成され、Auth
セクションが自動的に設定されます。Attribute 値の型 説明 Azure.ClusterName
string クラスターの名前を指定します。 既定では、 hostname_cluster
は使用される名前です。Azure.Location
string リソース グループの場所。 デプロイに最も近い場所を選びます。 Azure.SubscriptionName
string 自分のサブスクリプション名。 Azure.SubscriptionId
GUID サブスクリプション ID。 Azure portal で、使用しているサブスクリプションを選択し、サブスクリプション ID 文字列をコピーして JSON に貼り付けます。 Azure.TenantId
GUID テナント ID。 Azure portal で "Azure Active Directory" を検索します。このディレクトリから Default Directory ページに移動します。 ここから、テナント ID 文字列をコピーして JSON ファイルに貼り付けることができます。 Azure.ResourceGroupName
string AKS Edge Essentials 用の Azure リソースをホストする Azure リソース グループの名前。 既存のリソース グループを使用するか、新しい名前を追加すると、自動的に作成されます。 Azure.ServicePrincipalName
string Azure サービス プリンシパル名。 Azure.Auth.ServicePrincipalId
GUID 資格情報として使用する Azure サービス プリンシパルの AppID。 AKS Edge Essentials では、このサービス プリンシパルを使用してクラスターを Arc に接続します。既存のサービス プリンシパルを使用するか、新しい名前を追加すると、次の手順で自動的に作成されます。 Azure.Auth.Password
string 資格情報として使用する Azure サービス プリンシパルのパスワード (クリア テキスト)。 AksEdgeConfigFile
string AKS Edge Essentials 構成のファイル名 ( aksedge-config.json
)。AksEdgeAzureSetup.ps1
スクリプトは、この JSON ファイルのArc
セクションを必要な情報で更新します。Note
この手順は、Azure サブスクリプションごとに 1 回だけ実行する必要があり、Kubernetes クラスターごとに繰り返す必要はありません。
AksEdgePrompt.cmd ファイルを実行またはダブルクリックして、必要なモジュールが読み込まれた管理者特権の PowerShell ウィンドウを開きます。 PC 情報とインストールされているソフトウェア バージョンの概要が表示されます。
aksEdgeAzureSetup.ps1 スクリプトを tools\scripts\AksEdgeAzureSetup フォルダーで実行します。 このスクリプトでは、Azure サブスクリプションを設定するための資格情報を使用してログインするように求められます。
# prompts for interactive login for service principal creation with Contributor role at resource group level ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup.ps1 .\aide-userconfig.json -spContributorRole # (or) alternative option # Prompts for interactive login for service principal creation with minimal privileges ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup.ps1 .\aide-userconfig.json
AksEdgeAzureSetup-Test.ps1 スクリプトを使用して、資格情報が有効であることを確認します。 このスクリプトは、新しいサービス プリンシパルの資格情報を使用して Azure にサインインし、Azure リソースの状態を確認します。
# Test the credentials ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup-Test.ps1 .\aide-userconfig.json
手順 2: クラスターを Azure に接続する
Read-AideUserConfig
を使用して json 構成を AksEdgeShellに読み込み、Get-AideUserConfig
を使用して値が更新されていることを確認します。 または、 AksEdgePrompt.cmd をもう一度開き、更新された JSON 構成を使用することもできます。Read-AideUserConfig Get-AideUserConfig
重要
aide-userconfig.jsonを変更するたびに、
Read-AideUserConfig
を実行して再読み込みするか、AksEdgePrompt.cmdを閉じて再度開きます。Initialize-AideArc
を実行します。 これにより、Azure CLI (まだインストールされていない場合) がインストールされ、指定された資格情報で Azure にサインインし、Azure の構成 (リソース プロバイダーとリソース グループの状態) が検証されます。Initialize-AideArc
Connect-AideArc
を実行して、ホスト マシンをインストールして Arc 対応サーバーに接続し、既存のクラスター Arc 対応 Kubernetes に接続します。# Connect Arc-enabled server and Arc-enabled Kubernetes Connect-AideArc
または、Arc 対応サーバーの
Connect-AideArcServer
と、Arc 対応 Kubernetes のConnect-AideArcKubernetes
を使用して個別に接続することもできます。# Connect Arc-enabled server Connect-AideArcServer # Connect Arc-enabled Kubernetes Connect-AideArcKubernetes
Note
この手順には最大 10 分かかる場合があり、PowerShell が "
your cluster name
用の Azure 接続済み Kubernetes の確立" で停止する可能性があります。 PowerShell コマンドはTrue
を出力し、プロセスが完了するとプロンプトに戻ります。 ベアラー トークンは、tools フォルダーのservicetoken.txtに保存されます。
手順 3: Azure でクラスターを表示する
左側のパネルで、Kubernetes リソース (プレビュー)の下にある Namespaces ブレードを選択します。
Kubernetes リソースを表示するには、ベアラー トークンが必要です。
PowerShell ウィンドウで、
Get-AksEdgeManagedServiceToken
を実行し、完全な文字列をコピーして、Azure portal に貼り付けます。これで、クラスター上のリソースを表示できます。 次の図は、 Workloads ブレードを示し、
kubectl get pods --all-namespaces
と同じものを示しています。
プロキシを使用するときに AKS Edge Essentials クラスターを Arc から切断する
Disconnect-AideArc
を実行して、Arc 対応サーバーと Arc 対応 Kubernetes から切断します。
# Disconnect Arc-enabled server and Arc-enabled Kubernetes
Disconnect-AideArc
または、Arc 対応サーバーの Connect-AideArcServer
と Arc 対応 Kubernetes の Connect-AideArcKubernetes
を使用して、それらを個別に切断することもできます。
# Disconnect Arc-enabled server
Disconnect-AideArcServer
# Disconnect Arc-enabled Kubernetes
Disconnect-AideArcKubernetes
ホスト マシンを Arc に接続する
Arc 対応サーバーの
Connect-AideArcServer
を使用して、ホスト コンピューターを接続できます。# Connect Arc-enabled server Connect-AideArcServer
ホスト マシンを Arc から切断するには、Arc 対応サーバーの
Disconnect-AideArcServer
を使用します。# Disconnect Arc-enabled server Disconnect-AideArcServer
Arc for Server エージェントをアンインストール 手順については、こちらを参照してください。 Azure portal を使用して完全にクリーンアップするには、この例用に作成したサービス プリンシパルとリソース グループを削除します。