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 login
Use 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]/mymicroservice
El 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 login
Instalar 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-cli
Es 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 westus
Si 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 table
Si desea usar otra suscripción para la sesión, puede obtener una lista de todas las suscripciones ejecutando el siguiente comando:
az account list --all
A continuación, puede ejecutar el siguiente comando para establecer una suscripción específica para la sesión:
az account set -s NAME_OR_ID
Crear 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-keys
Ejecute 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 MyMicroserviceCluster
Implementar 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 MyMicroservice
Crear 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.yaml
fsutil file createnew deploy.yaml 0
A 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.yaml
start deploy.yaml
Reemplace 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: mymicroservice
Ejecutar implementación
Ejecute el siguiente comando para implementar el microservicio en función de la configuración de deploy.yaml
:
kubectl apply -f deploy.yaml
Probar el servicio implementado
Ejecute el siguiente comando para ver los detalles del servicio implementado:
kubectl get service mymicroservice --watch
Entre 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/mymicroservice
Limpiar 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 MyMicroserviceResources
Pasos 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...