Implementación de una sola máquina
Puede implementar AKS Edge Essentials en una sola máquina o en varias máquinas. En una sola implementación de Kubernetes de máquina, tanto el nodo de control de Kubernetes como el nodo de trabajo se ejecutan en la misma máquina. En este artículo se describe cómo crear el nodo de control de Kubernetes en la máquina en una red privada.
Requisitos previos
Configure la máquina principal como se describe en Configuración de la máquina.
Paso 1: parámetros de configuración de una sola máquina
Puede generar los parámetros que necesita para crear un único clúster de máquina mediante el siguiente comando:
New-AksEdgeConfig -DeploymentType SingleMachineCluster -outFile .\aksedge-config.json | Out-Null
Este comando crea un archivo de configuración denominado aksedge-config.json que incluye la configuración necesaria para crear un clúster de una sola máquina con un nodo de Linux. El archivo se crea en el directorio de trabajo actual. Consulte los ejemplos siguientes para obtener más opciones para crear el archivo de configuración.
Consulte Deployment JSON configuration (Configuración json de implementación) para obtener una descripción detallada de los parámetros de configuración.
Los parámetros clave para la implementación de una sola máquina son:
DeploymentType
: este parámetro define el tipo de implementación y se especifica comoSingleMachineCluster
.- De
Network.NetworkPlugin
forma predeterminada, esflannel
. Este es el valor predeterminado de un clúster K3S. Si usa un clúster K8S, cambie el CNI acalico
. - Puede establecer los parámetros siguientes según la configuración de implementación como se describe aquí:
LinuxNode.CpuCount
,LinuxNode.MemoryInMB
,LinuxNode.DataSizeInGB
,WindowsNode.CpuCount
,WindowsNode.MemoryInMB
, ,Init.ServiceIPRangeSize
yNetwork.InternetDisabled
.
Paso 2: creación de un único clúster de máquina
- Ahora puede ejecutar el
New-AksEdgeDeployment
cmdlet para implementar un clúster de AKS Edge de una sola máquina con un único nodo de plano de control de Linux:
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
Importante
Kubernetes pod cidr
es 10.42.0.0/16
para K3s y 10.244.0.0/24
para K8s. Kubernetes service cidr
es 10.43.0.0/16
para K3s y 10.96.0.0/12
para K8s.
Paso 3: validar el clúster
Confirme que la implementación se realizó correctamente ejecutando:
kubectl get nodes -o wide
kubectl get pods -A -o wide
En la imagen siguiente se muestran los pods en un clúster K3S:
Paso 4: Agregar un nodo de trabajo de Windows (opcional)
Precaución
Los nodos de trabajo de Windows son una característica experimental en esta versión. Estamos trabajando activamente en esta característica.
Si desea agregar un nodo de Windows a un clúster de máquina única de Linux existente, cree primero el archivo de configuración mediante el siguiente comando:
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -outFile .\ScaleConfig.json | Out-Null
Esto crea el archivo de configuración ScaleConfig.json en el directorio de trabajo actual. También puede modificar los parámetros del nodo de Windows en el archivo de configuración para especificar los recursos que se deben asignar al nodo de Windows. Con el archivo de configuración, puede ejecutar el siguiente comando para agregar el nodo del clúster de máquina única:
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
Opciones de implementación de ejemplo
Creación de un objeto JSON con los parámetros de configuración
Puede editar mediante programación el objeto JSON y pasarlo como una cadena:
$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)
Sugerencia
Consulte Configuración de JSON de implementación para ver todas las opciones disponibles, incluida la configuración de red, como la configuración de proxy.
Creación de un clúster sencillo con el servicio NodePort
Puede crear un clúster simple sin direcciones IP de servicio (ServiceIPRangeSize
establecido como 0):
New-AksEdgeDeployment -JsonConfigString (New-AksEdgeConfig | ConvertTo-Json -Depth 4)
Asignar recursos a los nodos
Para conectarse a Arc e implementar las aplicaciones con GitOps, asigne cuatro CPU o más para LinuxNode.CpuCount
(potencia de procesamiento), 4 GB o más para LinuxNode.MemoryinMB
(RAM) y para asignar un número mayor que 0 a ServiceIpRangeSize
. Aquí, asignamos 10 direcciones IP para los servicios de Kubernetes:
{
"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
}
}
]
}
Nota:
AKS Edge Essentials asigna direcciones IP desde el conmutador interno para ejecutar los servicios de Kubernetes si especificó un ServiceIPRangeSize
.
También puede optar por pasar los parámetros como una cadena JSON, como se ha descrito anteriormente:
$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)
Creación de un clúster de carga de trabajo mixto
Puede crear un clúster con nodos de Linux y Windows. Puede crear el archivo de configuración mediante el comando :
New-AksEdgeConfig -DeploymentType SingleMachineCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
Una vez creado el archivo de configuración, puede implementar el clúster mediante el siguiente comando:
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json