複数のマシンでのスケールアウト
AKS Edge Essentials がプライマリ コンピューターにインストールされたので、この記事では、クラスターを他のセカンダリ マシンにスケールアウトしてマルチマシンデプロイを作成する方法について説明します。
注意事項
追加のノードへのスケーリングは試験的な機能です。
前提条件
- スケール可能な Kubernetes クラスターを設定します。
- コンピューターのセットアップに関する記事の説明に従って、セカンダリ マシンをセットアップします。 クラスター内に異なる Kubernetes ディストリビューションを混在めることはできません。 プライマリ コンピューター上のクラスターが K8s を実行している場合は、セカンダリ マシンにも K8s MSI をインストールする必要があります。
手順 1: プライマリ コンピューターからクラスター構成を取得する
スケーラブルなデプロイを作成したプライマリ コンピューターで、管理者特権の PowerShell ウィンドウで次の手順を実行して、要件に基づいて適切な構成ファイルを作成します。
Linux 専用ワーカー ノードを追加してスケーリングするには、次のコマンドを使用して必要な構成ファイルを作成し、
NodeType
を "Linux" として指定し、このノードに一意で使用可能な IP アドレスを指定します。New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Linux -LinuxNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
Linux コントロール プレーン ノードを追加してスケーリングするには、
NodeType
を "Linux" として指定し、ControlPlane
フラグを true に設定し、Linux ノードの一意の IP アドレスを指定します。New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Linux -LinuxNodeIp x.x.x.x -ControlPlane -outFile .\ScaleConfig.json | Out-Null
Windows 専用ワーカー ノードを追加してスケーリングするには、
NodeType
を "Windows" として指定し、Windows ノードに一意の IP アドレスを指定します。New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Windows -WindowsNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
Linux および Windows ワーカー ノードを追加するには、
NodeType
を "LinuxAndWindows" として指定し、Linux ノードと Windows ノードの両方に一意の IP アドレスを指定します。New-AksEdgeScaleConfig -scaleType AddMachine -NodeType LinuxandWindows -LinuxNodeIp x.x.x.x -WindowsNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
Linux コントロール プレーン ノードと Windows ワーカー ノードを追加するには、
NodeType
を "LinuxAndWindows" として指定し、ControlPlane
フラグをtrue
として設定し、Linux ノードと Windows ノードの両方に一意の IP アドレスを指定します。New-AksEdgeScaleConfig -scaleType AddMachine -NodeType LinuxandWindows -LinuxNodeIp x.x.x.x -WindowsNodeIp x.x.x.x -ControlPlane -outFile .\ScaleConfig.json | Out-Null
これらのコマンドは、クラスターを JSON 形式で結合するために必要なデータをエクスポートし、JSON 文字列として返し、 outFile
パラメーターで指定されたファイルに格納します。
注意事項
New-AksEdgeScaleConfig
コマンドを実行するたびに、以前に作成したClusterJoinToken
が無効になるため、以前に作成したScaleConfig.json ファイルを使用することはできません。 また、 ClusterJoinToken
は 24 時間のみ有効です。
手順 2: 構成パラメーターを検証する
.\ScaleConfig.json構成ファイルには、プライマリ コンピューターからの構成が含まれています。 必要なセクションを確認して更新し、スケーリング対象のマシンに関連する詳細を指定します。
セカンダリ マシンを参照して
NetworkConnection.AdapterName
を確認します。 セカンダリ コンピューター上の Hyper-V に外部スイッチを作成した場合は、 ScaleConfig.json ファイルで vswitch の詳細を指定することを選択できます。 Hyper-V マネージャーで外部スイッチを作成してNew-AksEdgeDeployment
コマンドを実行しない場合、AKS Edge Essentials によってaksedgesw-ext
という名前の外部スイッチが自動的に作成され、展開に使用されます。Note
このリリースでは、スイッチに Wi-Fi アダプターを使用している場合、
New-AksEdgeDeployment
コマンドを使用した外部スイッチの自動作成に既知の問題があります。 この場合は、まず Hyper-V マネージャー - 仮想スイッチ マネージャーを使用して外部スイッチを作成し、スイッチを Wi-Fi アダプターにマップします。 次に、このセクションの説明に従って、構成 JSON にスイッチの詳細を指定します。Network.NetworkPlugin
は既定でflannel
。 Flannel は、K3S クラスターの既定の CNI です。 K8S クラスターの場合は、NetworkPlugin
をcalico
に変更します。セカンダリ ノードのリソース構成を確認します。 これらのパラメーターは必要に応じて変更できます。 ノードごとに十分なメモリを確保。 プライマリ コンピューターで
MacAddress
を指定した場合は、セカンダリ コンピューターに関連する適切な MAC アドレスを確認して指定します。サポートされている設定は、奇数のコントロール プレーン ノードだけです。 したがって、コントロール プレーンをスケールアップまたはスケールダウンする場合は、コントロール プレーン ノードが 1 つ、3 つ、または 5 つあることを確認します。
手順 3: セカンダリ コンピューター上のノードを起動する
これで、セカンダリ マシン上のノードを起動し、クラスターに追加する準備ができました。
セカンダリ マシンに対応するノードをデプロイするには、前の手順で作成した ScaleConfig.json ファイルを使用できるようになりました。
New-AksEdgeDeployment -JsonConfigFilePath .\ScaleConfig.json
手順 4: クラスターのセットアップを検証する
クラスター内の任意のノードで、次のコマンドレットを実行します。
kubectl get nodes -o wide
クラスターのすべてのノードを表示できる必要があります。
手順 5: ノードを追加する
手順 1 から 4 を繰り返すことで必要な nodeType に基づいて、新しい ScaleConfig ファイルを生成できます。 ノードを追加するたびに、ネットワークで使用可能な IP アドレスを指定してください。
手順 6: ノードが既に存在するマシンに 2 番目のノード (Linux/Windows) を追加する (省略可能)
ノードが既に存在する既存のマシンに別のノードを追加できます。 たとえば、マシンが Linux ノードを実行している場合は、Windows ノードを追加できます。
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null
Windows VM の CpuCount
や MemoryInMB
などのパラメーターを指定することもできます。
Note
New-AksEdgeScaleConfig
は、ControlPlane ロールを持つ Linux ノードを持つマシンでのみ実行します。
生成された構成ファイルを使用し、次のコマンドを実行して Windows ノードを追加できます。
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
ここで、Windows VM の CpuCount
や MemoryInMB
などのパラメーターを指定することもできます。
次のステップ
- アプリケーションをデプロイするまたは Arc に接続
- 概要
- AKS クラスターのアンインストール