Tutorial de .NET | Implementar un microservicio en Azure
Introducción
Propósito
Aprenda a implementar microservicios, compilados con .NET y Docker, para Microsoft Azure.
Requisitos previos
Requerido: En este tutorial se usa la aplicación creada en el tutorial Su primer microservicio.
Requerido: Cuenta de Docker Hub.
Tiempo para completar
15-20 minutos
Escenario
Tome un microservicio creado anteriormente e impleméntelo en Azure mediante DockerHub y Azure Kubernetes Service (AKS).
Insertar en Docker Hub
Docker Hub es un lugar central para cargar imágenes de Docker. Muchos productos, incluido Microsoft Azure, pueden crear contenedores basados en imágenes en Docker Hub.
Iniciar sesión en Docker Hub
En el símbolo del sistema, ejecute el siguiente comando:
En el terminal, ejecute el siguiente comando:
docker loginUse el nombre de usuario y la contraseña creados al descargar Docker en el tutorial anterior. Puede visitar el sitio web de Docker Hub para restablecer la contraseña si es necesario.
Cargar imagen en Docker Hub
Vuelva a etiquetar (cambiar el nombre) de la imagen de Docker con el nombre de usuario e insértela en Docker Hub mediante los siguientes comandos:
docker tag mymicroservice [YOUR DOCKER USERNAME]/mymicroservice
docker push [YOUR DOCKER USERNAME]/mymicroserviceEl comando push cargará la imagen en Docker Hub, lo que puede tardar algún tiempo.
Configurar herramientas de Azure
Creación de una cuenta de Azure
Si no está familiarizado con Azure, puede crear una cuenta gratuita. Si tiene una cuenta existente, puede omitir este paso.
Crear una cuenta de Azure gratisInstalar la CLI de Azure
El CLI de Azure proporciona herramientas para administrar la cuenta de Azure.
Iniciar sesión en Azure
Una vez instalado, abra un nuevo símbolo del sistema e inicie sesión en su cuenta de Azure mediante la ejecución del siguiente comando:
Una vez instalado, abra un terminal nuevo e inicie sesión en su cuenta de Azure mediante la ejecución del siguiente comando:
az loginInstalar AKS CLI
Kubernetes es una plataforma de organización de contenedores. Un orquestador es responsable de ejecutar, distribuir, escalar y reparar aplicaciones compuestas por una colección de contenedores. Azure Kubernetes Service (AKS) proporciona Kubernetes como un servicio administrado.
Ejecute el siguiente comando para instalar las herramientas de línea de comandos para AKS:
az aks install-cliEs posible que se le avise con recomendaciones para establecer las variables PATH del sistema. No son necesarias para este tutorial.
Crear recursos de Azure
Crear un grupo de recursos
Un grupo de recursos se utiliza para organizar un conjunto de recursos relacionados con una sola aplicación.
Ejecute el siguiente comando para crear un grupo de recursos en la región Oeste de EE. UU.:
az group create --name MyMicroserviceResources --location westusSi desea usar una ubicación diferente en el comando anterior, puede ejecutar el siguiente comando para ver qué regiones están disponibles en su cuenta y elegir una más cercana:
az account list-locations -o tableSi desea usar otra suscripción para la sesión, puede obtener una lista de todas las suscripciones ejecutando el siguiente comando:
az account list --allA continuación, puede ejecutar el siguiente comando para establecer una suscripción específica para la sesión:
az account set -s NAME_OR_IDCrear un clúster de AKS
Ejecute el siguiente comando para crear un clúster de AKS en el grupo de recursos:
Es normal que este comando tarde varios minutos en completarse.
az aks create --resource-group MyMicroserviceResources --name MyMicroserviceCluster --node-count 1 --enable-addons http_application_routing --generate-ssh-keysEjecute el siguiente comando para descargar las credenciales que se van a implementar en el clúster de AKS:
az aks get-credentials --resource-group MyMicroserviceResources --name MyMicroserviceClusterImplementar en Azure
Volver al directorio de la aplicación
Dado que ha abierto un nuevo terminal en el paso anterior, tendrá que volver al directorio en el que ha creado el servicio.
Dado que ha abierto un nuevo terminal en el paso anterior, tendrá que volver al directorio en el que ha creado el servicio.
cd MyMicroserviceCrear un plan de implementación
Las herramientas AKS usan un archivo .yaml para definir cómo implementar el contenedor.
Cree un archivo llamado deploy.yaml con este comando:
touch deploy.yamlfsutil file createnew deploy.yaml 0A continuación, puede abrirlo en su editor de texto favorito.
A continuación, puede abrirlo en su editor de texto favorito manualmente o con este comando:
open deploy.yamlstart deploy.yamlReemplace el contenido de deploy.yaml por lo siguiente en el editor de texto, asegurándose de reemplazar [YOUR DOCKER ID] con su ID de Docker real.
---
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: mymicroserviceEjecutar implementación
Ejecute el siguiente comando para implementar el microservicio en función de la configuración de deploy.yaml:
kubectl apply -f deploy.yamlProbar el servicio implementado
Ejecute el siguiente comando para ver los detalles del servicio implementado:
kubectl get service mymicroservice --watchEntre otras cosas, el comando anterior mostrará la dirección IP externa en la que está disponible el servicio (EXTERNAL-IP).
Con la dirección IP externa, abra una nueva ventana del explorador y vaya a http://[YOUR EXTERNAL IP ADDRESS]/weatherforecast
Si la EXTERNAL-IP se marca como <pending>, una nueva línea aparecerá automáticamente una vez asignada la dirección IP externa.
Presione CTRL+C en el símbolo del sistema para finalizar el comando kubectl get service.
Presione CTRL+C en el terminal para finalizar el comando kubectl get service
¡Felicitaciones! Ha implementado un microservicio en Azure.
Escalar el servicio
Una ventaja de usar Kubernetes es que puede escalar verticalmente, de manera sencilla, una implementación a varias instancias para controlar la carga adicional. Actualmente, solo hay una instancia, así que vamos a escalar a dos instancias.
Ejecute el siguiente comando para escalar el servicio hasta dos instancias:
kubectl scale --replicas=2 deployment/mymicroserviceLimpiar los recursos
Cuando haya terminado de probar el microservicio, puede eliminar todos los recursos que ha creado con el siguiente comando:
az group delete -n MyMicroserviceResourcesPasos siguientes
Los siguientes recursos le ayudarán a seguir explorando microservicios con .NET.
Microservicios para principiantes
Deje que Nish lo guíe a través de los conceptos de microservicios y aprenda a construir su primer punto final de microservicios en .NET:
Es posible que también le interese...