単一ノードまたは 2 ノード クラスターを使用して Linux をエッジ ボリューム用に準備する
この記事では、単一ノードまたは 2 ノード クラスターを使用して Linux を準備する方法について説明します。前提条件を満たしていることを前提としています。
Azure Arc によって有効にされる AKS を使用して Linux を準備する
このセクションでは、単一ノードまたは 2 ノード クラスターを実行する場合に、Azure Arc 対応 AKS を使って Linux を準備する方法について説明します。
次のコマンドを使用して、Open Service Mesh (OSM) をインストールします。
az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \ --config "osm.osm.featureFlags.enableWASMStats=false" \ --config "osm.osm.enablePermissiveTrafficPolicy=false" \ --config "osm.osm.configResyncInterval=10s" \ --config "osm.osm.osmController.resource.requests.cpu=100m" \ --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \ --config "osm.osm.injector.resource.requests.cpu=100m"
AKS Edge Essentials を使用して Linux を準備する
このセクションでは、単一ノードまたは 2 ノード クラスターを実行する場合に、AKS Edge Essentials を使用して Linux を準備する方法について説明します。
Edge Essentials で Azure IoT Operations と Azure Arc 対応 Azure コンテナー ストレージをサポートするには、より多くのメモリをサポートするように Kubernetes ホストを変更する必要があります。 Kubernetes で使用する追加のリソースが必要な場合は、現時点で vCPU とディスクの割り当てを増やすこともできます。
まず、こちらのハウツー ガイドに従ってください。 クイックスタートでは既定の構成が使用されるため、避ける必要があります。
手順 1: 1 つのコンピューター構成パラメーターの後、aksedge-config.json という名前の作業ディレクトリにファイルができます。 メモ帳やその他のテキスト エディターで、このファイルを開きます。
"SchemaVersion": "1.11", "Version": "1.0", "DeploymentType": "SingleMachineCluster", "Init": { "ServiceIPRangeSize": 0 }, "Machines": [ { "LinuxNode": { "CpuCount": 4, "MemoryInMB": 4096, "DataSizeInGB": 10, } } ]
MemoryInMB
を少なくとも 16384 に増やし、DataSizeInGB
を 40G に増やします。ServiceIPRangeSize
は 15 に設定します。 多数の POD を実行する場合は、CpuCount
も増やすことができます。 次に例を示します。"Init": { "ServiceIPRangeSize": 15 }, "Machines": [ { "LinuxNode": { "CpuCount": 4, "MemoryInMB": 16384, "DataSizeInGB": 40, } } ]
1 つのマシン クラスターの作成以降の、残りの手順に進みます。 次に、AKS Edge Essentials クラスターを Arc に接続します。
まだインストールされていない場合は、Local Path Provisioner ストレージを確認してインストールします。 次のコマンドレットを実行して、ローカル パス ストレージ クラスがノードで既に使用できるかどうかを確認します。
kubectl get StorageClass
ローカル パス ストレージ クラスが使用できない場合は、次のコマンドを実行します。
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
Note
Local-Path-Provisioner と Busybox イメージは Microsoft によって管理されず、Rancher Labs リポジトリからプルされます。 Local-Path-Provisioner と BusyBox は、Linux コンテナー イメージとしてのみ使用できます。
すべてが正しく構成されている場合は、次の出力が表示されます。
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 21h
複数のディスクがあり、パスをリダイレクトする場合は、次を使用します。
kubectl edit configmap -n kube-system local-path-config
fs.inotify.max_user_instances
を 1024 に設定したかどうかを確認するには、次のコマンドを実行します。Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "sysctl fs.inotify.max_user_instances
このコマンドを実行した後、出力が 1024 未満の場合は、次のコマンドを実行してファイルの最大数を増やします。
Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
次のコマンドを使用して、Open Service Mesh (OSM) をインストールします。
az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \ --config "osm.osm.featureFlags.enableWASMStats=false" \ --config "osm.osm.enablePermissiveTrafficPolicy=false" \ --config "osm.osm.configResyncInterval=10s" \ --config "osm.osm.osmController.resource.requests.cpu=100m" \ --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \ --config "osm.osm.injector.resource.requests.cpu=100m"
Ubuntu を使用して Linux を準備する
このセクションでは、単一ノードまたは 2 ノード クラスターを実行する場合に、Ubuntu を使用して Linux を準備する方法について説明します。
次のコマンドを使用して、Open Service Mesh (OSM) をインストールします。
az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \ --config "osm.osm.featureFlags.enableWASMStats=false" \ --config "osm.osm.enablePermissiveTrafficPolicy=false" \ --config "osm.osm.configResyncInterval=10s" \ --config "osm.osm.osmController.resource.requests.cpu=100m" \ --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \ --config "osm.osm.injector.resource.requests.cpu=100m"
fs.inotify.max_user_instances
を 1024 に設定したかどうかを確認するには、次のコマンドを実行します。sysctl fs.inotify.max_user_instances
このコマンドを実行した後、出力が 1024 未満の場合は、次のコマンドを実行してファイルの最大数を増やし、sysctl 設定を再度読み込みます。
echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
他のプラットフォームを使用して Linux を準備する
使用可能なプラットフォーム オプションは、Microsoft が検証した運用環境に似た環境です。 これらのプラットフォームは、必ずしも Azure Arc 対応の Azure コンテナー ストレージが実行できる唯一の環境であるとは限りません。 Azure Arc 対応の Azure コンテナー ストレージは、Azure Arc 対応 Kubernetes システムの要件を満たす任意の Arc 対応 Kubernetes クラスター上で実行できます。 一覧にない環境で実行している場合は、インストールが成功する可能性を高めるためのいくつかの推奨事項を次に示します。
次のコマンドを実行して、ユーザー ウォッチとインスタンスの制限を増やします。
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
次のコマンドを実行して、ローカル パス プロビジョナーをインストールします。
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml