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


Развертывание контейнера 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.
      • Создайте группу ресурсов Azure, например myResourceGroup. Хотя вы можете выбрать существующую группу ресурсов для тестирования или оценки, рекомендуется создать группу ресурсов для временного размещения этих ресурсов и избежать влияния на рабочие нагрузки рабочей среды или разработки.
    • В разделе "Сведения о кластере":
      • Задайте для предварительно настроенной конфигурации кластера значение "Стандартный". Подробные сведения о предустановленных конфигурациях см. в статье Предварительные конфигурации кластеров на портале Azure.

        Примечание.

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

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

      • Выберите регион для кластера AKS.

      • Оставьте для параметра "Зоны доступности" значение None.

      • Оставьте параметр ценовой категории AKS стандартным.

      • Оставьте значение по умолчанию для версии Kubernetes.

      • Оставьте параметр автоматического обновления рекомендованным значением, которое включено с исправлением.

      • Оставьте параметр проверки подлинности и авторизации локальными учетными записями с помощью RBAC Kubernetes.

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

  5. Выберите Далее. На вкладке пулов узлов добавьте новый пул узлов:

    • Выберите " Добавить пул узлов".

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

    • В режиме выберите "Пользователь".

    • Для SKU ОС выберите Windows.

    • Оставьте для параметра "Зоны доступности" значение None.

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

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

    • Оставьте для параметра метода Scale значение Autoscale.

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

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

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

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

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

  • Щелкните Переход к ресурсу.
  • Либо перейдите к группе ресурсов кластера AKS и выберите ресурс AKS. В этом примере найдите myResourceGroup и выберите ресурс myAKSCluster.

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

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

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

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

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

  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
    

    Когда значение EXTERNAL-IP изменится с состояния pending на фактический общедоступный IP-адрес, используйте команду CTRL-C, чтобы остановить процесс отслеживания kubectl. В следующем примере выходных данных показан допустимый общедоступный IP-адрес, назначенный службе:

    sample  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m
    
  3. Просмотрите пример приложения в действии, открыв веб-браузер для внешнего IP-адреса службы.

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

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

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

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

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

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

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

    Примечание.

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

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

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

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