Esercitazione: Usare i servizi PaaS con un cluster del servizio Azure Kubernetes
Con Kubernetes è possibile usare i servizi PaaS, ad esempio bus di servizio di Azure, per sviluppare ed eseguire le applicazioni.
In questa esercitazione, parte cinque di sette, si crea uno spazio dei nomi e una coda del bus di servizio di Azure per testare l'applicazione. Scopri come:
- Creare uno spazio dei nomi e una coda del bus di servizio di Azure.
- Aggiornare il file manifesto Kubernetes per usare la coda del bus di servizio di Azure.
- Testare l'applicazione aggiornata inserendo un ordine.
Operazioni preliminari
Nelle esercitazioni precedenti è stata inserita un'applicazione in un'immagine del contenitore, è stata caricata l'immagine in Registro Azure Container, è stato creato un cluster Kubernetes ed è stata distribuita un'applicazione. Per completare questa esercitazione, è necessario il file manifesto Kubernetes aks-store-quickstart.yaml
creato in precedenza. Questo download di file è stato incluso nel codice sorgente dell'applicazione in un'esercitazione precedente. Assicurarsi di clonare il repository e di modificare le directory nel repository clonato. Se questi passaggi non sono stati completati e si vuole seguire questa procedura, iniziare con Esercitazione 1 - Preparare l'applicazione per il servizio Azure Kubernetes.
Questa esercitazione richiede l'interfaccia della riga di comando di Azure 2.34.1 o versioni successive. Eseguire az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Creare variabili di ambiente
Creare le variabili di ambiente seguenti da usare per i comandi di questa esercitazione:
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Creare uno spazio dei nomi e una coda del bus di servizio di Azure
Nelle esercitazioni precedenti è stato usato un contenitore RabbitMQ per archiviare gli ordini inviati da order-service
. In questa esercitazione si usa uno spazio dei nomi del bus di servizio di Azure per fornire un contenitore di ambito per le risorse del bus di servizio all'interno dell'applicazione. Si usa anche una coda del bus di servizio di Azure per inviare e ricevere messaggi tra i componenti dell'applicazione. Per altre informazioni sul bus di servizio di Azure, vedere Creare uno spazio dei nomi e una coda del bus di servizio di Azure.
Creare uno spazio dei nomi del bus di servizio di Azure usando il comando
az servicebus namespace create
.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
Creare una coda del bus di servizio di Azure usando il comando
az servicebus queue create
.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
Creare una regola di autorizzazione del bus di servizio di Azure usando il comando
az servicebus queue authorization-rule create
.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
Ottenere le credenziali del bus di servizio di Azure per usarle in un secondo momento usando i comandi
az servicebus namespace show
eaz servicebus queue authorization-rule keys list
.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
Aggiornare il file manifesto kubernetes
Configurare
kubectl
per connettersi al cluster usando il comandoaz aks get-credentials
.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Aprire il file
aks-store-quickstart.yaml
in un editor di testo.Rimuovere le sezioni
rabbitmq
StatefulSet, ConfigMap e Servizio esistenti e sostituire la sezione Distribuzioneorder-service
esistente con il contenuto seguente:apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi
Nota
L'aggiunta diretta di informazioni riservate, ad esempio le chiavi API, ai file manifesto Kubernetes non è sicura e può essere eseguito accidentalmente il commit nei repository di codice. È stato aggiunto qui per semplicità. Per i carichi di lavoro di produzione, usare l'identità gestita per eseguire l'autenticazione con il bus di servizio di Azure o archiviare i segreti in Azure Key Vault.
Salvare e chiudere il file
aks-store-quickstart.yaml
aggiornato.
Distribuire l'applicazione aggiornata
Distribuire l'applicazione aggiornata usando il comando
kubectl apply
.kubectl apply -f aks-store-quickstart.yaml
L'output di esempio seguente mostra le risorse aggiornate correttamente:
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchanged
Testare l'applicazione
Inserire un ordine di esempio
Ottenere l'indirizzo IP esterno del servizio
store-front
usando il comandokubectl get service
.kubectl get service store-front
Passare all'indirizzo IP esterno del servizio
store-front
nel browser usandohttp://<external-ip>
.Effettuare un ordine scegliendo un prodotto e selezionando Aggiungi al carrello.
Selezionare Carrello per visualizzare l'ordine e quindi selezionare Cassa.
Visualizzare l'ordine nella coda del bus di servizio di Azure
- Passare al portale di Azure e aprire lo spazio dei nomi del bus di servizio di Azure creato in precedenza.
- In Entitàselezionare Code e quindi selezionare la coda degli ordini.
- Nella coda ordini selezionare Service Bus Explorer.
- Selezionare Visualizza in anteprima dall'inizio per visualizzare l'ordine inviato.
Passaggi successivi
In questa esercitazione è stato usato il bus di servizio di Azure per aggiornare e testare l'applicazione di esempio. Contenuto del modulo:
- Creare uno spazio dei nomi e una coda del bus di servizio di Azure.
- Aggiornare il file manifesto Kubernetes per usare la coda del bus di servizio di Azure.
- Testare l'applicazione aggiornata inserendo un ordine.
Nell'esercitazione successiva si apprenderà come ridimensionare un'applicazione nel servizio Azure Kubernetes.
Azure Kubernetes Service