Руководство по .NET: развертывание микрослужбы в Azure
Введение
Цель
Узнайте, как развертывать микрослужбы, созданные с помощью .NET и Docker, в Microsoft Azure.
Обязательные требования
Требуется. В этом руководстве используется приложение, созданное в руководстве Ваша первая микрослужба.
Обязательно: аккаунт Docker Hub.
Время завершения
15-20 минут
Сценарий
Возьмите ранее созданную микрослужбу и разверните ее в Azure с помощью DockerHub и службы Azure Kubernetes (AKS).
Отправить в Docker Hub
Docker Hub — это центральное место для загрузки образов Docker. Многие продукты, включая Microsoft Azure, могут создавать контейнеры на основе образов в Docker Hub.
Войдите в Docker Hub
В командной строке выполните следующую команду:
В терминале выполните следующую команду:
docker loginИспользуйте имя пользователя и пароль, созданные при загрузке Docker в предыдущем руководстве. Вы можете посетить веб-сайт Docker Hub, чтобы при необходимости сбросить пароль.
Загрузить образ в Docker Hub
Повторно пометьте (переименуйте) образ Docker под своим именем пользователя и отправьте его в Docker Hub, выполнив следующие команды:
docker tag mymicroservice [YOUR DOCKER USERNAME]/mymicroservice
docker push [YOUR DOCKER USERNAME]/mymicroserviceКоманда push загрузит ваш образ в Docker Hub, что может занять некоторое время.
Настройка инструментов Azure
Создание учетной записи Azure
Если вы новичок в Azure, вы можете создать бесплатную учетную запись. Если у вас есть существующая учетная запись, вы можете пропустить этот шаг.
Создать бесплатную учетную запись AzureУстановите интерфейс командной строки Azure
Azure CLI предоставляет инструменты для управления вашей учетной записью Azure.
Войти в Azure
После установки откройте командную строку new и войдите в свою учетную запись Azure, выполнив следующую команду:
После установки откройте терминал new и войдите в свою учетную запись Azure, выполнив следующую команду:
az loginУстановить CLI AKS
Kubernetes — это платформа для оркестрации контейнеров. Оркестратор отвечает за запуск, распространение, масштабирование и восстановление приложений, состоящих из набора контейнеров. Служба Azure Kubernetes (AKS) предоставляет Kubernetes как управляемую службу.
Выполните следующую команду, чтобы установить инструменты командной строки для AKS:
az aks install-cliВы можете быть предупреждены рекомендациями по установке системных переменных PATH. Это не требуется для этого урока.
Создание ресурсов Azure
Создать группу ресурсов
Группа ресурсов используется для организации набора ресурсов, связанных с одним приложением.
Выполните следующую команду, чтобы создать группу ресурсов в западной части США:
az group create --name MyMicroserviceResources --location westusЕсли вы хотите использовать другое местоположение в предыдущей команде, вы можете запустить следующую команду, чтобы увидеть, какие регионы доступны в вашей учетной записи, и выбрать ближайший к вам регион:
az account list-locations -o tableЕсли вы хотите использовать другую подписку для сеанса, вы можете получить список всех подписок, выполнив следующую команду:
az account list --allЗатем выполните следующую команду, чтобы настроить определенную подписку для сеанса:
az account set -s NAME_OR_IDСоздание кластера AKS
Выполните следующую команду, чтобы создать кластер AKS в группе ресурсов:
Выполнение этой команды обычно занимает несколько минут.
az aks create --resource-group MyMicroserviceResources --name MyMicroserviceCluster --node-count 1 --enable-addons http_application_routing --generate-ssh-keysЧтобы загрузить учетные данные для развертывания в кластере AKS, выполните следующую команду:
az aks get-credentials --resource-group MyMicroserviceResources --name MyMicroserviceClusterРазвертывание в Azure
Вернуться в каталог приложений
Поскольку вы открыли новую командную строку на предыдущем шаге, вам нужно вернуться в каталог, в котором вы создали свой сервис.
Поскольку вы открыли новый терминал на предыдущем шаге, вам нужно вернуться в каталог, в котором вы создали свой сервис.
cd MyMicroserviceСоздание файла развертывания
Средства AKS используют файл .yaml, чтобы определить, как развертывать контейнер.
Создайте файл с именем deploy.yaml с помощью этой команды:
touch deploy.yamlfsutil file createnew deploy.yaml 0Затем вы можете открыть его в своем любимом текстовом редакторе.
Затем вы можете открыть его в своем любимом текстовом редакторе вручную или с помощью этой команды:
open deploy.yamlstart deploy.yamlВ текстовом редакторе измените файл deploy.yaml заменив слова [YOUR DOCKER ID] своим настоящим идентификатором Docker.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mymicroservice
spec:
replicas: 1
template:
metadata:
labels:
app: mymicroservice
spec:
containers:
- name: mymicroservice
image: [YOUR DOCKER ID]/mymicroservice:latest
ports:
- containerPort: 80
env:
- name: ASPNETCORE_URLS
value: http://*:80
selector:
matchLabels:
app: mymicroservice
---
apiVersion: v1
kind: Service
metadata:
name: mymicroservice
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: mymicroserviceЗапустить развертывание
Выполните следующую команду, чтобы развернуть микрослужбу на основе настроек в deploy.yaml:
kubectl apply -f deploy.yamlПротестируйте развернутую службу
Выполните следующую команду, чтобы просмотреть сведения о развернутой службе:
kubectl get service mymicroservice --watchПомимо прочего, предыдущая команда выведет внешний IP-адрес, на котором доступна ваша служба (EXTERNAL-IP).
Используя внешний IP-адрес, откройте новое окно браузера и перейдите к http://[ВАШ ВНЕШНИЙ IP-АДРЕС]/weatherforecast
Если EXTERNAL-IP помечен как <pending>, после выделения внешнего IP-адреса автоматически появится новая строка.
Нажмите CTRL+C в командной строке, чтобы завершить команду kubectl get service.
Нажмите CTRL+C на своем терминале, чтобы завершить команду kubectl get service.
Поздравляем! Вы развернули микрослужбу в Azure.
Масштабируйте свой сервис
Преимущество использования Kubernetes заключается в том, что вы можете легко масштабировать развертывание до нескольких экземпляров для обработки дополнительной нагрузки. В настоящее время существует только один экземпляр, поэтому давайте расширимся до двух экземпляров.
Чтобы масштабировать службу до двух экземпляров, выполните следующую команду:
kubectl scale --replicas=2 deployment/mymicroserviceОчистить ресурсы
Когда вы закончите тестирование микросервиса, вы можете удалить все созданные вами ресурсы с помощью следующей команды:
az group delete -n MyMicroserviceResourcesСледующие шаги
Следующие ресурсы помогут вам продолжить изучение микросервисов с .NET.
Микрослужбы для начинающих
Позвольте Nish познакомить вас с концепциями микросервисов и узнать, как создать свою первую конечную точку микросервисов в .NET:
Вас также может заинтересовать...