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


Настройка узла Служба Azure Kubernetes в локальной среде Azure и Windows Server и развертывание кластера рабочей нагрузки с помощью PowerShell

Область применения: Локальный центр обработки данных Azure или Windows Server

В этом кратком руководстве описано, как настроить узел Служба Azure Kubernetes (AKS). Кластеры Kubernetes создаются в Локальной среде Azure и Windows Server с помощью PowerShell. Чтобы использовать Центр администрирования Windows, см. статью "Настройка с помощью Центра администрирования Windows".

Примечание.

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

  • Убедитесь, что выполнены все необходимые условия в системных требованиях.
  • Используйте учетную запись Azure для регистрации узла AKS для выставления счетов. Дополнительные сведения см. в статье о требованиях Azure.

Установка модуля PowerShell AksHci

Выполните следующие действия на всех узлах в локальном кластере Azure или кластере Windows Server:

Примечание.

При использовании удаленного PowerShell необходимо использовать CredSSP.

  1. Закройте все открытые окна PowerShell, откройте новый сеанс PowerShell от имени администратора и выполните следующую команду на всех узлах в кластере Azure Local или Windows Server:

    Install-PackageProvider -Name NuGet -Force 
    Install-Module -Name PowershellGet -Force -Confirm:$false
    

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

  2. Установите модуль PowerShell AKS-HCI, выполнив следующую команду на всех узлах в кластере Azure Local или Windows Server:

    Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
    

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

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

Проверка установки

Get-Command -Module AksHci

Полный список команд AksHci PowerShell см. в статье AksHci PowerShell.

Регистрация поставщика ресурсов в подписке

Перед регистрацией включите соответствующий поставщик ресурсов в Azure для AKS, включенный регистрацией Arc. Для этого выполните следующие команды PowerShell:

Чтобы войти в Azure, выполните команду Connect-AzAccount PowerShell:

Connect-AzAccount

Если вы хотите переключиться на другую подписку, выполните команду Set-AzContext PowerShell:

Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"

Выполните следующие команды, чтобы зарегистрировать подписку Azure в поставщиках ресурсов Kubernetes с поддержкой Azure Arc. Этот процесс регистрации может занять до 10 минут, но его необходимо выполнить только один раз в определенной подписке:

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Чтобы проверить процесс регистрации, выполните следующие команды PowerShell:

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Шаг 1. Подготовка компьютеров к развертыванию

Выполните проверки на каждом физическом узле, чтобы узнать, соответствуют ли все требования к установке AKS, включенные Arc. Откройте PowerShell от имени администратора и выполните следующую команду Initialize-AksHciNode на всех узлах в кластере Azure Local и Windows Server:

Initialize-AksHciNode

Шаг 2. Создание виртуальной сети

Выполните следующие команды на любом узле в локальном кластере Azure и Windows Server.

Чтобы получить имена доступных коммутаторов, выполните следующую команду. Убедитесь, SwitchType что переключатель виртуальной машины имеет значение External:

Get-VMSwitch

Образец вывода:

Name        SwitchType     NetAdapterInterfaceDescription
----        ----------     ------------------------------
extSwitch   External       Mellanox ConnectX-3 Pro Ethernet Adapter

Чтобы создать виртуальную сеть для узлов в развертывании, создайте переменную среды с помощью команды New-AksHciNetworkSetting PowerShell. Эта виртуальная сеть используется позже для настройки развертывания, использующего статический IP-адрес. Если вы хотите настроить развертывание AKS с помощью DHCP, см . примеры New-AksHciNetworkSetting . Вы также можете просмотреть некоторые понятия сетевых узлов.

#static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9

Примечание.

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

Шаг 3. Настройка развертывания

Выполните следующие команды на любом узле в локальном кластере Azure и Windows Server.

Чтобы создать параметры конфигурации для узла AKS, используйте команду Set-AksHciConfig . Необходимо указать imageDirи workingDircloudConfigLocation параметры. Если вы хотите сбросить сведения о конфигурации, выполните команду еще раз с новыми параметрами.

Настройте развертывание с помощью следующей команды:

$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet

Примечание.

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

Шаг 4. Вход в Azure и настройка параметров регистрации

Вариант 1. Используйте учетную запись Microsoft Entra, если у вас есть разрешения "Владелец"

