Azure Arc対応 Kubernetes クラスターは、Azure IoT Operationsをデプロイするための前提条件です。 この記事では、そのクラスタの準備方法を説明し、Ubuntu、Windows、Azure Local、vSphere Kubernetes Service(VKS)に関するガイダンスも紹介します。
Azure IoT Operationsをすばやくデプロイし、テスト環境でサンプル ワークロードを実行する場合は、「Quickstart: GitHub Codespaces で K3s を使用してAzure IoT Operationsを実行する」を参照してください。
前提条件
マルチノード展開には、UbuntuのK3s、Azure LocalのAKS、またはvSphere Kubernetes Service(VKS)を使いましょう。 Windows版AKS Edge Essentialsはシングルノード展開のみをサポートします。
Azure Arc対応 Kubernetes クラスターを準備するには、次のものが必要です。
Owner ロール、または Contributor ロールと User Access Administrator ロールを組み合わせたAzure サブスクリプション。 アクセス レベルを確認するには、サブスクリプションに移動し、Azure ポータルの左側にある Access control (IAM) を選択し、 [マイ アクセスの表示を選択します。 Azureサブスクリプションをお持ちでない場合は、開始する前に無料を作成してください。
開発用コンピューターにインストールされているAzure CLI。 connectedk8s拡張の最低必要バージョンについては、Available Azure CLI extensionsを確認してください。
az --versionを使用してバージョンを確認し、必要に応じてaz upgradeを使用して更新します。 詳細については、「 Azure CLI のインストール」を参照してください。Azure CLI 用の connectedk8s 拡張機能。 次のコマンドを使用して、拡張機能を追加するか、それを最新バージョンに更新します。
az extension add --upgrade --name connectedk8sAzure リソース グループ。 リソース グループごとにサポートされているAzure IoT Operations インスタンスは 1 つだけです。 新しいリソース グループを作成するには、az group create コマンドを使用します。 現在サポートされているAzureリージョンの一覧については、「Supported リージョン」を参照してください。
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
システム要件を満たすハードウェア:
フォールト トレランスが有効になっているマルチノード クラスターにAzure IoT Operationsをデプロイする場合は、Prepare Linux for Edge Volumes のハードウェアとストレージの要件を確認します。
この記事のAzure CLI例は環境変数を使っており、各値を一度設定してからコマンドをコピー&ペーストできます as-is。 クイックスタートのAzure IoT Operations Codespaces環境を使っている場合、これらの変数はすでに設定済みなので、このステップを省略できます。 そうでなければ、コマンドを実行する前にシェル内で以下の環境変数を設定してください。
以下のスクリプトは、最も一般的に使われる環境変数を設定します。
| 環境変数 | Description |
|---|---|
SUBSCRIPTION_ID |
Azure IoT Operationsインスタンスを含むサブスクリプションのIDです。 |
RESOURCE_GROUP |
あなたのAzure IoT Operationsインスタンスを含むリソースグループの名前です。 |
AIO_INSTANCE_NAME |
あなたのAzure IoT Operationsインスタンスの名前です。 インスタンスを挙げるには、 az iot ops list -o tableを実行してください。 |
CLUSTER_NAME |
あなたのインスタンスをホストしているAzure Arc対応のKubernetesクラスターの名前です。 |
LOCATION |
例えばeastusなど、新しい資源を活用するためのAzure地域。 |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
この記事で使っている変数を設定するだけで十分です。 この記事では、選択したリソース名に追加の環境変数を使う場合があります。 記事では、導入された場所の位置をどう設定するか説明しています。
クラスターを作成して Arc 対応にする
このセクションでは、Ubuntu、Windows、Azure Local、vSphere Kubernetes Service(VKS)の検証済み環境でクラスタを作成する手順を提供します。
Ubuntu 上で K3s Kubernetes クラスターを準備するには:
単一ノードまたはマルチノード K3s クラスターを作成します。 例については、K3s クイックスタート ガイドまたは K3s 関連プロジェクトを参照してください。
K3sが
kubectlインストールされているか確認してください。 そうでない場合は、手順に従って Linux に kubectl をインストールします。kubectl version --client手順に従って Helm をインストールします。
.kube/configでK3s設定YAMLファイルを作成します:mkdir ~/.kube sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged mv ~/.kube/merged ~/.kube/config chmod 0600 ~/.kube/config export KUBECONFIG=~/.kube/config #switch to k3s context kubectl config use-context default sudo chmod 644 /etc/rancher/k3s/k3s.yaml次のコマンドを実行して、ユーザー ウォッチ/インスタンスの制限を増やします。
echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf sudo sysctl -pパフォーマンスを向上させるために、ファイル記述子の制限を増やします。
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
K3sクラスターのArc有効化
クラスターをAzure Arcに接続して、リモートで管理できるようにしましょう。
クラスタに
kubectlアクセスできるマシンから、Azureサブスクリプションに必要な役割を持つMicrosoft EntraユーザーアカウントでサインインしてAzure CLIしてください:az loginもし「 あなたのデバイスはリソースにアクセスするために管理が必要」というエラーが出たら、もう一度
az loginを実行し、ブラウザを使ってインタラクティブにサインインするようにしてください。サインイン後、Azure CLIにはすべてのサブスクリプションが表示され、アスタリスク
*でデフォルトのサブスクリプションが表示されます。 既定のサブスクリプションで続行するには、Enterを選択します。 それ以外の場合は、使用するAzureサブスクリプションの番号を入力します。サブスクリプションに必要なリソース プロバイダーを登録します。
注
このステップはサブスクリプションごとに一度だけ実行すればいいです。 リソース提供者を登録するには、
/register/action操作を行う許可が必要であり、サブスクリプションの貢献者および所有者の役割にはその権限が含まれます。 詳細については、「Azure リソース プロバイダーと種類を参照してください。az provider register -n "Microsoft.ExtendedLocation" az provider register -n "Microsoft.Kubernetes" az provider register -n "Microsoft.KubernetesConfiguration" az provider register -n "Microsoft.IoTOperations" az provider register -n "Microsoft.DeviceRegistry" az provider register -n "Microsoft.SecretSyncController"az connectedk8s connect コマンドを使用して、Kubernetes クラスターを Arc 対応にし、Azure リソース グループの一部として管理します。
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade依存関係として使用Azure IoT Operations Azure Arcおよびシステム Arc 拡張機能に対する計画外の更新を防ぐために、このコマンドは自動アップグレードを無効にします。 代わりに、必要に応じてエージェントを手動でアップグレードします。
重要
環境でプロキシ サーバーまたは Azure Arc ゲートウェイを使用している場合は、プロキシ情報を使用して
az connectedk8s connectコマンドを変更します。- 送信プロキシ サーバーを使用して接続するか、Azure Arc ゲートウェイを使用して Kubernetes クラスターを Azure Arc にオンボードするの指示に従ってください。
-
169.254.169.254コマンドの--proxy-skip-rangeパラメーターにaz connectedk8s connectを追加します。 Azure Device Registry は、このローカル エンドポイントを使用して、承認用のアクセス トークンを取得します。
Azure IoT Operationsは、信頼された証明書を必要とするプロキシ サーバーをサポートしていません。
クラスターの発行者の URL を取得します。
az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsvこのコマンドの出力を保存して、次の手順で使用します。
K3sの設定ファイルを作成します。
sudo nano /etc/rancher/k3s/config.yamlconfig.yamlファイルに次の内容を追加し、<SERVICE_ACCOUNT_ISSUER>プレースホルダーをクラスターの発行者の URL で置き換えます。kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24hファイルを保存し、nano エディターを終了します。
Arc クラスターで Azure Arc サービスのカスタムロケーションを有効にする準備として、まずカスタムロケーションオブジェクトのIDを取得し、環境変数OBJECT_IDとして保存します。 コマンドを正常に実行するには、Microsoft Entraのユーザーアカウント(サービスプリンシパルではなく)でAzure CLIにサインインする必要があります。 GUID 値を変更せずに、記述されているとおりに次のコマンドを実行します。
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)注
"'custom-locations' アプリの oid をフェッチできません。 機能を有効にせずに続行します。 操作を完了するための特権が不十分です。サービス プリンシパルには、カスタムの場所のオブジェクト ID を取得するために必要なアクセス許可がない可能性があります。 前提条件を満たすMicrosoft EntraユーザーアカウントでAzure CLIにサインインしてください。 詳細については、カスタムロケーションの作成と管理に関するページを参照してください。
az connectedk8s enable-features コマンドを使用して、Arc クラスターでカスタムの場所フィーチャを有効にします。 このコマンドは、前のステップで保存したOBJECT_ID環境変数を使ってcustom-locations-oidパラメータの値を設定します。 Kubernetes クラスターをデプロイしたマシン上で次のコマンドを実行します。
az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locationsK3s を再起動します。
systemctl restart k3s
Azure Arc によって有効化された Azure Container Storage を構成する
データ フロー ローカル ストレージ エンドポイントやメディア コネクタなどの機能では、必要に応じて、Azure Arc (ACSA) によって有効にされた
KubernetesクラスタにACSAをインストールする方法を学びたい方:
- Azure Arcによって有効化されたAzureコンテナストレージとは何かをレビューしてください。
- 『 Prepare Linux for Edge Volumes』をレビューしてください。
- Azure Arc Edge Volumesで有効化されたAzureコンテナストレージのインストール手順に従ってください。
次のステップ
Azure Arc対応の Kubernetes クラスターが作成されたので、Azure IoT Operationsデプロイできます。
- 独自の発行者の作成: Azure IoT Operationsをデプロイする前に、クラスターで独自の証明書発行者を構成する場合。
- テスト クラスターにデプロイする: 運用環境にデプロイする前に、迅速な評価とテストを行います。
- 運用クラスターにデプロイする: セキュリティで保護された設定を使用した運用準備完了のワークロードの場合。