Бөлісу құралы:


Развертывание контейнера Windows Server в кластере Служба Azure Kubernetes (AKS) с помощью портал Azure

Служба Azure Kubernetes (AKS) — это управляемая служба Kubernetes, которая позволяет быстро развертывать кластеры и управлять ими. В этой статье описано, как развернуть кластер AKS, на котором выполняются контейнеры Windows Server с помощью портал Azure. Затем вы развернете в кластере пример приложения ASP.NET, помещенный в контейнер Windows Server.

Примечание.

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

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

В этом руководстве предполагается, что у вас есть некоторое представление о функциях Kubernetes. Дополнительные сведения см. в статье Ключевые концепции Kubernetes для службы Azure Kubernetes (AKS).

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

  1. Войдите на портал Azure.

  2. На домашней странице портала Azure выберите Создать ресурс.

  3. В разделе "Категории" выберите контейнеры> Служба Azure Kubernetes (AKS).

  4. На вкладке Основные сведения настройте следующие параметры:

    • В разделе " Сведения о проекте":
      • Подписка. Выберите подписку Azure, которую вы хотите использовать для этого кластера AKS.
      • Группа ресурсов: выберите "Создать", введите имя группы ресурсов, например myResourceGroup, а затем нажмите кнопку "ОК". Хотя вы можете выбрать существующую группу ресурсов для тестирования или оценки, рекомендуется создать группу ресурсов для временного размещения этих ресурсов и избежать влияния на рабочие нагрузки рабочей среды или разработки.
    • В разделе "Сведения о кластере":
      • Конфигурация предустановки кластера: выбор разработки и тестирования. Подробные сведения о предустановленных конфигурациях см. в статье Предварительные конфигурации кластеров на портале Azure.

        Примечание.

        Конфигурацию предустановки можно изменить при создании кластера, нажав кнопку "Сравнить предустановки " и выбрав другой вариант. Снимок экрана: создание кластера AKS — параметры предустановки портала.

      • Имя кластера Kubernetes: введите имя кластера, например myAKSCluster.

      • Регион: выберите регион, например восточная часть США 2.

      • Зоны доступности: выберите "Нет".

      • Ценовая категория AKS: выберите "Бесплатный".

      • Оставьте значения по умолчанию для остальных параметров и нажмите кнопку "Далее".

        Снимок экрана: настройка кластера AKS в портал Azure.

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

    • Выберите "Добавить пул узлов" и введите имя пула узлов, например npwin. Для пула узлов Windows имя должно быть шесть символов или меньше.

    • Режим: выбор пользователя.

    • SKU ОС: выберите Windows 2022.

    • Зоны доступности: выберите "Нет".

    • Оставьте флажок "Включить экземпляры мест Azure" без флажка.

    • Размер узла: выберите размер. На странице "Выбор размера виртуальной машины" выберите D2s_v3 и нажмите кнопку "Выбрать".

    • Оставьте значения по умолчанию для остальных параметров и нажмите кнопку "Добавить".

      Снимок экрана: создание пула узлов под управлением Windows Server 2022.

  6. Выберите "Проверка и создание", чтобы выполнить проверку в конфигурации кластера. После завершения проверки щелкните Создать.

    Создание кластера AKS займет несколько минут. По завершении развертывания перейдите к ресурсу, выбрав "Перейти к ресурсу" или перейдя в группу ресурсов кластера AKS и выбрав ресурс AKS.

Подключение к кластеру

Для управления кластерами Kubernetes используется kubectl, клиент командной строки Kubernetes. Если вы используете Azure Cloud Shell, kubectl уже установлен. Если вы не знакомы с Cloud Shell, см. статью Обзор Azure Cloud Shell.

  1. Откройте Cloud Shell, нажав >_ кнопку в верхней части страницы портал Azure.

  2. Настройте kubectl подключение к кластеру az aks get-credentials Kubernetes с помощью команды. Следующая команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования;

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Проверьте подключение к кластеру с помощью 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.

  1. Создайте файл с именем 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, нажав кнопку "Отправить и скачать файлы " и выбрав файл из локальной файловой системы.

  2. Разверните приложение с помощью kubectl apply команды и укажите имя манифеста YAML.

    kubectl apply -f sample.yaml
    

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

    deployment.apps/sample created
    service/sample created
    

Тестирование приложения

При запуске приложения Служба Kubernetes предоставляет внешний интерфейс приложения в Интернете. Процесс создания может занять несколько минут. Иногда служба может занять больше нескольких минут. До 10 минут для подготовки.

  1. Проверьте состояние развернутых модулей pod с помощью kubectl get pods команды. Прежде чем продолжить, сделайте все модули pod Running .

    kubectl get pods
    
  2. Отслеживайте ход выполнения с помощью команды с 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
    
  3. Когда значение EXTERNAL-IP изменится с состояния pending на фактический общедоступный IP-адрес, используйте команду CTRL-C, чтобы остановить процесс отслеживания kubectl.

  4. Просмотрите пример приложения в действии, открыв веб-браузер для внешнего IP-адреса службы.

    Снимок экрана: поиск примера приложения ASP.NET.

Удаление ресурсов

Если вы не планируете использовать руководство ПО AKS, удалите кластер, чтобы избежать расходов На Azure.

  1. На портале Azure перейдите к группе ресурсов.

  2. Выберите команду Удалить группу ресурсов.

  3. Введите имя группы ресурсов, чтобы подтвердить удаление и нажмите кнопку "Удалить".

  4. В диалоговом окне "Удалить подтверждение" нажмите кнопку "Удалить".

    Примечание.

    Кластер AKS был создан с помощью назначаемого системой управляемого удостоверения (вариант удостоверения по умолчанию, используемый в этом кратком руководстве), удостоверение управляется платформой и не требует удаления.

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

В этом кратком руководстве вы развернули кластер Kubernetes, а затем развернули в нем пример приложения ASP.NET в контейнере Windows Server. Этот пример приложения предназначен только для демонстрационных целей и не представляет все рекомендации для приложений Kubernetes. Рекомендации по созданию полных решений с помощью AKS для рабочей среды см . в руководстве по решению AKS.

Дополнительные сведения об AKS и полный пример развертывания см. в руководстве по кластеру Kubernetes.