Выполните следующую команду Set-AksHciRegistration PowerShell с именем подписки и группы ресурсов, чтобы войти в Azure. У вас должна быть подписка Azure и существующая группа ресурсов Azure на востоке Австралии, восточной части США, юго-восточной Азии или регионах Azure Западной Европы:

Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"

Вариант 2. Использование субъекта-службы Azure

Если у вас нет доступа к подписке, в которой вы являетесь владельцем, вы можете зарегистрировать узел AKS в Azure для выставления счетов с помощью субъекта-службы. Дополнительные сведения об использовании субъекта-службы см. в разделе регистрации AKS в локальной среде Azure и Windows Server с помощью субъекта-службы.

Шаг 5. Запуск нового развертывания

Выполните следующую команду на любом узле в локальном или кластере Windows Server Azure.

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

Совет

Чтобы просмотреть дополнительные сведения о состоянии во время установки, установите перед $VerbosePreference = "Continue" продолжением.

Install-AksHci

Предупреждение

Во время установки узла AKS в группе ресурсов, заданной во время регистрации, создается тип ресурса Kubernetes — Azure Arc . Не удаляйте этот ресурс, так как он представляет узел AKS. Вы можете определить ресурс, проверив его поле распространения для значения aks_management. Если удалить этот ресурс, это приведет к развертыванию вне политики.

Шаг 6. Создание кластера Kubernetes

После установки узла AKS можно развернуть кластер Kubernetes. Откройте PowerShell от имени администратора и выполните следующую команду New-AksHciCluster . В этом примере команда создает новый кластер Kubernetes с одним пулом linuxnodepool узлов Linux с числом узлов 1.

Дополнительные сведения о пулах узлов см. в статье "Использование пулов узлов" в AKS.

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType Linux

Проверка развернутых кластеров

Чтобы получить список развернутых кластеров Kubernetes, выполните следующую команду Get-AksHciCluster PowerShell:

Get-AksHciCluster
ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

Чтобы получить список пулов узлов в кластере, выполните следующую команду Get-AksHciNodePool PowerShell:

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Шаг 7. Подключение кластера к Kubernetes с поддержкой Arc

Подключите кластер к Kubernetes с поддержкой Arc, выполнив команду Enable-AksHciArcConnection . В следующем примере кластер Kubernetes подключается к Arc с помощью сведений о подписке и группе ресурсов, переданных в команде Set-AksHciRegistration :

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

Примечание.

Если во время установки возникают проблемы или сообщения об ошибках, см . сведения об известных проблемах и ошибках установки.

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

Если необходимо увеличить или уменьшить масштаб кластера, можно изменить количество узлов плоскости управления с помощью команды Set-AksHciCluster . Чтобы изменить количество рабочих узлов Linux или Windows в пуле узлов, используйте команду Set-AksHciNodePool .

Чтобы масштабировать узлы плоскости управления, выполните следующую команду:

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

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

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

Примечание.

В предыдущих версиях AKS в Azure Local и Windows Server команда Set-AksHciCluster также использовалась для масштабирования рабочих узлов. Теперь, когда AKS вводит пулы узлов в кластерах рабочих нагрузок, эту команду можно использовать только для масштабирования рабочих узлов, если кластер был создан со старым набором параметров в New-AksHciCluster.

Чтобы масштабировать рабочие узлы в пуле узлов, используйте команду Set-AksHciNodePool .

Доступ к кластерам с помощью kubectl

Чтобы получить доступ к кластерам Kubernetes с помощью kubectl, выполните команду Get-AksHciCredential PowerShell. Это будет использовать файл kubeconfig указанного кластера в качестве файла kubeconfig по умолчанию для kubectl. Вы также можете использовать kubectl для развертывания приложений с помощью Helm:

Get-AksHciCredential -name mycluster

Удаление кластера Kubernetes

Чтобы удалить кластер Kubernetes, выполните следующую команду:

Remove-AksHciCluster -name mycluster

Примечание.

Убедитесь, что кластер удален, просматривая существующие виртуальные машины в диспетчере Hyper-V. Если они не удаляются, можно вручную удалить виртуальные машины. Затем выполните команду Restart-Service wssdagent. Выполните эту команду на каждом узле в отказоустойчивом кластере.

Получение журналов

Чтобы получить журналы из всех модулей pod, выполните команду Get-AksHciLogs . Эта команда создает выходную архивную папку, вызванную akshcilogs.zip в рабочем каталоге. Полный путь к папке akshcilogs.zip — это выходные данные после выполнения следующей команды:

Get-AksHciLogs

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

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