单机部署
可以在单台计算机或多台计算机上部署 AKS Edge Essentials。 在单台计算机 Kubernetes 部署中,Kubernetes 控制节点和工作器节点在同一台计算机上运行。 本文介绍如何在专用网络上的计算机上创建 Kubernetes 控制节点。
先决条件
按照设置计算机一文中所述 设置主计算机 。
步骤 1:单台计算机配置参数
可以使用以下命令生成创建单计算机群集所需的参数:
New-AksEdgeConfig -DeploymentType SingleMachineCluster -outFile .\aksedge-config.json | Out-Null
此命令创建名为 aksedge-config.json 的配置文件,其中包含创建具有 Linux 节点的单计算机群集所需的配置。 该文件是在当前工作目录中创建的。 有关创建配置文件的更多选项,请参阅以下示例。 此处提供了配置参数的详细说明。
单计算机部署的关键参数包括:
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
步骤 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)
使用 NodePort 服务创建简单群集
可以创建一个没有服务 IP 的简单群集, (ServiceIPRangeSize
设置为 0) :
New-AksEdgeDeployment -JsonConfigString (New-AksEdgeConfig | ConvertTo-Json -Depth 4)
将资源分配给节点
若要连接到 Arc 并使用 GitOps 部署应用,请为 LinuxNode.CpuCount
(处理能力分配 4 个或更多 CPU) ,为 LinuxNode.MemoryinMB
(RAM) 分配 4 GB 或更多,并为 分配大于 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
}
}
]
}
注意
如果指定了 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
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