次の方法で共有


Azure IoT 操作を実行できる AKS Edge Essentials クラスターを作成して構成する

Azure Kubernetes Service (AKS) Edge Essentials は、 Azure IoT Operations でサポートされているクラスター プラットフォームの 1 つです。 AKS Edge Essentials を使用して、Microsoft が管理する Kubernetes クラスターを作成し、それにワークロードとして Azure IoT Operations をデプロイできます。 この記事では、Azure IoT Operations に必要な構成で AKS Edge Essentials Kubernetes クラスターを作成し、そのクラスターを Azure Arc に接続するスクリプトを実行する手順について説明します。

Note

Azure IoT Operations では、単一のマシン クラスターにデプロイされた場合に AKS Edge Essentials がサポートされます。 複数のマシンにクラスターをデプロイすることは、試験的な機能です。

スクリプトを実行するための前提条件

スクリプトを実行するには、次の前提条件が必要です。

  • Owner ロール、または ContributorUser Access Administrator ロールの組み合わせを持つ Azure サブスクリプション。 アクセス レベルを確認するには、サブスクリプションに移動し、Azure portal の左側にある Access コントロール (IAM) を選択してから、 アクセスの表示を選択します。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。

  • 開発マシンにインストールされている Azure CLI バージョン 2.64.0 以降。 az --version を使用してバージョンを確認し、必要に応じて az upgrade を使用して更新します。 詳細については、Azure CLIのインストール方法に関するページを参照してください。

  • Azure CLI 用の connectedk8s 拡張機能の最新バージョンをインストールします。

    az extension add --upgrade --name connectedk8s 
    
  • ハードウェア要件: マシンに、Azure IoT Operations 用に 10 GB 以上の RAM、4 つの使用可能な vCPU、52 GB の空きディスク領域が確保されていることを確認します。

Arc 対応クラスターを作成する

AksEdgeQuickStartForAio.ps1 スクリプトを使用すると、クラスターの作成と接続のプロセスを自動化できるため、AKS Edge Essentials に Azure IoT Operations をデプロイする場合にお勧めのパスです。 このスクリプトは、次を実行します。

  • このリポジトリから最新の AKS Edge Essentials MSI をダウンロードします
  • AKS Edge Essentials をインストールし、単一のマシン Kubernetes クラスターを Windows マシンにデプロイして作成します。
  • Azure サブスクリプションに接続し、リソース グループがまだ存在しない場合は作成し、クラスターを Arc に接続して Arc 対応 Kubernetes クラスターを作成します。
  • Arc 対応 Kubernetes クラスターでカスタムの場所機能を有効にします。
  • Arc 対応 Kubernetes クラスターでワークロード ID フェデレーション機能を有効にします。
  • ローカル パス プロビジョニングをデプロイします。
  • MQTT ブローカーのホスト Windows マシンにファイアウォール規則を構成します。
  • Kubernetes コントロール プレーン ノードとして機能する Linux VM 上:
    • Kubernetes サービスの既定の IP 範囲 10.96.0.0/28 のポート プロキシを構成します。
    • IP テーブルの規則を構成します。
      • sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT

クイック スタート スクリプトを実行するには、次の手順に従います。

  1. 管理者特権で PowerShell ウィンドウを開き、ディレクトリを作業フォルダーに変更します。

  2. Azure Arc サービスがテナントで使用する Microsoft Entra ID アプリケーションの objectId を取得します。 GUID 値を変更せずに、記述されたとおりに次のコマンドを実行します。

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. 次のコマンドを実行し、プレースホルダーの値を実際の情報に置き換えます。

    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    プレースホルダー
    SUBSCRIPTION_ID Azure サブスクリプションの ID。 サブスクリプション ID がわからない場合は、「Azure サブスクリプションを検索する」を参照してください。
    TENANT_ID Microsoft Entra テナントの ID。 テナント ID がわからない場合は、「Microsoft Entra テナントを見つける」を参照してください。
    RESOURCE_GROUP_NAME 既存のリソース グループの名前、または作成する新しいリソース グループの名前。 リソース グループごとにサポートされている Azure IoT Operations インスタンスは 1 つのみです。
    LOCATION 近くの Azure リージョン。 Azure IoT Operations でサポートされている Azure リージョンの一覧については、「 サポートされているリージョン」を参照してください。
    CLUSTER_NAME 作成する新しいクラスターの名前。
    ARC_APP_OBJECT_ID 手順 2 で取得したオブジェクト ID 値。

    このプロセスの一環としてマシンが再起動した場合など、デプロイ中に問題が発生した場合は、一連のコマンドをもう一度実行します。

  4. デプロイが成功したことを確認するには、次のコマンドを実行します。

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    Get-AksEdgeDeploymentInfo コマンドの出力で、クラスターの Arc 状態が Connected であることがわかります。

クラスターを確認する

Kubernetes クラスターが Azure Arc 対応になったことを確認するには、次のコマンドを実行します。

kubectl get deployments,pods -n azure-arc

出力は次の例のようになります。

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

次のステップ