Azure Arc 対応 Kubernetes クラスターを準備する

重要

Azure Arc によって有効にされる Azure IoT Operations Preview は、現在プレビュー段階です。 運用環境ではこのプレビュー ソフトウェアを使わないでください。

一般提供リリースが利用可能になったタイミングで新しい Azure IoT Operations のインストールをデプロイする必要があります。 プレビュー インストールをアップグレードすることはできません。

ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

Azure Arc 対応 Kubernetes クラスターは、Azure IoT Operations Preview をデプロイするための前提条件です。 この記事では、独自のワークロードを実行するために Azure IoT Operations プレビューを Azure 対応 Kubernetes クラスターにデプロイする前に、Azure Arc 対応 Kubernetes クラスターを準備する方法について説明します。 この記事には、Ubuntu、Windows、クラウドの環境に関するガイダンスが含まれています。

ヒント

Azure IoT Operations をデプロイしてサンプル ワークロードを実行する場合は、「クイックスタート: K3s を使用して Github Codespaces で Azure IoT Operations プレビューを実行する」を参照してください。

Azure Iot Operations は、Azure Arc 対応 Kubernetes サービスのセットとして出荷されており、CNCF 準拠の Arc 検証済みパートナー製品での使用が想定されています。 現在、Microsoft は、次の固定セットのインフラストラクチャと環境に対して Azure IoT Operations を検証しています。

環境 Version
Windows 11 IoT Enterprise の AKS-EE
単一ノードの AMD Ryzen-7 (8 コア、3.3 GHz)、16 GB RAM
AksEdge-K3s-1.28.3-1.7.639.0
Ubuntu 22.04.2 の K3s
単一ノードの AMD Ryzen-7 (8 コア、3.3 GHz)、16 GB RAM
K3s バージョン 1.28.5

重要

前述の環境は、Microsoft が検証した運用環境と同様の環境です。 Azure IoT Operations を実行できる環境はこれらだけではありません。 Azure IoT Operations は、Azure Arc 対応 Kubernetes システム要件を満たす任意の Arc 対応 Kubernetes クラスターで実行できます。

前提条件

Azure Arc 対応 Kubernetes クラスターを準備するには、以下が必要です。

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。

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

  • Azure CLI 用の Azure IoT Operations 拡張機能。 次のコマンドを使用して、拡張機能を追加するか、それを最新バージョンに更新します。

    az extension add --upgrade --name azure-iot-ops
    
  • システム要件を満たすハードウェア:

クラスターの作成

このセクションでは、クラウドの GitHub Codespaces だけでなく、Linux および Windows 上の検証済み環境でクラスターを準備し、Arc 対応にする手順について説明します。

Azure Kubernetes Service Edge Essentials は、コンテナー化されたアプリケーションの大規模な実行を自動化する Azure Kubernetes Service (AKS) のオンプレミス Kubernetes 実装です。 AKS Edge Essentials には、Microsoft がサポートする Kubernetes プラットフォームが含まれています。これには、フットプリントが小さく、インストール エクスペリエンスがシンプルな軽量の Kubernetes ディストリビューションが含まれており、PC クラスまたは "ライト" エッジ ハードウェアに Kubernetes を簡単にデプロイできます。

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

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

  2. 次のコマンドを実行し、プレースホルダーの値を実際の情報に置き換えます。

    プレースホルダー
    SUBSCRIPTION_ID Azure サブスクリプションの ID。 サブスクリプション ID がわからない場合は、「Azure サブスクリプションを検索する」を参照してください。
    TENANT_ID Microsoft Entra テナントの ID。 テナント ID がわからない場合は、「Microsoft Entra テナントを見つける」を参照してください。
    RESOURCE_GROUP_NAME 既存のリソース グループの名前、または作成する新しいリソース グループの名前。
    LOCATION 近くの Azure リージョン。 現在サポートされているすべての Azure リージョンの一覧については、「サポートされているリージョン」を参照してください。
    CLUSTER_NAME 作成する新しいクラスターの名前。
    $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>"
    

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

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

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

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

クラスターを Arc 対応にする

クラスターを Azure Arc に接続して、クラスターをリモートで管理できるようにします。

前のセクションで実行した AksEdgeQuickStartForAio.ps1 スクリプトでは、クラスターに接続する手順を処理しました。 Arc 対応にするために追加の手順を実行する必要はありません。

クラスターを確認する

クラスターが Azure IoT Operations デプロイの準備ができていることを確認するために、Azure CLI 用の Azure IoT Operations 拡張機能で verify-host ヘルパー コマンドを使用できます。 クラスター ホストで実行すると、このヘルパー コマンドで Azure Resource Manager および Microsoft Container Registry エンドポイントへの接続が確認されます。

az iot ops verify-host

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

サイトを作成する

OT ユーザーがアクセスできるクラスターを管理するには、クラスターをサイトにグループ化します。 詳細については、「Azure Arc サイト マネージャー (プレビュー) とは」を参照してください。

次のステップ

Azure Arc 対応 Kubernetes クラスターが作成されたので、Azure IoT Operations をデプロイできます。