Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Con Kubernetes è possibile usare i servizi PaaS, ad esempio bus di servizio di Azure, per sviluppare ed eseguire le applicazioni.
In questa esercitazione si crea uno spazio dei nomi e una coda del bus di servizio di Azure per testare l'applicazione. Si apprenderà 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.
Prima di iniziare
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 crea risorse di bus di servizio di Azure fatturabili. Per completare questi passaggi, usa un'identità in grado di creare e gestire le risorse di bus di servizio e aggiornare i carichi di lavoro di AKS nel tuo gruppo di risorse, ad esempio Contributor o Owner.
Questo tutorial richiede l'installazione di AKS desktop.
Creare variabili di ambiente
Usare il interfaccia della riga di comando di Azure per creare le variabili di ambiente seguenti da usare per i comandi in questa esercitazione:
LOC_NAME=westus2 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.
In questo flusso, order-service invia messaggi alla queue orders tramite la regola di autorizzazione e la chiave sender che crei in questa sezione.
Usare il interfaccia della riga di comando di Azure per creare le variabili di ambiente seguenti da usare per i comandi di questa esercitazione.
Creare uno spazio dei nomi di 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_NAMEContinuare quando il comando viene completato correttamente e restituisce i dettagli dello spazio dei nomi.
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_NSVerificare che la coda esista prima di continuare:
az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsvCreare 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 SendOttenere le credenziali del bus di servizio di Azure per usarle in un secondo momento usando i
az servicebus namespace showcomandi 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 tsvSalvare questi valori per il passaggio di aggiornamento del manifesto:
-
<REPLACE_WITH_YOUR_ACR_NAME>: il nome del tuo Registro Azure Container dei tutorial precedenti. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: il valoreprimaryKeydall'output del comando.
-
Aggiornare il file manifesto kubernetes
Vai a Progetti in AKS Desktop e seleziona quello che hai creato nell'esercitazione precedente,
my-dev-frontend.Seleziona la scheda Risorse, quindi seleziona Carichi di lavoro>Distribuzione: order-service.
Seleziona l'Editor.
Rimuovere le sezioni StatefulSet, ConfigMap e Service esistenti
rabbitmq. Sostituire la sezione Distribuzione esistenteorder-servicecon il contenuto seguente. Copiare e incollare il contenuto: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 startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3
Note
L'aggiunta diretta di informazioni sensibili, come le chiavi API, ai file manifest di Kubernetes non è sicura e potrebbe causarne il commit accidentale nei repository di codice. Questo esempio lo aggiunge 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.
Per salvare e applicare l'aggiornamento, seleziona Salva & Applica.
Verificare che la distribuzione aggiornata raggiunga uno stato integro
order-servicenella visualizzazione del carico di lavoro prima di continuare.
Distribuire l'applicazione aggiornata
Distribuire l'applicazione aggiornata usando il
kubectl applycomando .kubectl apply -f aks-store-quickstart.yamlL'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 unchangedVerificare che la distribuzione aggiornata sia in esecuzione.
kubectl get pods
Continuare quando i pod dell'applicazione sono nello stato Running.
Test dell'applicazione
Inserire un ordine di esempio
AKS Desktop
Ottieni l'indirizzo IP pubblico andando a Risorsa>Rete>Servizio: store-front>IP esterno.
Riga di comando
Ottenere l'indirizzo IP esterno del servizio
store-frontusando il comandokubectl get service.kubectl get service store-frontSe
EXTERNAL-IPè<pending>, attendere un minuto ed eseguire di nuovo il comando fino a quando non viene visualizzato un indirizzo IP pubblico.Passare all'indirizzo IP esterno del servizio
store-frontnel 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 bus di servizio 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. Si è appreso 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.
Nell'esercitazione successiva si apprenderà come ridimensionare un'applicazione nel servizio Azure Kubernetes.