Compartir a través de


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 como SingleMachineCluster.
  • De Network.NetworkPlugin forma predeterminada, es flannel. Este es el valor predeterminado de un clúster K3S. Si usa un clúster K8S, cambie el CNI a calico.
  • 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.ServiceIPRangeSizey Network.InternetDisabled.

Paso 2: creación de un único clúster de máquina

  1. 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:

Captura de pantalla que muestra todos los pods en ejecución.

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

Pasos siguientes