單一計算機部署
您可以在單一機器或多部計算機上部署 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
K3 和 10.244.0.0/24
K8。 Kubernetes service cidr
適用於 10.43.0.0/16
K3 和 10.96.0.0/12
K8。
步驟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 組態 ,包括 Proxy 設定之類的網路設定。
使用 NodePort 服務建立簡單的叢集
您可以建立不含服務 IP 的簡單叢集(ServiceIPRangeSize
設為 0):
New-AksEdgeDeployment -JsonConfigString (New-AksEdgeConfig | ConvertTo-Json -Depth 4)
將資源配置給您的節點
若要使用 GitOps 連線至 Arc 並部署您的應用程式,請配置四個 CPU 或更多用於 (處理電源)、4 GB 或更多個 LinuxNode.CpuCount
用於 LinuxNode.MemoryinMB
(RAM),並將大於 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