Руководство. Развертывание кластера рабочей нагрузки в AKS с поддержкой Arc

Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server

Kubernetes предоставляет распределенную платформу для контейнерных приложений.

В этом руководстве, часть 3 из семи, кластер Kubernetes развертывается в AKS в Azure Stack HCI. Вы узнаете, как:

  • Развертывание кластера AKS в Azure Stack HCI
  • Установка интерфейса командной строки Kubernetes (kubectl).
  • Настройка kubectl для подключения к кластеру рабочей нагрузки

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

Перед началом

В предыдущих руководствах образ контейнера был создан и передан в экземпляр реестра контейнеров Azure. Если вы еще не выполнили эти действия, перейдите к руководству 1. Создание образов контейнеров.

В этом руководстве используется модуль PowerShell AksHci.

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

Примечание

Если вы используете удаленный PowerShell, необходимо использовать CredSSP.

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

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

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

  2. Установите модуль PowerShell AKS-HCI, выполнив следующую команду на всех узлах в кластере Azure Stack HCI или 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 Kubernetes

Сначала настройте параметры регистрации.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Эти значения необходимо настроить в соответствии с подпиской Azure и именем группы ресурсов.

Затем выполните следующую команду, чтобы убедиться, что для установки AKS в Azure Stack HCI выполнены все требования к каждому физическому узлу:

Initialize-AksHciNode

Затем создайте виртуальную сеть. Вам потребуются имена доступных внешних коммутаторов:

Get-VMSwitch

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

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

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

$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -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

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

Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" 

Теперь все готово к установке узла AKS:

Install-AksHCi

Создание кластера Kubernetes

Создайте кластер Kubernetes с помощью команды New-AksHciCluster. В следующем примере создается кластер с одним mycluster пулом узлов Linux с именем linuxnodepool, число узлов которого — 1:

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

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

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

Примечание

Если вы используете новые наборы параметров в New-AksHciCluster для развертывания кластера, а затем выполните команду Get-AksHciCluster , чтобы получить сведения о кластере, поля WindowsNodeCount и LinuxNodeCount в выходных данных возвращают .0 Чтобы получить точное количество узлов в каждом пуле узлов, используйте команду Get-AksHciNodePool с указанным именем кластера.

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

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

Установка интерфейса командной строки Kubernetes

Чтобы подключиться к кластеру Kubernetes с локального компьютера, используйте kubectl, клиент командной строки Kubernetes.

Подключение к кластеру с помощью kubectl

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

Get-AksHciCredential -name mycluster

Чтобы проверить подключение к кластеру, используйте команду kubectl get nodes для получения списка узлов кластера.

kubectl get nodes
NAME              STATUS   ROLES                  AGE     VERSION
moc-lbs6got5dqo   Ready    <none>                 6d20h   v1.20.7
moc-lel7tzxdt30   Ready    control-plane,master   6d20h   v1.20.7

Дальнейшие действия

В этом руководстве вы развернули кластер Kubernetes в AKS и настроили kubectl для подключения к нему. Вы ознакомились с выполнением следующих задач:

  • Развертывание кластера AKS в Azure Stack HCI
  • Установка интерфейса командной строки Kubernetes (kubectl).
  • Настройка kubectl для подключения к кластеру AKS.

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