Compartir a través de


Escalado horizontal en varias máquinas

Ahora que AKS Edge Essentials está instalado en la máquina principal, en este artículo se describe cómo puede escalar horizontalmente el clúster a otras máquinas secundarias para crear una implementación de varias máquinas.

Precaución

El escalado a nodos adicionales es una característica experimental.

Requisitos previos

  • Configure el clúster de Kubernetes escalable.
  • Configure las máquinas secundarias como se describe en el artículo Configuración de máquinas. No se pueden combinar diferentes distribuciones de Kubernetes en el clúster. Si el clúster de la máquina principal ejecuta K8s, debe instalar también la MSI de K8s en las máquinas secundarias .

Paso 1: obtener la configuración del clúster de la máquina principal

En la máquina principal en la que creó la implementación escalable, ejecute los pasos siguientes en una ventana de PowerShell con privilegios elevados para crear el archivo de configuración adecuado en función de sus requisitos.

  • Para escalar mediante la adición de un nodo de trabajo de solo Linux, cree el archivo de configuración necesario mediante el siguiente comando y especifique como NodeType "Linux" y proporcione una dirección IP única y disponible para este nodo:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Linux -LinuxNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
    
  • Para escalar agregando más nodo del plano de control de Linux, especifique como NodeType "Linux", establezca la ControlPlane marca como true y proporcione una dirección IP única para el nodo de Linux:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Linux -LinuxNodeIp x.x.x.x -ControlPlane -outFile .\ScaleConfig.json | Out-Null
    
  • Para escalar mediante la adición de un nodo de trabajo solo de Windows, especifique como NodeType "Windows" y proporcione una dirección IP única para el nodo de Windows:

      New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Windows -WindowsNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
    
  • Para agregar un nodo de trabajo de Linux y Windows, especifique como NodeType "LinuxAndWindows" y proporcione una dirección IP única para los nodos de Linux y Windows:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType LinuxandWindows -LinuxNodeIp x.x.x.x -WindowsNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
    
  • Para agregar un nodo de plano de control de Linux y un nodo de trabajo de Windows, especifique como NodeType "LinuxAndWindows", establezca la ControlPlane marca como truey proporcione una dirección IP única para los nodos de Linux y Windows:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType LinuxandWindows -LinuxNodeIp x.x.x.x -WindowsNodeIp x.x.x.x  -ControlPlane -outFile .\ScaleConfig.json | Out-Null
    

Estos comandos exportan los datos necesarios para unir un clúster en formato JSON, devolverlos como una cadena JSON y almacenarlos en el archivo especificado mediante outFile el parámetro .

Precaución

Cada vez que ejecute el New-AksEdgeScaleConfig comando, el creado ClusterJoinToken anteriormente no es válido, por lo que no puede usar un archivo ScaleConfig.json creado anteriormente. Además, ClusterJoinToken solo es válido durante 24 horas.

Paso 2: validar los parámetros de configuración

El archivo de configuración .\ScaleConfig.json incluye la configuración de la máquina principal. Revise y actualice las secciones necesarias y proporcione detalles relevantes para la máquina a la que va a escalar.

  • Compruebe con NetworkConnection.AdapterName referencia a la máquina secundaria. Si ha creado un conmutador externo en su Hyper-V en la máquina secundaria, puede elegir especificar los detalles de vswitch en el archivo de ScaleConfig.json . Si no crea un conmutador externo en el administrador de Hyper-V y ejecuta el New-AksEdgeDeployment comando , AKS Edge Essentials crea automáticamente un conmutador externo denominado aksedgesw-ext y lo usa para la implementación.

    Nota:

    En esta versión, hay un problema conocido en la creación automática de conmutadores externos con el New-AksEdgeDeployment comando si usa un adaptador wi-fi para el conmutador. En este caso, cree primero el conmutador externo mediante el administrador de Hyper-V - Virtual Switch Manager y asigne el conmutador al adaptador wi-fi. A continuación, proporcione los detalles del modificador en el JSON de configuración, tal como se describe en esta sección.

  • el Network.NetworkPlugin valor es flannel de forma predeterminada. Flannel es el CNI predeterminado para un clúster K3S. Para un clúster K8S, cambie a NetworkPlugin calico.

  • Compruebe la configuración de recursos de los nodos secundarios. Puede modificar estos parámetros según sea necesario. Asegúrese de reservar suficiente memoria para cada nodo. Si especificó MacAddress en la máquina principal, compruebe y proporcione la dirección MAC adecuada correspondiente a la máquina secundaria.

  • Un número impar de nodos del plano de control es la única configuración admitida. Por lo tanto, si desea escalar o reducir verticalmente el plano de control, asegúrese de que tiene uno, tres o cinco nodos del plano de control.

Paso 3: abrir un nodo en la máquina secundaria

Ahora está listo para abrir nodos en las máquinas secundarias y agregarlos al clúster.

Para implementar el nodo correspondiente en la máquina secundaria, ahora puede usar el archivo ScaleConfig.json creado en el paso anterior:

New-AksEdgeDeployment -JsonConfigFilePath .\ScaleConfig.json

Paso 4: validar la configuración del clúster

En cualquier nodo del clúster, ejecute el siguiente cmdlet:

kubectl get nodes -o wide

Debería poder ver todos los nodos del clúster.

Captura de pantalla que muestra varios nodos.

Paso 5: agregar más nodos

Puede generar un nuevo archivo ScaleConfig basado en el nodeType necesario repitiendo los pasos 1 a 4. Asegúrese de proporcionar direcciones IP disponibles en la red cada vez que agregue un nodo.

Paso 6: agregar el segundo nodo (Linux/Windows) en una máquina que ya tiene un nodo (opcional)

Puede agregar otro nodo a una máquina existente que ya tiene un nodo. Por ejemplo, si la máquina ejecuta un nodo de Linux, puede agregarle un nodo de Windows:

New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null

También puede especificar parámetros como CpuCount o MemoryInMB para la máquina virtual Windows.

Nota:

Ejecute New-AksEdgeScaleConfig solo en máquinas que tengan el nodo Linux con el rol ControlPlane .

Puede usar el archivo de configuración generado y ejecutar el siguiente comando para agregar el nodo de Windows:

Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json

También puede especificar parámetros como CpuCount o MemoryInMB para la máquina virtual Windows aquí.

Pasos siguientes