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


Краткое руководство по быстрому началу: Развертывание контейнеров Linux в среде Service Fabric

Azure Service Fabric — это платформа распределенных систем для развертывания масштабируемых и надежных микрослужб и контейнеров и управления ими.

В этом кратком руководстве показано, как развернуть контейнеры Linux в кластере Service Fabric в Azure. После завершения у вас есть приложение для голосования, состоящее из веб-интерфейса Python и серверной части Redis, работающей в кластере Service Fabric. Вы также узнаете, как выполнить отработку отказа приложения и как масштабировать приложение в кластере.

Веб-страница приложения для голосования

Предпосылки

Чтобы завершить этот ускоренный курс:

  1. Создайте бесплатную учетную запись Azure перед началом работы, если у вас нет подписки.

  2. Установка Azure CLI

  3. Установите Service Fabric SDK и CLI

  4. Установка Git

Получение пакета приложения

Чтобы развернуть контейнеры в Service Fabric, вам потребуется набор файлов манифеста (определение приложения), описывающих отдельные контейнеры и приложение.

В консоли используйте git для клонирования определения приложения; затем перейдите в каталог Voting внутри вашего клона.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

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

Чтобы развернуть приложение в Azure, потребуется кластер Service Fabric для запуска приложения. Следующие команды создают кластер с пятью узлами в Azure. Команды также создают самозаверяющий сертификат, добавляют его в хранилище ключей и загружают сертификат локально. Новый сертификат используется для защиты кластера при развертывании и используется для проверки подлинности клиентов.

Если вы хотите, можно изменить значения переменной в предпочтениях. Например, «westus» вместо «eastus» для местоположения.

Примечание.

Имена хранилища ключей должны быть универсальными, так как они доступны как https://{vault-name}.vault.azure.net.

#!/bin/bash

# Variables
ResourceGroupName='containertestcluster' 
ClusterName='containertestcluster' 
Location='eastus' 
Password='q6D7nN%6ck@6' 
Subject='containertestcluster.eastus.cloudapp.azure.com' 
VaultName='containertestvault' 
VmPassword='Mypa$$word!321'
VmUserName='sfadminuser'

# Login to Azure and set the subscription
az login

az account set --subscription <mySubscriptionID>

# Create resource group
az group create --name $ResourceGroupName --location $Location 

# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certificate in the key vault. The certificate's subject name must match 
# the domain that you use to access the Service Fabric cluster.  The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1804 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName

Примечание.

Служба веб-интерфейса настроена для прослушивания порта 80 для входящего трафика. По умолчанию порт 80 открыт на виртуальных машинах кластера и подсистеме балансировки нагрузки Azure.

Настройка вашей среды

Service Fabric предоставляет несколько средств, которые можно использовать для управления кластером и его приложениями:

  • Service Fabric Explorer— средство на основе браузера.
  • Интерфейс командной строки Service Fabric (CLI), который выполняется поверх Azure CLI.
  • команды PowerShell.

В этом кратком руководстве вы используете интерфейс командной строки Service Fabric и Service Fabric Explorer (веб-средство). Чтобы использовать Service Fabric Explorer, необходимо импортировать PFX-файл сертификата в браузер. По умолчанию PFX-файл не имеет пароля.

Mozilla Firefox — это браузер по умолчанию в Ubuntu 18.04. Чтобы импортировать сертификат в Firefox, нажмите кнопку меню в правом верхнем углу браузера, а затем нажмите кнопку "Параметры". На странице "Параметры" используйте поле поиска для поиска "сертификаты". Щелкните "Просмотреть сертификаты", перейдите на вкладку " Сертификаты " и нажмите кнопку "Импорт " и следуйте инструкциям по импорту сертификата.

Установка сертификата в Firefox

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

  1. Подключитесь к кластеру Service Fabric в Azure с помощью интерфейса командной строки. Конечная точка — это конечная точка управления для кластера. Вы создали PEM-файл в предыдущем разделе.

    sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
    
  2. Используйте скрипт инсталляции, чтобы скопировать определение приложения Voting в кластер, зарегистрировать тип приложения в системе и создать экземпляр приложения. Файл сертификата PEM должен находиться в том же каталоге, что и файл install.sh .

    ./install.sh
    
  3. Откройте веб-браузер и перейдите к конечной точке Service Fabric Explorer для кластера. Конечная точка имеет следующий формат: https://<my-azure-service-fabric-cluster-url>:19080/Explorer; https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorerнапример.

  4. Разверните узел "Приложения", чтобы увидеть, что теперь есть запись для типа приложения "Voting" и созданного вами экземпляра.

    Обозреватель Service Fabric

  5. Чтобы подключиться к работающему контейнеру, откройте веб-браузер и перейдите по URL-адресу кластера; например, http://containertestcluster.eastus.cloudapp.azure.com:80. Приложение Voting должно отображаться в браузере.

    Веб-страница приложения для голосования

