Развертывание контейнера Windows Server в кластере Служба Azure Kubernetes (AKS) с помощью портал Azure
Служба Azure Kubernetes (AKS) — это управляемая служба Kubernetes, которая позволяет быстро развертывать кластеры и управлять ими. В этой статье описано, как развернуть кластер AKS, на котором выполняются контейнеры Windows Server с помощью портал Azure. Затем вы развернете в кластере пример приложения ASP.NET, помещенный в контейнер Windows Server.
Примечание.
Чтобы приступить к быстрой подготовке кластера AKS, в этой статье содержатся действия по развертыванию кластера с параметрами по умолчанию только для оценки. Прежде чем развертывать готовый к работе кластер, рекомендуется ознакомиться с базовой эталонной архитектурой , чтобы понять, как она соответствует вашим бизнес-требованиям.
Подготовка к работе
В этом руководстве предполагается, что у вас есть некоторое представление о функциях Kubernetes. Дополнительные сведения см. в статье Ключевые концепции Kubernetes для службы Azure Kubernetes (AKS).
- Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- Если вы не знакомы с Azure Cloud Shell, см. статью Обзор Azure Cloud Shell.
- Убедитесь, что удостоверение, которое вы используете для создания кластера, имеет соответствующие минимальные разрешения. Дополнительные сведения о доступе и удостоверении для AKS см. в статье Возможности контроля доступа и идентификации в Службе Azure Kubernetes (AKS).
Создание кластера AKS
Войдите на портал Azure.
На домашней странице портала Azure выберите Создать ресурс.
В разделе "Категории" выберите контейнеры> Служба Azure Kubernetes (AKS).
На вкладке Основные сведения настройте следующие параметры:
- В разделе " Сведения о проекте":
- Выберите подписку Azure.
- Создайте группу ресурсов Azure, например myResourceGroup. Хотя вы можете выбрать существующую группу ресурсов для тестирования или оценки, рекомендуется создать группу ресурсов для временного размещения этих ресурсов и избежать влияния на рабочие нагрузки рабочей среды или разработки.
- В разделе "Сведения о кластере":
Задайте для предварительно настроенной конфигурации кластера значение "Стандартный". Подробные сведения о предустановленных конфигурациях см. в статье Предварительные конфигурации кластеров на портале Azure.
Введите Имя кластера Kubernetes, например myAKSCluster.
Выберите регион для кластера AKS.
Оставьте для параметра "Зоны доступности" значение None.
Оставьте параметр ценовой категории AKS стандартным.
Оставьте значение по умолчанию для версии Kubernetes.
Оставьте параметр автоматического обновления рекомендованным значением, которое включено с исправлением.
Оставьте параметр проверки подлинности и авторизации локальными учетными записями с помощью RBAC Kubernetes.
- В разделе " Сведения о проекте":
Выберите Далее. На вкладке пулов узлов добавьте новый пул узлов:
Выберите " Добавить пул узлов".
Введите имя пула узлов, например npwin. Для пула узлов Windows имя должно быть шесть символов или меньше.
В режиме выберите "Пользователь".
Для SKU ОС выберите Windows.
Оставьте для параметра "Зоны доступности" значение None.
Оставьте флажок "Включить экземпляры мест Azure" без флажка.
Для размера узла выберите размер. На странице "Выбор размера виртуальной машины" выберите D2s_v3, а затем нажмите кнопку "Выбрать".
Оставьте для параметра метода Scale значение Autoscale.
Оставьте поля "Минимальное число узлов" и "Максимальное число узлов" заданными параметрами по умолчанию.
Оставьте все параметры на других вкладках значениями по умолчанию.
Выберите "Проверка и создание", чтобы выполнить проверку в конфигурации кластера. После завершения проверки нажмите кнопку "Создать ", чтобы создать кластер AKS.
Создание кластера AKS займет несколько минут. Когда развертывание завершится, перейдите к этому ресурсу любым из следующих способов.
- Щелкните Переход к ресурсу.
- Либо перейдите к группе ресурсов кластера AKS и выберите ресурс AKS. В этом примере найдите myResourceGroup и выберите ресурс myAKSCluster.
Подключение к кластеру
Для управления кластерами Kubernetes используется kubectl, клиент командной строки Kubernetes. Если вы используете Azure Cloud Shell, kubectl
уже установлен. Если вы не знакомы с Cloud Shell, см. статью Обзор Azure Cloud Shell.
Откройте Cloud Shell, нажав
>_
кнопку в верхней части страницы портал Azure.Настройте в
kubectl
подключение к кластеру Kubernetes, выполнив команду az aks get-credentials. Следующая команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования;az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Проверьте подключение к кластеру с помощью
kubectl get nodes
команды, которая возвращает список узлов кластера.kubectl get nodes
В следующем примере выходных данных показаны все узлы в кластере. Убедитесь, что состояние всех узлов готово:
NAME STATUS ROLES AGE VERSION aks-agentpool-41946322-vmss000001 Ready agent 28h v1.27.7 aks-agentpool-41946322-vmss000002 Ready agent 28h v1.27.7 aks-npwin-41946322-vmss000000 Ready agent 28h v1.27.7 aks-userpool-41946322-vmss000001 Ready agent 28h v1.27.7 aks-userpool-41946322-vmss000002 Ready agent 28h v1.27.7
Развертывание приложения
Файл манифеста Kubernetes определяет требуемое состояние кластера, например образы контейнеров для запуска. В этом кратком руководстве вы используете файл манифеста для создания всех объектов, необходимых для запуска примера приложения ASP.NET в контейнере Windows Server. Этот файл манифеста включает развертывание Kubernetes для примера приложения ASP.NET и внешней службы Kubernetes для доступа к приложению из Интернета.
Пример приложения ASP.NET предоставляется в составе пакета примеров для .NET Framework и выполняется в контейнере Windows Server. AKS требует использовать контейнеры Windows Server на основе образов Windows Server 2019 или более поздней версии. Файл манифеста Kubernetes также должен определять средство выбора узла, чтобы кластер AKS выполнял pod этого примера приложения ASP.NET на узле с поддержкой контейнеров Windows Server.
Создайте файл с именем
sample.yaml
и вставьте его в следующее определение YAML.apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sample
Сведения о разбивке файлов манифеста YAML см. в разделе "Развертывания" и "Манифесты YAML".
Если вы создаете и сохраняете файл YAML локально, вы можете отправить файл манифеста в каталог по умолчанию в CloudShell, нажав кнопку "Отправить и скачать файлы " и выбрав файл из локальной файловой системы.
Разверните приложение с помощью команды kubectl apply и укажите имя манифеста YAML.
kubectl apply -f sample.yaml
В следующем примере выходных данных показано, что развертывание и служба успешно созданы:
deployment.apps/sample created service/sample created
Тестирование приложения
При запуске приложения Служба Kubernetes предоставляет внешний интерфейс приложения в Интернете. Процесс создания может занять несколько минут. Иногда служба может занять больше нескольких минут. До 10 минут для подготовки.
Проверьте состояние развернутых модулей pod с помощью команды kubectl get pods . Прежде чем продолжить, сделайте все модули pod
Running
.kubectl get pods
Ход выполнения можно отслеживать с помощью команды kubectl get service с аргументом
--watch
.kubectl get service sample --watch
Изначально выходные данные отображают внешний IP-адрес для примера службы в ожидании:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Когда значение EXTERNAL-IP изменится с состояния pending на фактический общедоступный IP-адрес, используйте команду
CTRL-C
, чтобы остановить процесс отслеживанияkubectl
. В следующем примере выходных данных показан допустимый общедоступный IP-адрес, назначенный службе:sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Просмотрите пример приложения в действии, открыв веб-браузер для внешнего IP-адреса службы.
Удаление ресурсов
Если вы не планируете использовать руководство ПО AKS, удалите кластер, чтобы избежать расходов На Azure.
На портале Azure перейдите к группе ресурсов.
Выберите команду Удалить группу ресурсов.
Введите имя группы ресурсов, чтобы подтвердить удаление и нажмите кнопку "Удалить".
В диалоговом окне "Удалить подтверждение" нажмите кнопку "Удалить".
Примечание.
Кластер AKS был создан с помощью назначаемого системой управляемого удостоверения (вариант удостоверения по умолчанию, используемый в этом кратком руководстве), удостоверение управляется платформой и не требует удаления.
Следующие шаги
В этом кратком руководстве вы развернули кластер Kubernetes, а затем развернули в нем пример приложения ASP.NET в контейнере Windows Server. Этот пример приложения предназначен только для демонстрационных целей и не представляет все рекомендации для приложений Kubernetes. Рекомендации по созданию полных решений с помощью AKS для рабочей среды см . в руководстве по решению AKS.
Дополнительные сведения об AKS и полный пример развертывания см. в руководстве по кластеру Kubernetes.
Azure Kubernetes Service