Поделиться через


Масштабирование количества узлов вручную в кластере Службы Azure Kubernetes (AKS)

Если потребности в ресурсах ваших приложений изменяются, это может повлиять на производительность кластера из-за низкой емкости по ЦП, памяти, пространства идентификаторов процессов (PID) или объема диска. Чтобы устранить эти изменения, можно вручную масштабировать кластер AKS, чтобы запустить другое количество узлов. При масштабировании узлы тщательно изолируются и освобождаются, чтобы минимизировать перебои в работе приложений. При масштабировании AKS ожидает, пока узлы будут помечены как Ready кластером Kubernetes, прежде чем поды будут запланированы на них.

В этой статье описывается, как вручную увеличить или уменьшить количество узлов в кластере AKS.

Перед тем как начать

  • Просмотрите квоты и ограничения службы AKS , чтобы проверить, может ли кластер масштабироваться до требуемого количества узлов.

  • Имя пула узлов может содержать только буквы в нижнем регистре и должно начинаться с буквы в нижнем регистре.

    • Для пулов узлов Linux длина должна составлять от 1 до 11 символов.
    • Для пулов узлов Windows длина должна составлять от 1 до 6 символов.

Масштабирование узлов кластера

Важно

Удаление узлов из пула узлов с помощью kubectl команды не поддерживается. Это позволяет создавать проблемы с масштабированием кластера AKS.

  1. Получите имя пула узлов с помощью az aks show команды. В следующем примере возвращается имя пула узлов для кластера с именем myAKSCluster в группе ресурсов myResourceGroup :

    az aks show --resource-group myResourceGroup --name myAKSCluster --query agentPoolProfiles
    

    В следующем примере выходных данных показано, что имяnodepool1:

    [
      {
        "count": 1,
        "maxPods": 110,
        "name": "nodepool1",
        "osDiskSizeGb": 30,
        "osType": "Linux",
        "vmSize": "Standard_DS2_v2"
      }
    ]
    
  2. Масштабирование узлов кластера с помощью az aks scale команды. В следующем примере кластер с именем myAKSCluster масштабируется на один узел. Укажите собственное значение --nodepool-name, использованное в предыдущей команде, например nodepool1:

    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>
    

    В следующем примере выходных данных показано, что кластер успешно масштабируется до одного узла, как показано в разделе agentPoolProfiles :

    {
      "aadProfile": null,
      "addonProfiles": null,
      "agentPoolProfiles": [
        {
          "count": 1,
          "maxPods": 110,
          "name": "nodepool1",
          "osDiskSizeGb": 30,
          "osType": "Linux",
          "vmSize": "Standard_DS2_v2",
          "vnetSubnetId": null
        }
      ],
      [...]
    }
    

Масштабировать User пулы узлов до 0

В отличие от System пулов узлов, которые всегда требуют запуска узлов, User пулы узлов позволяют масштабировать до 0. Дополнительные сведения о различиях между пулами системных и пользовательских узлов см. в разделе "Пулы системных и пользовательских узлов".

Важно

Если вы хотите принудительно уменьшить масштаб пула узлов до 0 узлов, необходимо отключить автомасштабирование кластера. Дополнительные сведения см. в разделе «Отключение автомасштабирования кластера на пуле узлов».

  • Чтобы масштабировать пул пользователей до 0, можно использовать az aks nodepool scale в альтернативной команде выше az aks scale и задать 0 в качестве количества узлов.

    az aks nodepool scale --name <your node pool name> --cluster-name myAKSCluster --resource-group myResourceGroup  --node-count 0
    
  • Вы можете разрешить, но не принудительное автоматическое масштабирование до нуля узлов в пулах автоматически масштабируемых User узлов, задав --min-count параметр автомасштабирования0кластера.

Дальнейшие шаги

В этой статье вы вручную масштабировали кластер AKS, чтобы увеличить или уменьшить количество узлов. Вы также можете использовать средство автомасштабирования кластера для автоматического масштабирования кластера.