単一コンピューターのデプロイ
AKS Edge Essentials は、1 台のコンピューターまたは複数のマシンにデプロイできます。 1 台のマシンの Kubernetes デプロイでは、Kubernetes コントロール ノードとワーカー ノードの両方が同じコンピューター上で実行されます。 この記事では、プライベート ネットワーク上のマシンに Kubernetes コントロール ノードを作成する方法について説明します。
前提条件
「 コンピューターのセットアップ」の説明に従って、プライマリ コンピューターを設定します。
手順 1: 単一コンピューター構成パラメーター
次のコマンドを使用して、1 つのマシン クラスターを作成するために必要なパラメーターを生成できます。
New-AksEdgeConfig -DeploymentType SingleMachineCluster -outFile .\aksedge-config.json | Out-Null
このコマンドは、Linux ノードを使用して単一マシン クラスターを作成するために必要な構成を含む、 aksedge-config.json という構成ファイルを作成します。 ファイルは現在の作業ディレクトリに作成されます。 構成ファイルを作成するためのその他のオプションについては、次の例を参照してください。
構成パラメーターの詳細な説明 こちら。
単一コンピューターのデプロイの主要なパラメーターは次のとおりです。
DeploymentType
: このパラメーターはデプロイの種類を定義し、SingleMachineCluster
として指定します。- 既定では、
Network.NetworkPlugin
はflannel
です。 これは K3S クラスターの既定値です。 K8S クラスターを使用している場合は、CNI をcalico
に変更します。 - ここで説明するデプロイ構成に従って、次のパラメーターを設定できます
LinuxNode.CpuCount
、LinuxNode.MemoryInMB
、LinuxNode.DataSizeInGB
、WindowsNode.CpuCount
、WindowsNode.MemoryInMB
、Init.ServiceIPRangeSize
、およびNetwork.InternetDisabled
。
手順 2: 1 つのマシン クラスターを作成する
New-AksEdgeDeployment
コマンドレットを実行して、単一の Linux コントロール プレーン ノードを持つ単一マシンの AKS Edge クラスターをデプロイできるようになりました。
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
手順 3: クラスターを検証する
次を実行して、デプロイが成功したことを確認します。
kubectl get nodes -o wide
kubectl get pods -A -o wide
次の図は、K3S クラスター上のポッドを示しています。
手順 4: Windows ワーカー ノードを追加する (省略可能)
注意事項
Windows ワーカー ノードは、このリリースの試験段階の機能です。 この機能に積極的に取り組んでいます。
既存の Linux のみの単一マシン クラスターに Windows ノードを追加する場合は、まず次のコマンドを使用して構成ファイルを作成します。
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -outFile .\ScaleConfig.json | Out-Null
これにより、現在の作業ディレクトリに ScaleConfig.json 構成ファイルが作成されます。 構成ファイルの Windows ノード パラメーターを変更して、Windows ノードに割り当てる必要があるリソースを指定することもできます。 構成ファイルを使用すると、次のコマンドを実行して、ノードを単一のマシン クラスターに追加できます。
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
デプロイ オプションの例
構成パラメーターを使用して JSON オブジェクトを作成する
プログラムで JSON オブジェクトを編集し、文字列として渡すことができます。
$jsonObj = New-AksEdgeConfig -DeploymentType SingleMachineCluster
$jsonObj.User.AcceptEula = $true
$jsonObj.User.AcceptOptionalTelemetry = $true
$jsonObj.Init.ServiceIpRangeSize = 10
$machine = $jsonObj.Machines[0]
$machine.LinuxNode.CpuCount = 4
$machine.LinuxNode.MemoryInMB = 4096
New-AksEdgeDeployment -JsonConfigString ($jsonObj | ConvertTo-Json -Depth 4)
NodePort サービスを使用して単純なクラスターを作成する
サービス IP を持たない単純なクラスターを作成できます (ServiceIPRangeSize
0 に設定されます)。
New-AksEdgeDeployment -JsonConfigString (New-AksEdgeConfig | ConvertTo-Json -Depth 4)
ノードにリソースを割り当てる
Arc に接続して GitOps を使用してアプリをデプロイするには、 LinuxNode.CpuCount
(処理能力)、 LinuxNode.MemoryinMB
(RAM) に 4 GB 以上の CPU を割り当て、0 より大きい数を ServiceIpRangeSize
に割り当てます。 ここでは、Kubernetes サービスに 10 個の IP アドレスを割り当てます。
{
"SchemaVersion": "1.5",
"Version": "1.0",
"DeploymentType": "SingleMachineCluster",
"Init": {
"ServiceIPRangeSize": 10
},
"Network": {
"NetworkPlugin": "flannel"
},
"User": {
"AcceptEula": true,
"AcceptOptionalTelemetry": true
},
"Machines": [
{
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096
}
}
]
}
Note
ServiceIPRangeSize
を指定した場合、AKS Edge Essentials は内部スイッチから IP アドレスを割り当てて Kubernetes サービスを実行します。
前に説明したように、パラメーターを JSON 文字列として渡すこともできます。
$jsonObj = New-AksEdgeConfig -DeploymentType SingleMachineCluster
$jsonObj.User.AcceptEula = $true
$jsonObj.User.AcceptOptionalTelemetry = $true
$jsonObj.Init.ServiceIpRangeSize = 10
$machine = $jsonObj.Machines[0]
$machine.LinuxNode.CpuCount = 4
$machine.LinuxNode.MemoryInMB = 4096
New-AksEdgeDeployment -JsonConfigString ($jsonObj | ConvertTo-Json -Depth 4)
混在ワークロード クラスターを作成する
Linux ノードと Windows ノードの両方を使用してクラスターを作成できます。 構成ファイルは、次のコマンドを使用して作成できます。
New-AksEdgeConfig -DeploymentType SingleMachineCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
構成ファイルが作成されたら、次のコマンドを使用してクラスターをデプロイできます。
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json