单台计算机部署

可以在单个计算机或多台计算机上部署 AKS Edge Essentials。 在单台计算机 Kubernetes 部署中,Kubernetes 控制节点和工作器节点在同一台计算机上运行。 本文介绍如何在专用网络上在计算机上创建 Kubernetes 控制节点。

先决条件

按照“设置计算机”中所述 设置主计算机

步骤 1:单台计算机配置参数

可以使用以下命令生成创建单个计算机群集所需的参数:

New-AksEdgeConfig -DeploymentType SingleMachineCluster -outFile .\aksedge-config.json | Out-Null

此命令创建名为 aksedge-config.json 的配置文件,其中包含使用 Linux 节点创建单计算机群集所需的配置。 该文件是在当前工作目录中创建的。 有关创建配置文件的更多选项,请参阅以下示例。

有关配置参数的详细说明,请参阅 部署 JSON 配置

单台计算机部署的关键参数包括:

步骤 2:创建单个计算机群集

  1. 现在,可以运行 New-AksEdgeDeployment cmdlet 来部署具有单个 Linux 控制平面节点的单台计算机 AKS Edge 群集:
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json

重要

Kubernetes pod cidr 适用于 10.42.0.0/16 K3s 和 10.244.0.0/24 K8s。 Kubernetes service cidr 适用于 10.43.0.0/16 K3s 和 10.96.0.0/12 K8s。

步骤 3:验证群集

通过运行以下操作确认部署是否成功:

kubectl get nodes -o wide
kubectl get pods -A -o wide

下图显示了 K3S 群集上的 Pod:

显示正在运行的所有 Pod 的屏幕截图。

步骤 4:添加 Windows 工作器节点(可选)

注意

Windows 工作器节点是此版本中的实验性功能。 我们正在积极研究此功能。

如果要将 Windows 节点添加到现有 Linux 仅单台计算机群集,请先使用以下命令创建配置文件:

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)

提示

有关所有可用选项(包括网络设置(如代理设置),请参阅 部署 JSON 配置

使用 NodePort 服务创建简单群集

可以创建没有服务 IP 的简单群集(ServiceIPRangeSize 设置为 0):

New-AksEdgeDeployment -JsonConfigString (New-AksEdgeConfig | ConvertTo-Json -Depth 4)

将资源分配给节点

若要使用 GitOps 连接到 Arc 并部署应用,请为 LinuxNode.CpuCount (处理能力)、4 GB 或更多(RAM)分配 4 个 CPU 或更多 LinuxNode.MemoryinMB 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
          }
       }
   ]
}

注意

AKS Edge Essentials 从内部交换机分配 IP 地址,以运行 Kubernetes 服务(如果指定)。ServiceIPRangeSize

还可以选择将参数作为 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

后续步骤