Руководство по .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.yaml
fsutil file createnew deploy.yaml 0
Затем вы можете открыть его в своем любимом текстовом редакторе.
Затем вы можете открыть его в своем любимом текстовом редакторе вручную или с помощью этой команды:
open deploy.yaml
start 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:
Вас также может заинтересовать...