Развертывание контейнера 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, которую вы хотите использовать для этого кластера AKS.
- Группа ресурсов: выберите "Создать", введите имя группы ресурсов, например myResourceGroup, а затем нажмите кнопку "ОК". Хотя вы можете выбрать существующую группу ресурсов для тестирования или оценки, рекомендуется создать группу ресурсов для временного размещения этих ресурсов и избежать влияния на рабочие нагрузки рабочей среды или разработки.
- В разделе "Сведения о кластере":
Конфигурация предустановки кластера: выбор разработки и тестирования. Подробные сведения о предустановленных конфигурациях см. в статье Предварительные конфигурации кластеров на портале Azure.
Имя кластера Kubernetes: введите имя кластера, например myAKSCluster.
Регион: выберите регион, например восточная часть США 2.
Зоны доступности: выберите "Нет".
Ценовая категория AKS: выберите "Бесплатный".
Оставьте значения по умолчанию для остальных параметров и нажмите кнопку "Далее".
- В разделе " Сведения о проекте":
На вкладке пулов узлов настройте следующие параметры:
Выберите "Добавить пул узлов" и введите имя пула узлов, например npwin. Для пула узлов Windows имя должно быть шесть символов или меньше.
Режим: выбор пользователя.
SKU ОС: выберите Windows 2022.
Зоны доступности: выберите "Нет".
Оставьте флажок "Включить экземпляры мест Azure" без флажка.
Размер узла: выберите размер. На странице "Выбор размера виртуальной машины" выберите D2s_v3 и нажмите кнопку "Выбрать".
Оставьте значения по умолчанию для остальных параметров и нажмите кнопку "Добавить".
Выберите "Проверка и создание", чтобы выполнить проверку в конфигурации кластера. После завершения проверки щелкните Создать.
Создание кластера AKS займет несколько минут. По завершении развертывания перейдите к ресурсу, выбрав "Перейти к ресурсу" или перейдя в группу ресурсов кластера AKS и выбрав ресурс AKS.
Подключение к кластеру
Для управления кластерами Kubernetes используется kubectl, клиент командной строки Kubernetes. Если вы используете Azure Cloud Shell, kubectl
уже установлен. Если вы не знакомы с Cloud Shell, см. статью Обзор Azure Cloud Shell.
Откройте Cloud Shell, нажав
>_
кнопку в верхней части страницы портал Azure.Настройте
kubectl
подключение к кластеруaz aks get-credentials
Kubernetes с помощью команды. Следующая команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования;az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Проверьте подключение к кластеру с помощью
kubectl get nodes
команды, которая возвращает список узлов кластера.kubectl get nodes
В следующем примере выходных данных показаны все узлы в кластере. Убедитесь, что состояние всех узлов готово:
NAME STATUS ROLES AGE VERSION aks-agentpool-11741175-vmss000000 Ready agent 8m17s v1.29.9 aks-agentpool-11741175-vmss000001 Ready agent 8m17s v1.29.9 aksnpwin000000 Ready agent 8m17s v1.29.9 aks-userpool-11741175-vmss000000 Ready agent 8m17s v1.29.9 aks-userpool-11741175-vmss000001 Ready agent 8m17s v1.29.9
Развертывание приложения
Файл манифеста Kubernetes определяет требуемое состояние кластера, например образы контейнеров для запуска. В этом кратком руководстве вы используете файл манифеста для создания всех объектов, необходимых для запуска примера приложения ASP.NET в контейнере Windows Server. Этот файл манифеста включает развертывание Kubernetes для примера приложения ASP.NET и внешней службы Kubernetes для доступа к приложению из Интернета.
Пример приложения ASP.NET предоставляется в составе пакета примеров для .NET Framework и выполняется в контейнере Windows Server. Файл манифеста 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
команды. Прежде чем продолжить, сделайте все модули podRunning
.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-адреса службы.
Удаление ресурсов
Если вы не планируете использовать руководство ПО AKS, удалите кластер, чтобы избежать расходов На Azure.
На портале Azure перейдите к группе ресурсов.
Выберите команду Удалить группу ресурсов.
Введите имя группы ресурсов, чтобы подтвердить удаление и нажмите кнопку "Удалить".
В диалоговом окне "Удалить подтверждение" нажмите кнопку "Удалить".
Примечание.
Кластер AKS был создан с помощью назначаемого системой управляемого удостоверения (вариант удостоверения по умолчанию, используемый в этом кратком руководстве), удостоверение управляется платформой и не требует удаления.
Следующие шаги
В этом кратком руководстве вы развернули кластер Kubernetes, а затем развернули в нем пример приложения ASP.NET в контейнере Windows Server. Этот пример приложения предназначен только для демонстрационных целей и не представляет все рекомендации для приложений Kubernetes. Рекомендации по созданию полных решений с помощью AKS для рабочей среды см . в руководстве по решению AKS.
Дополнительные сведения об AKS и полный пример развертывания см. в руководстве по кластеру Kubernetes.
Azure Kubernetes Service