Escalando horizontalmente em vários computadores

Agora que o AKS Edge Essentials está instalado em seu computador primário, este artigo descreve como você pode escalar horizontalmente seu cluster para outros computadores secundários para criar uma implantação de vários computadores.

Cuidado

O dimensionamento para nós adicionais é um recurso experimental.

Pré-requisitos

  • Configure seu cluster escalonável do Kubernetes .
  • Configure suas máquinas secundárias conforme descrito no artigo Configurar máquina. Você não pode misturar diferentes distribuições do Kubernetes em seu cluster. Se o cluster em sua máquina primária estiver executando o K8s, você também deverá instalar o MSI do K8s nas máquinas secundárias.

Etapa 1: obter a configuração do cluster do computador principal

No computador primário no qual você criou sua implantação escalonável, execute as etapas a seguir em uma janela do PowerShell com privilégios elevados para criar o arquivo de configuração apropriado com base em seus requisitos.

  • Para dimensionar adicionando um nó de trabalho somente Linux, crie o arquivo de configuração necessário usando o comando a seguir e especifique como NodeType "Linux" e forneça um endereço IP exclusivo e disponível para esse nó:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Linux -LinuxNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
    
  • Para dimensionar adicionando mais nó do plano de controle do Linux, especifique como NodeType "Linux", defina o ControlPlane sinalizador como true e forneça um endereço IP exclusivo para o nó do Linux:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Linux -LinuxNodeIp x.x.x.x -ControlPlane -outFile .\ScaleConfig.json | Out-Null
    
  • Para dimensionar adicionando um nó de trabalho somente Windows, especifique como NodeType "Windows" e forneça um endereço IP exclusivo para o nó Windows:

      New-AksEdgeScaleConfig -scaleType AddMachine -NodeType Windows -WindowsNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
    
  • Para adicionar um nó de trabalho do Linux e do Windows, especifique como NodeType "LinuxAndWindows" e forneça um endereço IP exclusivo para os nós do Linux e do Windows:

    New-AksEdgeScaleConfig -scaleType AddMachine -NodeType LinuxandWindows -LinuxNodeIp x.x.x.x -WindowsNodeIp x.x.x.x -outFile .\ScaleConfig.json | Out-Null
    
  • Para adicionar um nó do plano de controle do Linux e um nó de trabalho do Windows, especifique como NodeType "LinuxAndWindows", defina o ControlPlane sinalizador como truee forneça um endereço IP exclusivo para os nós do Linux e do Windows:

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

Esses comandos exportam os dados necessários para ingressar em um cluster no formato JSON, retornam-nos como uma string JSON e armazenam-nos no arquivo especificado via outFile parâmetro.

Cuidado

Toda vez que você executa o New-AksEdgeScaleConfig comando, o criado ClusterJoinToken anteriormente se torna inválido, portanto, você não pode usar um arquivo ScaleConfig.json criado anteriormente. Além disso, ClusterJoinToken é válido apenas por 24 horas.

Etapa 2: validar os parâmetros de configuração

O arquivo de configuração .\ScaleConfig.json inclui a configuração da máquina primária. Revise e atualize as seções necessárias e forneça detalhes relevantes para o computador para o qual você está dimensionando.

  • Verifique o NetworkConnection.AdapterName com referência à máquina secundária. Se você criou um comutador externo no Hyper-V no computador secundário, poderá optar por especificar os detalhes do vswitch no arquivo ScaleConfig.json . Se você não criar um comutador externo no gerenciador do Hyper-V e executar o comando, o New-AksEdgeDeployment AKS Edge Essentials criará automaticamente um comutador externo chamado aksedgesw-ext e o usará para sua implantação.

    Observação

    Nesta versão, há um problema conhecido na criação automática de comutadores externos com o New-AksEdgeDeployment comando se você estiver usando um adaptador Wi-fi para o comutador. Nesse caso, primeiro crie o comutador externo usando o gerenciador do Hyper-V – Gerenciador de Comutador Virtual e mapeie o comutador para o adaptador Wi-Fi. Em seguida, forneça os detalhes da opção em seu JSON de configuração, conforme descrito nesta seção.

  • O Network.NetworkPlugin é flannel por padrão. Flanela é a CNI padrão para um cluster K3S. Para um cluster K8S, altere o NetworkPlugin arquivo para calico.

  • Verifique a configuração do recurso para os nós secundários. Você pode modificar esses parâmetros conforme necessário. Certifique-se de reservar memória suficiente para cada nó. Se você especificou MacAddress em sua máquina primária, verifique e forneça o endereço MAC correto relevante para a máquina secundária.

  • Um número ímpar de nós do plano de controle é a única configuração com suporte. Portanto, se você quiser escalar/reduzir verticalmente seu plano de controle, certifique-se de ter um, três ou cinco nós do plano de controle.

Etapa 3: abrir um nó em sua máquina secundária

Agora você está pronto para ativar nós em suas máquinas secundárias e adicioná-los ao cluster.

Para implantar o nó correspondente no computador secundário, agora você pode usar o arquivo ScaleConfig.json criado na etapa anterior:

New-AksEdgeDeployment -JsonConfigFilePath .\ScaleConfig.json

Etapa 4: validar a configuração do cluster

Em qualquer nó do cluster, execute o seguinte cmdlet:

kubectl get nodes -o wide

Você deve ser capaz de ver todos os nós do cluster.

Captura de tela mostrando vários nós.

Etapa 5: adicionar mais nós

Você pode gerar um novo arquivo ScaleConfig com base no nodeType necessário repetindo as etapas de 1 a 4. Certifique-se de fornecer endereços IP disponíveis em sua rede sempre que adicionar um nó.

Etapa 6: adicionar o segundo nó (Linux/Windows) em uma máquina que já tenha um nó (opcional)

Você pode adicionar outro nó a uma máquina existente que já tenha um nó. Por exemplo, se sua máquina estiver executando um nó Linux, você poderá adicionar um nó Windows a ele:

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

Você também pode especificar parâmetros como CpuCount e/ou MemoryInMB para sua VM do Windows.

Observação

Execute New-AksEdgeScaleConfig somente em computadores que tenham o nó Linux com a função ControlPlane .

Você pode usar o arquivo de configuração gerado e executar o seguinte comando para adicionar o nó do Windows:

Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json

Você também pode especificar parâmetros como CpuCount e/ou MemoryInMB para sua VM do Windows aqui.

Próximas etapas