Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это руководство является частью трех серии и показывает, как развернуть приложение Service Fabric в кластере в Azure.
В третьей части цикла вы узнаете, как выполнять такие задачи:
- Создание защищенного кластера Linux в Azure
- Развертывание приложения в кластере
Из этого цикла руководств вы узнаете, как выполнять следующие задачи:
- Создание приложения Java Reliable Services для Service Fabric
- Развертывание и отладка приложения в локальном кластере.
- Развертывание приложения в кластере Azure
- Настройка мониторинга и диагностики приложения
- Настройте CI/CD
Предпосылки
Перед началом работы с этим руководством выполните следующие действия:
- Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
- Установка Azure CLI
- Установка пакета SDK Service Fabric для Mac или Linux
- Установка Python 3
Создание кластера Service Fabric в Azure
Ниже приведены действия по созданию необходимых ресурсов, необходимых для развертывания приложения в кластере Service Fabric. Кроме того, проводятся работы по настройке ресурсов, необходимых для мониторинга состояния вашего решения с использованием стека ELK (Elasticsearch, Logstash, Kibana). В частности, Центры событий используются в качестве приемника для журналов из Service Fabric. Он настроен для отправки журналов из кластера Service Fabric в экземпляр Logstash.
Откройте терминал и скачайте следующий пакет, содержащий необходимые вспомогательные скрипты и шаблоны для создания ресурсов в Azure.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.gitВход в учетную запись Azure
az loginЗадайте подписку Azure, которую вы хотите использовать для создания ресурсов
az account set --subscription [SUBSCRIPTION-ID]В папке service-fabric-java-quickstart/AzureCluster выполните следующую команду, чтобы создать сертификат кластера в Key Vault. Этот сертификат используется для защиты кластера Service Fabric. Укажите регион (должен совпадать с кластером Service Fabric), имя группы ресурсов хранилища ключей, имя хранилища ключей, пароль сертификата и DNS-имя кластера.
./new-service-fabric-cluster-certificate.sh [REGION] [KEY-VAULT-RESOURCE-GROUP] [KEY-VAULT-NAME] [CERTIFICATE-PASSWORD] [CLUSTER-DNS-NAME-FOR-CERTIFICATE] Example: ./new-service-fabric-cluster-certificate.sh 'westus' 'testkeyvaultrg' 'testkeyvault' '<password>' 'testservicefabric.westus.cloudapp.azure.com'Предыдущая команда возвращает следующие сведения, которые следует отметить для последующего использования.
Source Vault Resource Id: /subscriptions/<subscription_id>/resourceGroups/testkeyvaultrg/providers/Microsoft.KeyVault/vaults/<name> Certificate URL: https://<name>.vault.azure.net/secrets/<cluster-dns-name-for-certificate>/<guid> Certificate Thumbprint: <THUMBPRINT>Создание группы ресурсов для учетной записи хранения, в которой хранятся журналы
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name teststorageaccountrgСоздание учетной записи хранения, которая будет использоваться для хранения журналов, которые будут созданы
az storage account create -g [RESOURCE-GROUP-NAME] -l [REGION] --name [STORAGE-ACCOUNT-NAME] --kind Storage Example: az storage account create -g teststorageaccountrg -l westus --name teststorageaccount --kind StorageПерейдите на портал Azure и откройте вкладку Разделенная подпись доступа для вашей учетной записи хранилища. Создайте маркер SAS следующим образом.
Скопируйте URL-адрес SAS учетной записи и задайте его для использования при создании кластера Service Fabric. Он похож на следующий URL-адрес:
?sv=2017-04-17&ss=bfqt&srt=sco&sp=rwdlacup&se=2018-01-31T03:24:04Z&st=2018-01-30T19:24:04Z&spr=https,http&sig=IrkO1bVQCHcaKaTiJ5gilLSC5Wxtghu%2FJAeeY5HR%2BPU%3DСоздайте группу ресурсов, содержащую ресурсы Концентратора событий. Центры событий используются для отправки сообщений из Service Fabric на сервер, на котором выполняются ресурсы ELK.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name testeventhubsrgСоздайте ресурс Центров событий с помощью следующей команды. Следуйте инструкциям, чтобы ввести сведения об именах: "namespaceName", "eventHubName", "consumerGroupName", "sendAuthorizationRule" и "receiveAuthorizationRule".
az deployment group create -g [RESOURCE-GROUP-NAME] --template-file eventhubsdeploy.json Example: az deployment group create -g testeventhubsrg --template-file eventhubsdeploy.json Please provide string value for 'namespaceName' (? for help): testeventhubnamespace Please provide string value for 'eventHubName' (? for help): testeventhub Please provide string value for 'consumerGroupName' (? for help): testeventhubconsumergroup Please provide string value for 'sendAuthorizationRuleName' (? for help): sender Please provide string value for 'receiveAuthorizationRuleName' (? for help): receiverСкопируйте содержимое поля вывода в выходных данных JSON предыдущей команды. Сведения отправителя используются при создании кластера Service Fabric. Имя получателя и ключ должны быть сохранены для использования в следующем руководстве, когда служба Logstash настроена для получения сообщений из Концентратора событий. Следующий блок данных является примером выходных данных в формате JSON:
"outputs": { "receiver Key": { "type": "String", "value": "[KEY]" }, "receiver Name": { "type": "String", "value": "receiver" }, "sender Key": { "type": "String", "value": "[KEY]" }, "sender Name": { "type": "String", "value": "sender" } }Запустите скрипт eventhubssastoken.py , чтобы создать URL-адрес SAS для созданного ресурса EventHubs. Этот URL-адрес SAS используется кластером Service Fabric для отправки журналов в Центры событий. В результате политика отправителя используется для создания URL-адреса. Скрипт возвращает URL-адрес SAS для ресурса Центров событий, который используется на следующем шаге:
python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'Скопируйте значение поля sr в возвращенном формате JSON. Значение поля sr — это маркер SAS для EventHubs. Следующий URL-адрес является примером поля sr :
https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderURL-адрес SAS для EventHubs следует структуре:
https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>Например:https://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderОткройте файлsfdeploy.parameters.json и замените следующее содержимое из предыдущих шагов. [SAS-URL-STORAGE-ACCOUNT] было отмечено на восьмом этапе. [SAS-URL-EVENT-HUBS] было отмечено на шаге 11.
"applicationDiagnosticsStorageAccountName": { "value": "teststorageaccount" }, "applicationDiagnosticsStorageAccountSasToken": { "value": "[SAS-URL-STORAGE-ACCOUNT]" }, "loggingEventHubSAS": { "value": "[SAS-URL-EVENT-HUBS]" }Открываетсяsfdeploy.parameters.json. Измените следующие параметры и сохраните файл.
- clusterName. Используйте только строчные буквы и цифры.
- adminUserName (значение, отличное от пустого)
- adminPassword (значение, отличное от пустого)
Выполните следующую команду, чтобы создать кластер Service Fabric
az sf cluster create --location 'westus' --resource-group 'testlinux' --template-file sfdeploy.json --parameter-file sfdeploy.parameters.json --secret-identifier <certificate_url_from_step4>
Развертывание приложения в кластере
Перед развертыванием приложения необходимо добавить следующий фрагмент кода в файл Voting/VotingApplication/ApplicationManifest.xml . Поле X509FindValue — это отпечаток, возвращенный на четвертом шаге раздела Создание кластера Service Fabric в Azure. Этот фрагмент вложен в поле ApplicationManifest (корневое поле).
<Certificates> <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" /> </Certificates>Чтобы развернуть приложение в этом кластере, необходимо использовать SFCTL для установления подключения к кластеру. SFCTL требует PEM-файл с открытым и закрытым ключом для подключения к кластеру. Выполните следующую команду, чтобы создать PEM-файл с открытым и закрытым ключом.
openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>Выполните следующую команду для подключения к кластеру.
sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verifyЧтобы развернуть приложение, перейдите в папку Voting/Scripts и запустите скрипт install.sh .
./install.shЧтобы получить доступ к Service Fabric Explorer, откройте любимый браузер и введите
https://testlinuxcluster.westus.cloudapp.azure.com:19080. Выберите сертификат из хранилища сертификатов, который вы хотите использовать для подключения к этой конечной точке. При использовании компьютера Linux сертификаты, созданные скриптом new-service-fabric-cluster-certificate.sh , необходимо импортировать в Chrome, чтобы просмотреть Service Fabric Explorer. Если вы используете Mac, необходимо установить PFX-файл в цепочку ключей. Вы заметили, что приложение установлено в кластере.
Чтобы получить доступ к приложению, введите
https://testlinuxcluster.westus.cloudapp.azure.com:8080
Чтобы удалить приложение из кластера, запустите скрипт uninstall.sh в папке "Скрипты"
./uninstall.sh
Дальнейшие действия
Из этого руководства вы узнали, как:
- Создание защищенного кластера Linux в Azure
- Создание ресурсов, необходимых для мониторинга с помощью ELK
Перейдите к следующему уроку: