Использование Служба Azure Kubernetes в Azure Stack Hub с помощью CLI
Это руководство поможет вам приступить к работе со службой Служба Azure Kubernetes (AKS) в Azure Stack Hub. В этой статье описывается main набор сценариев для ознакомления с AKS в Azure Stack Hub. Функции, доступные в Azure Stack Hub, — это подмножество функций, доступных в глобальной среде Azure.
В следующих разделах вы узнаете:
- Выполните предварительные требования для использования AKS в Azure Stack Hub.
- Выполните операции жизненного цикла кластера AKS с помощью Azure CLI и пользовательского портала Azure Stack Hub.
Установка Azure CLI
Вам потребуется установить Azure CLI с поддержкой AKS для вашего компьютера. Подготовьте чистый компьютер Linux или Windows для установки предварительной версии Azure CLI с поддержкой AKS. Убедитесь, что на компьютере не установлен Интерфейс командной строки Azure, чтобы избежать конфликтов с предварительной версией Azure CLI, которую вы установите далее. В большинстве приведенных ниже инструкций предполагается, что вы используете виртуальную машину Linux, но вы можете найти аналогичные шаги в Windows в документации по продукту.
Не обновляйте Azure CLI после установки Azure CLI с поддержкой AKS. Если вы выполните обновление, оно будет заменено готовой к работе версией, которая не поддерживает AKS.
Для компьютера с Ubuntu следуйте инструкциям в статье Установка Azure CLI в Linux.
После установки Azure CLI с поддержкой AKS убедитесь, что установка выполнена правильно, выполнив следующую команду Azure CLI:
az --version
Это выходные данные компьютера Linux:
Azure CLI должен иметь версию 2.28.0 или более позднюю версию.
Подключение к Azure Stack Hub
Подключитесь к конечной точке Azure Stack Hub. Для установки конкретной среды Azure Stack Hub, к которой вы подключаетесь, необходимо использовать Azure CLI. Инструкции см. в статье Подключение к Azure Stack Hub.
Зарегистрируйте среду, чтобы Azure CLI смог подключиться к конечной точке azure Stack Hub Resource Manager для вашего экземпляра. Обновите URL-адреса в следующем фрагменте и выполните следующую команду:
az cloud register \ -n aks-preview-test \ --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \ --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \ --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
Настройте активную среду.
az cloud set -n aks-preview-test
Обновите конфигурацию среды.
az cloud update --profile 2020-09-01-hybrid
Подключитесь к среде.
az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
Примечание
Если вы активируете ошибку проверки сертификата, возможно, сертификат, используемый для конечной точки azure Resource Manager, не является доверенным для клиентского компьютера. В этом случае необходимо экспортировать сертификат, используемый в конечных точках Azure Stack Hub, и доверять ему. Инструкции см. в статье Экспорт корневого сертификата ЦС Azure Stack Hub.
В частности, для компьютеров Linux см. статью Идентификатор Microsoft Entra в Linux.
Задайте подписку в сеансе Azure CLI в качестве подписки по умолчанию с помощью следующих команд:
az account set --subscription <subscription-id>
Зарегистрируйте поставщик ресурсов Служба Azure Kubernetes. Перечислите доступные поставщики ресурсов в подписке.
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
Выходные данные должны выглядеть так:
Запишите поставщик ресурсов Microsoft.ContainerService , а затем зарегистрируйте его:
az provider register --namespace Microsoft.ContainerService
Повторите шаг 7, чтобы проверить состояние регистрации поставщика ресурсов. Регистрация может занять несколько минут.
После выполнения этих предварительных действий можно приступить к тестированию следующих сценариев.
Создание кластера AKS
Глобальные инструкции azure см. в статье Развертывание кластера Служба Azure Kubernetes с помощью Azure CLI. Приведенные здесь инструкции отражают ограничения использования AKS в Azure Stack Hub. Вы можете использовать Azure CLI для создания кластера AKS для контейнеров Linux или Windows.
Создайте группу ресурсов:
az group create --name myResourceGroup --location <Azure Stack Hub location>
Убедитесь, что у вас есть идентификатор субъекта-службы с участник разрешением на создание кластеров в подписке.
- Чтобы создать субъект-службу (SPN) с помощью идентификатора Microsoft Entra, следуйте этим инструкциям.
- Чтобы создать имя субъекта-службы с помощью федеративных служб Active Directory (AD FS), следуйте этим инструкциям.
- Чтобы назначить роль "Участник" имени субъекта-службы, см. инструкции. Обязательно выберите роль "Участник".
Создайте кластер AKS из трех узлов агента. Укажите значения для приведенных ниже параметров, приведены примеры. Выполните команду:
az aks create \ --resource-group myResourceGroup \ --name myakscluster \ --dns-name-prefix myakscluster \ --nodepool-name mynodepool \ --admin-username azureuser \ --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --node-count 3 \ --generate-ssh-keys \ --load-balancer-sku basic \ --vm-set-type VirtualMachineScaleSets \ --location <Azure Stack Hub location> \ --kubernetes-version 1.20.7
Выходные данные этой операции будут иметь формат JSON и содержать спецификацию кластера, включая созданное открытое доменное имя (FQDN), созданное в кластере, а также другие свойства. Обратите внимание, что команда выводит такой текст, как этот, с выделенным расположением закрытого ключа:
SSH key files '/home/azureuser/.ssh/id_rsa'
и'/home/azureuser/.ssh/id_rsa.pub'
были созданы в ,\~/.ssh
чтобы разрешить доступ по протоколу SSH к виртуальной машине. Храните эти ключи в безопасном расположении, чтобы их можно было использовать на случай, если потребуется выполнить SSH-подключение к виртуальным машинам, как это происходит при устранении неполадок.Теперь вы можете повторить тесты для масштабирования, развертывания приложения и удаления.
Подключение к кластеру
Управлять кластером Kubernetes можно c помощью kubectl, клиента командной строки Kubernetes. Чтобы установить kubectl локально, используйте команду az aks install-cli (вам может потребоваться использовать sudo в начале te, чтобы иметь разрешение на установку):
az aks install-cli
Чтобы настроить kubectl для подключения к кластеру Kubernetes, используйте
az aks get-credentials
команду . Эта команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования.az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
Чтобы проверить подключение к кластеру, используйте команду kubectl get, чтобы получить список узлов кластера.
kubectl get nodes
Изменение масштаба кластера
Другая задача управления кластером — масштабирование кластера. Вы можете масштабировать кластер в любое время после его создания с помощью команды az aks scale. Чтобы масштабировать кластер с первых трех узлов до 4, выполните следующую команду:
az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4
После успешного масштабирования кластера выходные данные будут содержать "agentPoolProfiles", аналогичный следующему примеру:
"agentPoolProfiles": [
{
"availabilityZones": null,
"count": 4,
"enableAutoScaling": null,
"enableNodePublicIp": false,
"maxCount": null,
"maxPods": 110,
"minCount": null,
"mode": "System",
"name": "mynodepool",
"nodeLabels": {},
"nodeTaints": null,
"orchestratorVersion": "1.20.7",
"osDiskSizeGb": 100,
"osType": "Linux",
"provisioningState": "Succeeded",
"scaleSetEvictionPolicy": null,
"scaleSetPriority": null,
"spotMaxPrice": null,
"tags": null,
"type": "VirtualMachineScaleSets",
"vmSize": " Standard_DS2_v2",
"vnetSubnetId": null
}
]
Удаление кластера
После выполнения предыдущих операций можно приступить к удалению кластера. Выполните команду:
az aks delete --name myakscluster --resource-group myResourceGroup
Создание кластера AKS с пользовательской виртуальной сетью
Создание кластера для развертывания в сети, предоставляемой пользователем, является распространенным сценарием. Планирование конфигурации сети требует некоторой подготовки. Кроме того, обратите внимание, что в AKS сетевым подключаемым модулем по умолчанию является Azure CNI, а не Kubenet, как в случае с обработчиком AKS. С помощью Azure CNI каждый модуль pod получает IP-адрес из подсети и может быть доступен напрямую (без необходимости в таблице маршрутизации, как в случае с Kubenet). Эти IP-адреса должны быть уникальными в сетевом пространстве и должны быть запланированы. В следующей статье описывается процесс планирования развертывания пользовательской виртуальной сети. Вы можете найти различные конфигурации сети, которые работают в соответствии с вашими потребностями, и протестировать их. Для начального теста два следующих шага покажут базовый процесс:
Следуйте инструкциям в этой статье , чтобы спланировать развертывание с помощью Azure CNI. Например, с помощью портала можно создать виртуальную сеть myAKSVnet с диапазоном IP-адресов 10.0.0.0/8 с подсетью myAKSSubnet и диапазоном IP-адресов 10.240.0.0/16 в группе ресурсов myTest-rg. Затем выполните следующий шаг для создания кластера.
az network vnet create \ --resource-group myTest-rg \ --name myAKSVnet \ --address-prefixes 10.0.0.0/8 \ --subnet-name myAKSSubnet \ --subnet-prefix 10.240.0.0/16
Обратите внимание, что команда кластера, приведенная в статье Azure, хорошо работает при развертывании в Azure Stack Hub. Для развертывания в Azure Stack Hub необходимо указать дополнительные параметры, как показано в следующем примере. Идентификатор подсети виртуальной сети должен выглядеть следующим образом: /subscriptions/dfdfdff-5dfdf-dfdf-dfdf-dfdfdfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet:
az aks create \ --resource-group myTest-rg \ --name aksvnet \ --dns-name-prefix aksvnet \ --nodepool-name mynodepool \ --admin-username azureuser \ --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8 \ --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \ --node-count 3 \ --generate-ssh-keys \ --load-balancer-sku basic \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azure \ --vnet-subnet-id '<subnet-resource-id>' \ --skip-subnet-role-assignment \ --docker-bridge-address 172.17.0.1/16 \ --dns-service-ip 10.0.0.10 \ --location redmond
Следуйте инструкциям в разделе "Подключение к кластеру", чтобы подключиться к кластеру Kubernetes и развернуть приложения.
Проверка согласованности
Проверка согласованности между Azure и Azure Stack Hub
- Выберите сочетание команд из проверенных выше, из раздела "Справочник по командам" ниже или из собственных повседневных сценариев.
- Примените их к Azure и более поздних версий в Azure Stack Hub. Обратите внимание на несоответствия, которые не ожидаются, и оставьте отзыв.