AKS Edge Essentials での完全な Kubernetes デプロイ
注意事項
現在、複数のマシンへの完全なデプロイは試験的な機能です。 この機能に積極的に取り組んでいます。
分散マイクロサービス アーキテクチャをサポートするために、複数のマシンで実行するように AKS Edge Essentials クラスターを構成できます。 AKS Edge Essentialsは静的構成用であり、クラウドまたは AKS HCI の AKS とは異なり、動的な VM の作成/削除やクラスター ライフサイクル管理は有効になりません。 AKS Edge Essentials には、必要に応じて Windows VM と共に、各マシンごとに 1 つの Linux VM のみが含まれます。 各 VM には、インストール時に割り当てられた RAM、ストレージ、物理 CPU コアの静的割り当てがあります。 マルチノードデプロイでは、マシンの 1 つが Kubernetes 制御ノードを持つプライマリ マシンであり、他のマシンはワーカー ノードを持つセカンダリ マシンになります。 このデプロイ シナリオでは、外部スイッチを使用して K8S クラスターを構成します。 この構成では、ネットワーク上の別のマシンから実行 kubectl
したり、外部スイッチでワークロードのパフォーマンスを評価したりできます。
前提条件
マシンのセットアップに関する記事の説明に従 って、コンピューターをセットアップします 。
手順 1: 完全な Kubernetes デプロイ構成パラメーター
次のコマンドを使用して、スケーラブルなクラスターを作成するために必要なパラメーターを生成できます。
New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null
これにより、 aksedge-config.json という構成ファイルが作成されます。これには、Linux ノードを使用してスケーラブルなクラスターを作成するために必要な構成が含まれます。 ファイルは、現在の作業ディレクトリに作成されます。 構成ファイルを作成するためのその他のオプションについては、次の例を参照してください。 構成パラメーターの詳細については 、こちらを参照してください。
スケーラブルな Kubernetes デプロイに注意すべき主なパラメーターは次のとおりです。
外部スイッチ情報: 完全なデプロイでは、外部スイッチを使用してノード間の通信を有効にします。 パラメーターを
MachineConfigType.NetworkConnection.AdapterName
またはWi-Fi
としてEthernet
指定する必要があります。# get the list of available adapters in the machine Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
Hyper-V で外部スイッチを作成した場合は、構成ファイルで vswitch の詳細を指定することを選択できます。 Hyper-V マネージャーで外部スイッチを作成してコマンドを
New-AksEdgeDeployment
実行しない場合、AKS Edge Essentialsによって という名前aksedgesw-ext
の外部スイッチが自動的に作成され、デプロイに使用されます。注意
このリリースでは、スイッチに Wi-Fi アダプターを使用している場合、コマンドを
New-AksEdgeDeployment
使用した外部スイッチの自動作成に関する既知の問題があります。 この場合は、まず Hyper-V マネージャー - 仮想スイッチ マネージャーを使用して外部スイッチを作成し、そのスイッチを Wi-fi アダプターにマップしてから、次に説明するように構成 JSON でスイッチの詳細を指定します。IP アドレス: コントロール プレーン、 Kubernetes サービス、 およびノード (VM) に対して、ネットワークから空き IP アドレスを割り当てる必要があります。 詳細については、AKS Edge Essentials ネットワークの概要に関するページを参照してください。 たとえば、192.168.1.0/24 の IP アドレス範囲を持つローカル ネットワークでは、DHCP スコープの外部に 1.151 以上がある可能性があるため、空きになる可能性があります。 AKS Edge Essentialsでは現在、IPv4 アドレスのみがサポートされています。 理想的には、あなたが使用できる無料のIPアドレスを知っているでしょう。ただし、GitHub リポジトリの AksEdge-ListUsedIPv4s スクリプトを使用して、現在使用されている IP を表示して、これらの IP アドレスを構成で使用しないようにすることができます。 構成ファイル
Ip4PrefixLength
ServiceIPRangeStart
ControlPlaneEndpointIp
Ip4GatewayAddress
ServiceIPRangeSize
の セクションでNetwork
、およびDnsServers
の各パラメーターを指定する必要があります。既定の値は
Network.NetworkPlugin
ですflannel
。 Flannel は、K3S クラスターの既定の CNI です。 K8S クラスターで、 をNetworkPlugin
にcalico
変更します。前のパラメーターに加えて、次の説明
LinuxNode.CpuCount
に従って、デプロイ構成に従って、、WindowsNode.CpuCount
LinuxNode.DataSizeInGB
LinuxNode.MemoryInMB
WindowsNode.MemoryInMB
WindowsNode.Ip4Address
LinuxNode.Ip4Address
Init.ServiceIPRangeSize
、、、およびNetwork.InternetDisabled
を設定できます。
手順 2: 構成ファイルを検証する
aksedge-config.json ファイルを更新した後、AksEdgePrompt ツールを実行します。 このツールは、モジュールが読み込まれた状態で管理者特権の PowerShell ウィンドウを開きます。 次に、次のコマンドを実行し、 コマンドレットを使用してネットワーク パラメーターを Test-AksEdgeNetworkParameters
検証します。
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
手順 3: 完全なデプロイ クラスターを作成する
が返されたtrue
場合Test-AksEdgeNetworkParameters
は、デプロイを作成する準備ができました。 コマンドレットを使用してデプロイを New-AksEdgeDeployment
作成できます。
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
コマンドレットは New-AksEdgeDeployment
、kubeconfig ファイルを自動的に取得します。
手順 4: デプロイを検証する
kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide
Kubernetes クラスターのスクリーンショットを次に示します。
手順 5: Windows ワーカー ノードを追加する (省略可能)
注意事項
Windows ワーカー ノードは、このリリースの試験的な機能です。 この機能に積極的に取り組んでいます。
既存の Linux 専用マシンに Windows ノードを追加する場合は、次のコマンドを実行できます。
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null
ここで、Windows VM の パラメーター (または/または MemoryInMB
などCpuCount
) を指定することもできます。
生成された構成ファイルを使用し、次のコマンドを実行して Windows ノードを追加できます
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
さまざまな展開オプションの構成例
ノードにリソースを割り当てる
Arc に接続し、GitOps を使用してアプリをデプロイするには、(処理能力) に LinuxNode.CpuCount
4 つ以上の CPU を割り当て、(RAM) に 4 GB 以上 LinuxNode.MemoryinMB
を割り当て、0 より大きい数値を に ServiceIpRangeSize
割り当てます。 ここでは、Kubernetes サービスに 10 個の IP アドレスを割り当てます。
{
"Init": {
"ServiceIpRangeSize": 10,
"ServiceIPRangeStart": "192.168.1.151"
},
"Network": {
"ControlPlaneEndpointIp": "192.168.1.191",
"NetworkPlugin": "calico",
"Ip4GatewayAddress": "192.168.1.1",
"Ip4PrefixLength": 24,
"DnsServers": ["192.168.1.1"]
},
"Machines": [
{
"NetworkConnection": {
"AdapterName": "Ethernet"
},
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096,
"DataSizeInGB": 20,
"Ip4Address": "192.168.1.171"
}
}
]
}
Linux ノードと Windows ノードをCreateする
Linux コントロール プレーンと Windows ワーカー ノードの両方をコンピューターで実行するには、次のコマンドを使用して構成ファイルを作成します。
New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
コマンドを使用してデプロイをCreateします。
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
{
"Machines": [
{
"NetworkConnection": {
"AdapterName": "Ethernet"
},
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096,
"DataSizeInGB": 20,
"Ip4Address": "192.168.1.171"
},
"WindowsNode": {
"CpuCount": 2,
"MemoryInMB": 4096,
"Ip4Address": "192.168.1.172"
}
}
]
}