单台计算机部署
可以在单个计算机或多台计算机上部署 AKS Edge Essentials。 在单台计算机 Kubernetes 部署中,Kubernetes 控制节点和工作器节点在同一台计算机上运行。 本文介绍如何在专用网络上在计算机上创建 Kubernetes 控制节点。
先决条件
按照“设置计算机”中所述 设置主计算机。
步骤 1:单台计算机配置参数
可以使用以下命令生成创建单个计算机群集所需的参数:
New-AksEdgeConfig -DeploymentType SingleMachineCluster -outFile .\aksedge-config.json | Out-Null
此命令创建名为 aksedge-config.json 的配置文件,其中包含使用 Linux 节点创建单计算机群集所需的配置。 该文件是在当前工作目录中创建的。 有关创建配置文件的更多选项,请参阅以下示例。
有关配置参数的详细说明,请参阅 部署 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:创建单个计算机群集
- 现在,可以运行
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:
步骤 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