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


Отключение функции узла Windows в локальной среде Azure

Область применения: Локальная версия Azure, версия 23H2

При установке Локальных дисков Azure три виртуальных жестких диска (VHD) — Azure Linux, Windows Server 2019 и Windows Server 2022 — автоматически скачиваются. Виртуальные жесткие диски необходимы для развертывания AKS в Локальной среде Azure, так как они служат базовыми образами операционной системы для узлов Kubernetes в кластере AKS. Для среды смешанной ОС (как узлов Windows, так и Linux) виртуальный жесткий диск Windows Server 2019 или Windows Server 2022 требуется для подготовки узла Windows Server 2019 или 2022. В узле Linux используется виртуальный жесткий диск Azure Linux, оптимизированный для запуска Kubernetes. Однако в средах, где используются только контейнеры Linux, виртуальный жесткий диск Windows не требуется. Вы можете отключить функцию узла Windows, чтобы избежать загрузки и хранения этого большого файла, что экономит пропускную способность и место в хранилище.

В этой статье описывается, как отключить функцию узла Windows для Служба Azure Kubernetes (AKS) в локальной среде Azure. Отключение этой функции предотвращает автоматическую загрузку виртуальных жестких дисков Windows (VHD), размер которых составляет около 20 ГБ и требуется для создания узлов под управлением Windows. Таким образом, предприятия с ограниченной пропускной способностью Интернета могут избежать ненужных скачивание, особенно если их рабочие нагрузки используют исключительно контейнеры Linux. Эта функция помогает оптимизировать использование пропускной способности и упрощает управление ресурсами в средах, где узлы Windows не нужны.

Подготовка к работе

Прежде чем начать, убедитесь, что у вас есть следующие предварительные требования:

  • Развернуто локальное развертывание Azure. Эта статья применима только в том случае, если вы уже развернули локальную версию Azure, выпуск 2411. Перед развертыванием локального выпуска Azure 2411 нельзя выполнить команды, приведенные в этой статье. В настоящее время мы не поддерживаем возможность внести это изменение до первоначального развертывания локального выпуска Azure 2411.
  • Разрешения Azure RBAC для обновления локальной конфигурации Azure. Убедитесь, что у вас есть следующие роли. Дополнительные сведения см. в статье о необходимых разрешениях для развертывания:
    • Локальный администратор Azure
    • Читатель
  • Пользовательское расположение. Имя настраиваемого расположения. Настраиваемое расположение настраивается во время локального развертывания Azure. Если вы находитесь в портал Azure, перейдите на страницу "Обзор сервера" > в ресурсе локальной системы Azure. Вы должны увидеть пользовательское расположение для кластера.
  • Группа ресурсов Azure. Группа ресурсов Azure, в которой развернута локальная служба Azure.

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

Задайте настраиваемое расположение и значения группы ресурсов в переменных среды:

$customlocationName = <The custom location name for Azure Local>
$resourceGroup = <The Azure resource group in which Azure Local is deployed>

Затем выполните следующую команду, чтобы получить clusterName параметр. Этот параметр — это имя моста ресурсов Arc, развернутого в локальной среде Azure:

az customlocation show -n $customlocationName -g $resourceGroup --query hostResourceId

Ожидаемые выходные данные:

/subscriptions/f3dwer-00000-4383-2345-00000/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge

В этом выходных данных используется имя моста ресурсов Arc, sanjose-arcbridge развернутого в локальном кластере Azure. Это имя отличается для развертывания.

$clusterName = <Name of Arc resource bridge deployed on the Azure Local cluster>

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

az customlocation show -n $customlocationID -g $resourceGroup --query clusterExtensionIds -o tsv

Ожидаемые выходные данные:

/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge/providers/Microsoft.KubernetesConfiguration/extensions/hybridaksextension
/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge/providers/Microsoft.KubernetesConfiguration/extensions/vmss-hci

В пользовательском расположении должно быть установлено два расширения: управление виртуальными машинами AKS Arc и Arc. Скопируйте имя расширения для AKS в переменную среды. В примере выходных данных имя расширения — hybridaksextension. Это может отличаться от того, что вы видите:

$extensionName = <Name of AKS Arc extension you deployed on the custom location>

После получения имени расширения создайте переменные для следующих параметров и отключите функцию windows nodepool:

$extensionVersion = "$(az k8s-extension show -n $extensionName  -g $resourceGroup -c $clusterName --cluster-type appliances --query version -o tsv)"
$releaseTrain = "$(az k8s-extension show -n $extensionName -g $resourceGroup -c $clusterName --cluster-type appliances --query releaseTrain -o tsv)"
az k8s-extension update --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --name $extensionName --version $extensionVersion --release-train $releaseTrain --config disable-windows-nodepool=true --yes

Альтернативный вариант: отключите узел Windows после подключения к локальному физическому узлу Azure через удаленный рабочий стол

Если по какой-то причине вы не можете использовать Azure CloudShell или компьютер с подключением к Azure, чтобы отключить узел Windows nodepool, можно отключить узел Windows после подключения к любому из локальных физических узлов Azure с удаленным рабочим столом. Сначала необходимо войти в Azure:

az k8s-extension update --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --name $extensionName --version $extensionVersion --release-train $releaseTrain --config disable-windows-nodepool=true --yes 

Проверка того, отключена ли функция nodepool Windows

Можно проверить, применены ли параметры конфигурации, выполнив az k8s-extension showследующие действия:

az k8s-extension show --name $extensionName --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --query configurationSettings 

Ожидаемые выходные данные:

...
"disable-windows-nodepool": "true",
...

Затем проверьте, отключены ли узлы Windows, выполнив следующую команду:

az aksarc get-versions --resource-group $resourceGroup --custom-location $customlocationName

Выходные данные osType=Windows должны иметь значение "Функция windows nodepool отключена", а ready состояние должно быть falseдля каждого параметра версии Kubernetes:

...
"1.27.7": {
            "readiness": [
              {
                "errorMessage": null,
                "osSku": "CBLMariner",
                "osType": "Linux",
                "ready": true
              },
              {
                "errorMessage": "Windows nodepool feature is disabled",
                "osSku": "Windows2019",
                "osType": "Windows",
                "ready": false
              },
              {
                "errorMessage": "Windows nodepool feature is disabled",
                "osSku": "Windows2022",
                "osType": "Windows",
                "ready": false
              }
            ],
...

Вопросы и ответы

Что произойдет, если я пытаюсь отключить пулы узлов Windows и Windows существуют в кластере atleast 1 AKS в локальном развертывании Azure?

Перед отключением функции необходимо вручную удалить узел Windows. Если есть существующие узлы Windows, вы не можете отключить эту функцию.

Что происходит с скачанными виртуальными жесткими дисками Windows, если отключить пулы узлов Windows?

Виртуальные жесткие диски Windows, скачанные ранее, автоматически удаляются, если функция windows nodepools отключена. Вы можете проверить, были ли удалены виртуальные жесткие диски Windows из путей к локальному хранилищу Azure. Удаление может занять некоторое время. Подождите 30 минут до проверки. Необходимо проверить все пути к хранилищу, так как виртуальные жесткие диски Windows назначаются путям хранения в режиме циклического перебора на основе доступной емкости хранилища.

Следующие шаги