Поделиться через


Развертывание приложения

В этой статье описывается развертывание контейнерного приложения в кластере Kubernetes.

Предварительные требования

Чтобы приступить к работе, настройте отдельный компьютер Kubernetes или полный кластер Kubernetes .

Развертывание примера приложения Linux

Шаг 1. Обновление файла манифеста

В этой статье используется пример приложения, который представляет собой простое приложение для голосования, состоящее из передней и серверной части, основанной на образе Microsoft azure-vote-front . Образ контейнера для этого приложения размещается в Реестр контейнеров Azure (ACR). Манифест развертывания см. в разделе linux-sample.yaml в пакете репозитория GitHub. В YAML мы указали nodeSelector тег Как Linux.

Шаг 2. Развертывание приложения

Чтобы развернуть приложение, используйте команду kubectl apply. Эта команда анализирует файл манифеста и создает заданные объекты Kubernetes. Укажите файл манифеста YAML, как показано в следующем примере:

kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Шаг 3. Проверка модулей pod

Подождите несколько минут, пока модули pod не будут находиться в состоянии выполнения :

kubectl get pods -o wide

Снимок экрана: запущенные модули pod Linux.

Шаг 4. Проверка служб

Чтобы отслеживать ход выполнения, используйте команду kubectl get services с параметром --watch :

kubectl get services

Снимок экрана: запущенные службы Linux.

EXTERNAL-IP Изначально для azure-vote-front службы отображается как pending. При изменении EXTERNAL-IP адреса с pending на фактический общедоступный IP-адрес можно использовать IP-адрес, назначенный службе.

Важно!

В кластерах с одним компьютером, если вы развернули кластер Kubernetes без указания -ServiceIPRangeSize, у вас не будет выделенных IP-адресов для служб рабочей нагрузки и внешнего IP-адреса. В этом случае найдите IP-адрес виртуальной машины Linux (Get-AksEdgeNodeAddr):

Get-AksEdgeNodeAddr -NodeType Linux

Теперь внешний порт можно добавить к IP-адресу виртуальной машины (например, 192.168.1.12:30432).

Шаг 5. Тестирование приложения

Чтобы увидеть приложение в действии, откройте в веб-браузере внешний IP-адрес вашей службы.

Снимок экрана: работающие приложения Linux.

Если приложение не загружается, это может быть связано с проблемой авторизации в реестре образов. Чтобы просмотреть состояние контейнеров, используйте команду kubectl get pods. Если образы контейнеров не удается получить, см. статью Проверка подлинности с помощью Реестр контейнеров Azure из Служба Azure Kubernetes.

Шаг 6. Удаление приложения

Для очистки удалите все ресурсы с помощью следующей команды:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Развертывание примера приложения Windows в кластере

В этом примере выполняется пример приложения ASP.NET на основе примера образа Майкрософт. См. раздел win-sample.yaml. YAML указывает nodeSelector тег как Windows.

Шаг 1. Развертывание приложения путем указания имени манифеста YAML

Убедитесь, что вы находитесь в каталоге YAML в окне PowerShell, а затем выполните следующую команду:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Шаг 2. Убедитесь, что пример pod запущен

Для достижения состояния выполнения модуля pod может потребоваться некоторое время в зависимости от вашего подключения к Интернету. Изображение ASP.NET большое:

kubectl get pods -o wide

Снимок экрана: запущенные модули pod Windows.

Шаг 3. Убедитесь, что пример службы запущен

kubectl get services

Снимок экрана: запущенные службы Windows.

Так как этот пример развертывается как служба типа NodePort, можно получить IP-адрес узла Kubernetes, на котором выполняется приложение, а затем добавить порт NodePort. Получите IP-адрес узла Kubernetes с помощью следующей Get-AksEdgeNodeAddrкоманды:

Get-AksEdgeNodeAddr -NodeType Windows

Снимок экрана, показывающий сведения о кластере Windows.

Шаг 4. Проверка работающего примера Windows

Откройте веб-браузер и найдите NodePort для доступа к службе:

Снимок экрана: работающее приложение для Windows.

Шаг 5. Очистка

Для очистки удалите все ресурсы с помощью следующей команды:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Развертывание собственных приложений

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

  • Упакуйте приложение в образ контейнера, а затем отправьте образ в Реестр контейнеров Azure или в реестр контейнеров по своему выбору. Выполните следующие действия, чтобы создать образ контейнера приложения.

  • Пограничный Essentials AKS включает кластеры смешанной ОС. Убедитесь, что модули pod запланированы на узлах с соответствующей ОС. Добавьте nodeSelector в файлы развертывания. Этот параметр указывает Kubernetes запускать модули pod на узлах определенной операционной системы (ОС). Если кластер является одной ОС, этот шаг можно пропустить. но рекомендуется пометить каждый файл развертывания с помощью селекторов узлов:

    nodeSelector:
        "kubernetes.io/os": linux
    
    nodeSelector:
        "kubernetes.io/os": windows
    

Дальнейшие действия