Развертывание приложения
В этой статье описывается развертывание контейнерного приложения в кластере 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
Шаг 4. Проверка служб
Чтобы отслеживать ход выполнения, используйте команду kubectl get services с параметром --watch
:
kubectl get services
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-адрес вашей службы.
Если приложение не загружается, это может быть связано с проблемой авторизации в реестре образов. Чтобы просмотреть состояние контейнеров, используйте команду 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
Шаг 3. Убедитесь, что пример службы запущен
kubectl get services
Так как этот пример развертывается как служба типа NodePort, можно получить IP-адрес узла Kubernetes, на котором выполняется приложение, а затем добавить порт NodePort. Получите IP-адрес узла Kubernetes с помощью следующей Get-AksEdgeNodeAddr
команды:
Get-AksEdgeNodeAddr -NodeType Windows
Шаг 4. Проверка работающего примера Windows
Откройте веб-браузер и найдите NodePort для доступа к службе:
Шаг 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