Esercitazione .NET - Distribuire un microservizio in Azure
Intro
Scopo
Informazioni su come distribuire microservizi, creati con .NET e Docker, per Microsoft Azure.
Prerequisiti
Required: Questa esercitazione usa l'app creata nell'esercitazione Your First Microservice.
Requisito: Account Docker Hub.
Tempo di completamento
15-20 minuti
Scenario
Prendi un microservizio creato in precedenza e distribuiscilo in Azure, usando DockerHub e servizio Azure Kubernetes (AKS).
Eseguire il push in Docker Hub
Docker Hub è una posizione centrale per caricare le immagini Docker. Molti prodotti, incluso Microsoft Azure, possono creare contenitori basati su immagini in Docker Hub.
Accedi a Docker Hub
Nel prompt dei comandi, eseguire il comando seguente:
Nel terminale eseguire questo comando:
docker login
Usare il nome utente e la password creati quando è stato scaricato Docker nell'esercitazione precedente. È possibile visitare il sito Web di Docker Hub per reimpostare la password, se necessario.
Carica l'immagine in Docker Hub
Contrassegnare di nuovo (rinominare) l'immagine Docker sotto il nome utente ed eseguire il push in Docker Hub usando i comandi seguenti:
docker tag mymicroservice [YOUR DOCKER USERNAME]/mymicroservice
docker push [YOUR DOCKER USERNAME]/mymicroservice
Il comando Push carica l'immagine in Docker Hub. Questa operazione potrebbe richiedere del tempo.
Configura gli strumenti di Azure
Creare un account Azure
Se non si ha esperienza con Azure, è possibile creare un account gratuito. Se si ha un account esistente, è possibile ignorare questo passaggio.
Crea un account Azure gratuitoInstallare l'interfaccia della riga di comando di Azure
L'interfaccia della riga di comando di Azure offre strumenti per la gestione dell'account Azure.
Accedi ad Azure
Dopo l'installazione, aprire un nuovo prompt dei comandi e accedere all'account Azure eseguendo questo comando:
Dopo l'installazione, aprire un nuovo terminale e accedere all'account Azure eseguendo il comando seguente:
az login
Installa l'interfaccia della riga di comando per il servizio Azure Kubernetes
Kubernetes è una piattaforma di orchestrazione di contenitori. Un agente di orchestrazione è responsabile per l'esecuzione, la distribuzione, il ridimensionamento e la riparazione delle app costituite da una raccolta di contenitori. Il servizio Azure Kubernetes fornisce Kubernetes come servizio gestito.
Eseguire questo comando per installare gli strumenti della riga di comando per il servizio Azure Kubernetes:
az aks install-cli
Potresti ricevere avvisi con consigli per impostare le variabili PATH di sistema. Non sono necessari per questa esercitazione.
Crea risorse di Azure
Crea un gruppo di risorse
Viene usato un gruppo di risorse per organizzare un set di risorse correlate a una singola app.
Eseguire questo comando per creare un gruppo di risorse nell'area Stati Uniti occidentali:
az group create --name MyMicroserviceResources --location westus
Se si vuole usare un percorso diverso nel comando precedente, è possibile eseguire questo comando per visualizzare le aree disponibili nell'account e selezionarne una più vicina:
az account list-locations -o table
Se si vuole usare una sottoscrizione diversa per la sessione, è possibile ottenere un elenco di tutte le sottoscrizioni eseguendo questo comando:
az account list --all
È quindi possibile eseguire il comando seguente per impostare una sottoscrizione specifica per la sessione:
az account set -s NAME_OR_ID
Crea un cluster del servizio Azure Kubernetes
Eseguire questo comando per creare un cluster del servizio Azure Kubernetes nel gruppo di risorse:
È normale che il completamento di questo comando richieda alcuni minuti.
az aks create --resource-group MyMicroserviceResources --name MyMicroserviceCluster --node-count 1 --enable-addons http_application_routing --generate-ssh-keys
Eseguire il comando seguente per scaricare le credenziali da distribuire nel cluster del servizio Azure Kubernetes:
az aks get-credentials --resource-group MyMicroserviceResources --name MyMicroserviceCluster
Distribuisci in Azure
Torna alla directory dell'app
Dopo aver aperto un nuovo prompt dei comandi nel passaggio precedente, è necessario tornare alla directory in cui è stato creato il servizio.
Dopo aver aperto un nuovo terminale nel passaggio precedente, è necessario tornare alla directory in cui è stato creato il servizio.
cd MyMicroservice
Creare un file di distribuzione
Gli strumenti del servizio Azure Kubernetes usano un file .yaml
per definire la modalità di distribuzione del contenitore.
Crea un file denominato deploy.yaml
con questo comando:
touch deploy.yaml
fsutil file createnew deploy.yaml 0
Puoi quindi aprirlo nel tuo editor di testo preferito.
È quindi possibile aprirlo manualmente nell'editor di testo preferito o con questo comando:
open deploy.yaml
start deploy.yaml
Sostituire il contenuto di deploy.yaml
nel codice seguente nell'editor di testo, assicurandosi di sostituire [ID DOCKER] con l'ID Docker effettivo.
---
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
Esegui la distribuzione
Eseguire questo comando per distribuire il microservizio in base alle impostazioni in deploy.yaml
:
kubectl apply -f deploy.yaml
Testa il servizio distribuito
Eseguire questo comando per visualizzare i dettagli del servizio distribuito:
kubectl get service mymicroservice --watch
Tra le altre cose, il comando precedente mostrerà l'indirizzo IP esterno in cui è disponibile il servizio (EXTERNAL-IP).
Utilizzando l'indirizzo IP esterno, apri una nuova finestra del browser e passa a http://[IL TUO INDIRIZZO IP ESTERNO]/weatherforecast.
Se EXTERNAL-IP è contrassegnato come <pending>
, una nuova riga verrà visualizzata automaticamente dopo l'allocazione dell’indirizzo IP esterno.
Premi CTRL+C sul prompt dei comandi per terminare il comando kubectl get service
.
Premere CTRL+C sul terminale per terminare il comando kubectl get service
Congratulazioni! È stata completata la distribuzione di un microservizio in Azure.
Dimensiona il servizio
Un vantaggio dell'uso di Kubernetes è la possibilità di aumentare facilmente la scalabilità di una distribuzione a più istanze per gestire il carico aggiuntivo. Attualmente è presente una sola istanza, quindi è possibile ridimensionare a due istanze.
Eseguire il comando seguente per ridimensionare il servizio fino a due istanze:
kubectl scale --replicas=2 deployment/mymicroservice
Pulisci le risorse
Al termine del test del microservizio, è possibile eliminare tutte le risorse create con il comando seguente:
az group delete -n MyMicroserviceResources
Passaggi successivi
Le risorse seguenti consentono di continuare a esplorare i microservizi con .NET.
Microservizi per principianti
Nish illustrerà i concetti relativi ai microservizi e ti guiderà nella creazione del tuo primo endpoint per microservizi in .NET:
Potrebbe interessarti anche...