Примечание.

Вы также можете развернуть приложения Service Fabric с помощью Docker Compose. Например, следующая команда может использоваться для развертывания и установки приложения в кластере с помощью Docker Compose.

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

Отработка отказа контейнера в кластере

Service Fabric гарантирует, что экземпляры контейнеров автоматически перемещаются на другие узлы в кластере, если происходит сбой. Вы также можете вручную освободить узел от контейнеров и перемещать их без прерываний на другие узлы в кластере. Service Fabric предоставляет несколько способов масштабирования служб. В следующих шагах используется Service Fabric Explorer.

Чтобы выполнить переключение на резервный контейнер фронтенда, выполните следующие действия.

  1. Откройте Service Fabric Explorer в кластере; например, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  2. Щелкните узел fabric:/Voting/azurevotefront в представлении дерева и разверните узел секции (представленный GUID). Обратите внимание на имя узла в представлении дерева, в котором показаны узлы, на которых в данный момент запущен контейнер; например, _nodetype_1.

  3. Разверните узел Nodes в древовидном представлении. Щелкните многоточие (...) рядом с узлом, на котором работает контейнер.

  4. Выберите "Перезапустить", чтобы перезапустить этот узел и подтвердить действие перезапуска. Перезапуск приводит к переключению контейнера на другой узел в кластере.

    Представление узла в Service Fabric Explorer

Масштабирование приложений и служб в кластере

Службы Service Fabric можно легко масштабировать в кластере, чтобы обеспечить нагрузку на службы. Масштабируйте службу, изменив количество экземпляров, работающих в кластере.

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

  1. Откройте Service Fabric Explorer в кластере; например,https://containertestcluster.eastus.cloudapp.azure.com:19080

  2. Щелкните многоточие (три точки) рядом с структурой:/Voting/azurevotefront node в представлении дерева и выберите службу масштабирования.

    Запуск службы масштабирования Service Fabric Explorer

    Теперь вы можете выбрать масштабирование числа экземпляров веб-фронтенд-сервиса.

  3. Измените число на 2 и щелкните "Масштабировать службу".

  4. Щелкните узел fabric:/Voting/azurevotefront в представлении дерева и откройте раздел узла (представленный GUID).

    Масштабирование службы Service Fabric Explorer завершено

    Теперь вы можете увидеть, что у службы имеется два экземпляра. В представлении дерева вы можете увидеть, на каких узлах выполняются экземпляры.

С помощью этой простой задачи управления вы удвоили ресурсы, доступные для интерфейсной службы для обработки пользовательской нагрузки. Важно понимать, что для надежной работы службы не требуется несколько её экземпляров. Если служба завершается ошибкой, Service Fabric гарантирует непрерывную работу нового экземпляра службы в кластере.

Очистка ресурсов

Используйте скрипт удаления (uninstall.sh), предоставленный в шаблоне, чтобы удалить экземпляр приложения из кластера и отменить регистрацию типа приложения. Этот скрипт занимает некоторое время для очистки экземпляра, поэтому не следует запускать скрипт установки сразу после этого скрипта. С помощью Service Fabric Explorer можно определить, был ли удален экземпляр, и тип приложения не зарегистрирован.

./uninstall.sh

Самый простой способ удалить кластер и все используемые ресурсы — удалить группу ресурсов.

Войдите в Azure и выберите идентификатор подписки, с помощью которого требуется удалить кластер. Идентификатор подписки можно найти, войдите на портал Azure. Удалите группу ресурсов и все ресурсы кластера с помощью команды az group delete.

az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName

Если вы завершите работу с кластером, вы можете удалить сертификат из хранилища сертификатов. Рассмотрим пример.

  • В Windows: используйте оснастку MMC сертификатов. При добавлении оснастки обязательно выберите учетную запись "Мой пользователь ". Перейдите к Certificates - Current User\Personal\Certificates сертификату и удалите его.
  • В Mac: используйте приложение "Цепочка ключей".
  • В Ubuntu выполните действия, которые вы использовали для просмотра сертификатов и удаления сертификата.

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

В этом кратком вводном руководстве вы развернули приложение контейнера Linux в кластере Service Fabric в Azure, выполнили переключение на резерв в приложении и масштабировали приложение в кластере. Дополнительные сведения о работе с контейнерами Linux в Service Fabric см. в руководстве по приложениям контейнеров Linux.