単一コンピューターのデプロイ

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.NetworkPluginflannelです。 これは K3S クラスターの既定値です。 K8S クラスターを使用している場合は、CNI を calico に変更します。
  • ここで説明するデプロイ構成に従って、次のパラメーターを設定できますLinuxNode.CpuCountLinuxNode.MemoryInMBLinuxNode.DataSizeInGBWindowsNode.CpuCountWindowsNode.MemoryInMBInit.ServiceIPRangeSize、およびNetwork.InternetDisabled

手順 2: 1 つのマシン クラスターを作成する

  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

次のステップ