AKS Edge Essentials の追加の構成とスクリプト

この記事では、プロキシ経由で接続されているクラスターに適用できる Azure Arc に接続する別の方法について説明します。

プロキシを使用して AKS Edge Essentials クラスターを Arc に接続する

前提条件

  • Owner ロール、または ContributorUser Access Administrator ロールの組み合わせを持つ Azure サブスクリプション。 アクセス レベルを確認するには、サブスクリプションに移動し、Azure portal の左側にある Access コントロール (IAM) を選択してから、 アクセスの表示を選択します。 リソース グループの管理の詳細については、 Azure Resource Manager のドキュメント を参照してください。
  • Microsoft.HybridComputeMicrosoft.GuestConfigurationMicrosoft.HybridConnectivityMicrosoft.KubernetesMicrosoft.KubernetesConfiguration など、Azure サブスクリプションで必要なすべてのリソース プロバイダーを有効にします
  • AKS Edge Essentials Azure リソースのリソース グループを作成して確認します。

Note

リソース グループ内のリソースを削除できるようにするには、 Contributor ロールが必要です。 Arc から切断するコマンドは、このロールの割り当てなしで失敗します。

手順 1: Azure 接続用にクラスターを構成する

  1. Azure/AKS-Edge GitHub リポジトリをダウンロードします (まだダウンロードしていない場合)。 Code タブに移動し、ダウンロード Zip ボタンをクリックして、リポジトリを.zip ファイルとしてダウンロードします。 .zip ファイルをローカル フォルダーに抽出します。

  2. 次の表で説明するように、 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 クラスターごとに繰り返す必要はありません。

  3. AksEdgePrompt.cmd ファイルを実行またはダブルクリックして、必要なモジュールが読み込まれた管理者特権の PowerShell ウィンドウを開きます。 PC 情報とインストールされているソフトウェア バージョンの概要が表示されます。

  4. 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
    
  5. AksEdgeAzureSetup-Test.ps1 スクリプトを使用して、資格情報が有効であることを確認します。 このスクリプトは、新しいサービス プリンシパルの資格情報を使用して Azure にサインインし、Azure リソースの状態を確認します。

    # Test the credentials
    ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup-Test.ps1 .\aide-userconfig.json
    

手順 2: クラスターを Azure に接続する

  1. Read-AideUserConfigを使用して json 構成を AksEdgeShellに読み込み、Get-AideUserConfigを使用して値が更新されていることを確認します。 または、 AksEdgePrompt.cmd をもう一度開き、更新された JSON 構成を使用することもできます。

    Read-AideUserConfig
    Get-AideUserConfig
    

    重要

    aide-userconfig.jsonを変更するたびに、Read-AideUserConfigを実行して再読み込みするか、AksEdgePrompt.cmdを閉じて再度開きます。

  2. Initialize-AideArc を実行します。 これにより、Azure CLI (まだインストールされていない場合) がインストールされ、指定された資格情報で Azure にサインインし、Azure の構成 (リソース プロバイダーとリソース グループの状態) が検証されます。

    Initialize-AideArc
    
  3. 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 でクラスターを表示する

  1. 左側のパネルで、Kubernetes リソース (プレビュー)の下にある Namespaces ブレードを選択します。

    kubernetes リソースのプレビューを示すスクリーンショット。

  2. Kubernetes リソースを表示するには、ベアラー トークンが必要です。

    ベアラー トークンが必要であることを示すスクリーンショット。

  3. PowerShell ウィンドウで、 Get-AksEdgeManagedServiceTokenを実行し、完全な文字列をコピーして、Azure portal に貼り付けます。

    ポータルの貼り付けトークンを示すスクリーンショット。

  4. これで、クラスター上のリソースを表示できます。 次の図は、 Workloads ブレードを示し、 kubectl get pods --all-namespacesと同じものを示しています。

    Arc に表示されているすべてのポッドの結果を示すスクリーンショット。

プロキシを使用するときに 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 に接続する

  1. Arc 対応サーバーの Connect-AideArcServer を使用して、ホスト コンピューターを接続できます。

    # Connect Arc-enabled server
    Connect-AideArcServer
    
  2. ホスト マシンを Arc から切断するには、Arc 対応サーバーの Disconnect-AideArcServer を使用します。

    # Disconnect Arc-enabled server
    Disconnect-AideArcServer
    

    Arc for Server エージェントをアンインストール 手順については、こちらを参照してください。 Azure portal を使用して完全にクリーンアップするには、この例用に作成したサービス プリンシパルとリソース グループを削除します。

次のステップ