AKS Edge Essentials クラスターを Arc に接続する

この記事では、Azure portal でクラスターの正常性を監視できるように、AKS Edge Essentials クラスターを Azure Arc に接続する方法について説明します。 クラスターがプロキシに接続されている場合は、GitHub リポジトリに用意されているスクリプトを使用して、ここで説明するようにクラスターを Arc 接続できます。

前提条件

以下の前提条件に加えて、Azure Arc 対応 Kubernetes のネットワーク要件をすべて満たしていることを確認してください。

  • 所有者ロール、または共同作成者ユーザー アクセス管理者ロールの組み合わせが割り当てられた Azure サブスクリプションが必要です。 自分のアクセス レベルを確認するには、Azure portal でサブスクリプションに移動し、Azure portal の左側にある [アクセス制御 (IAM)] を選択して、[自分のアクセスの表示] を選択します。 リソース グループ 管理の詳細については Azure のドキュメントを参照してください。
  • Microsoft.HybridComputeMicrosoft.GuestConfigurationMicrosoft.HybridConnectivityMicrosoft.KubernetesMicrosoft.ExtendedLocationMicrosoft.KubernetesConfiguration など、Azure サブスクリプションで必要なすべてのリソース プロバイダーを有効にします
  • AKS Edge Essentials Azure リソースのリソース グループを作成して確認します。

Note

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

手順 1: コンピューターを構成する

依存関係をインストールする

管理者特権の PowerShell ウィンドウで次のコマンドを実行して、PowerShell に依存関係をインストールします。

Install-Module Az.Resources -Repository PSGallery -Force -AllowClobber -ErrorAction Stop  
Install-Module Az.Accounts -Repository PSGallery -Force -AllowClobber -ErrorAction Stop 
Install-Module Az.ConnectedKubernetes -Repository PSGallery -Force -AllowClobber -ErrorAction Stop  

手順 2: Azure 環境を構成する

次の表で説明するように、aksedge-config.json ファイルの Arc セクションで Azure サブスクリプションの詳細を指定します。 Azure Arc 対応 kubernetes を使用して Azure に正常に接続するには、Azure 上のリソースにアクセスするために、組み込みの Microsoft.Kubernetes connected cluster role を持つサービス プリンシパルが必要です。 サービス プリンシパル ID とパスワードが既にある場合は、 aksedge-config.json ファイル内のすべてのフィールドを更新できます。 サービス プリンシパルを作成する必要がある場合は、ここで 手順を確認できます

重要

クライアント シークレットは、パスワードの形式です。 適切な管理は、環境のセキュリティにとって重要です。

  • クライアント シークレットを作成するときは、デプロイの登録タイミングとスコープに基づいて、非常に短い有効期限を設定します。
  • クライアント シークレットの値と構成ファイルを一般的なアクセスから保護してください。
  • クラスターの構成ファイルがクライアント シークレットが格納されている間にバックアップされる場合、バックアップにアクセスできるすべてのユーザーがクライアント シークレットを使用できます。
  • クラスターを登録したら、そのクラスターの構成ファイルからクライアント シークレットを削除します。
  • タスクのスコープ内のすべてのクラスターを登録したら、クライアント シークレットをローテーションするか、Microsoft Entra ID 環境からサービス プリンシパルを削除する必要があります。
Attribute 値の型 説明
ClusterName string クラスターの名前を指定します。 既定値は hostname_cluster です。
Location string リソース グループの場所。 デプロイに最も近い場所を選びます。
SubscriptionId GUID サブスクリプション ID。 Azure portal で、使用しているサブスクリプションを選択し、サブスクリプション ID 文字列をコピーして JSON に貼り付けます。
TenantId GUID テナント ID。 Azure portal で Microsoft Entra ID を検索します。この ID を使用すると、 Default Directory ページに移動します。 ここから、テナント ID 文字列をコピーして JSON に貼り付けることができます。
ResourceGroupName string AKS Edge Essentials 用の Azure リソースをホストする Azure リソース グループの名前。 既存のリソース グループを使用するか、新しい名前を追加すると、自動的に作成されます。
ClientId GUID 資格情報として使う Azure サービス プリンシパルのアプリケーション ID を指定します。 AKS Edge Essentials は、このサービス プリンシパルを使ってクラスターを Arc に接続します。Azure portal の Microsoft Entra リソース ページの [アプリの登録] ページを使って、テナント内のサービス プリンシパルの一覧を表示して管理できます。 サービス プリンシパルには、サブスクリプションレベルまたはリソース グループ レベルで Kubernetes Cluster - Azure Arc Onboarding ロールが必要であることに注意してください。 詳細については、「 Microsoft Entra id requirements for service principalsを参照してください。
ClientSecret string サービス プリンシパルのパスワードを指定します。

Note

この構成は、Azure サブスクリプションごとに 1 回だけ実行する必要があります。 Kubernetes クラスターごとに手順を繰り返す必要はありません。

手順 3: クラスターを Arc に接続する

Connect-AksEdgeArcを実行して、既存のクラスターをインストールし、Arc 対応 Kubernetes に接続します。

# Connect Arc-enabled kubernetes
Connect-AksEdgeArc -JsonConfigFilePath .\aksedge-config.json

Note

この手順には最大 10 分かかる場合があり、your cluster name用の Azure 接続済み Kubernetes が停止する可能性があります。 PowerShell は True 出力し、プロセスが完了するとプロンプトに戻ります。

Arc への接続中の PowerShell プロンプトを示すスクリーンショット。

手順 4: Azure で AKS Edge Essentials リソースを表示する

  1. プロセスが完了したら、リソース グループに移動すると、Azure portal でクラスターを表示できます。

    Azure portal のクラスターを示すスクリーンショット。

  2. 左側のパネルで、 Namespaces オプション Kubernetes リソース (プレビュー)を選択します。

    Kubernetes リソースのプレビュー。

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

    ベアラー トークンが必要なページを示すスクリーンショット。

  4. Get-AksEdgeManagedServiceTokenを実行してサービス トークンを取得することもできます。

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

  5. これで、クラスター上のリソースを表示できます。 Workloads オプションには、クラスターで実行されているポッドが表示されます。

    kubectl get pods --all-namespaces
    

    Arc 内のすべてのポッドを示すスクリーンショット。

Arc から切断する

Disconnect-AksEdgeArcを実行して、Arc 対応 Kubernetes から切断します。

# Disconnect Arc-enabled kubernetes
Disconnect-AksEdgeArc -JsonConfigFilePath .\aksedge-config.json

次のステップ