Distribuire un'applicazione PHP Guestbook
senza stato con Redis nel cluster Kubernetes abilitato per Azure Arc in Azure Stack Edge Pro GPU
SI APPLICA A: Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
Questo articolo illustra come compilare e distribuire una semplice applicazione Web multilivello usando Kubernetes e Azure Arc. Questo esempio è costituito dai componenti seguenti:
- Master Redis a istanza singola per archiviare voci
guestbook
- Più istanze di Redis replicate per la gestione delle letture
- Più istanze front-end Web
La distribuzione viene eseguita usando GitOps nel cluster Kubernetes abilitato per Azure Arc nel dispositivo Azure Stack Edge Pro.
Questa procedura è destinata agli utenti che hanno esaminato i carichi di lavoro Kubernetes nel dispositivo Azure Stack Edge Pro e hanno familiarità con i concetti descritti in Che cos'è Kubernetes abilitato per Azure Arc (anteprima).
Nota
Questo articolo contiene riferimenti al termine slave, che Microsoft non usa più. Quando il termine verrà rimosso dal software, verrà rimosso anche dall'articolo.
Prerequisiti
Prima di poter distribuire l'applicazione senza stato, assicurarsi di aver completato i prerequisiti seguenti nel dispositivo e il client che si userà per accedere al dispositivo:
Per il dispositivo
Si dispone di credenziali di accesso a un dispositivo Azure Stack Edge Pro a 1 nodo.
- Il dispositivo viene attivato. Vedere Attivare il dispositivo.
- Il dispositivo ha il ruolo di calcolo configurato tramite il portale di Azure e ha un cluster Kubernetes. Vedere Configurare il calcolo.
Azure Arc è stato abilitato nel cluster Kubernetes esistente nel dispositivo e si dispone di una risorsa di Azure Arc corrispondente nel portale di Azure. Per i passaggi dettagliati, vedere Abilitare Azure Arc nel dispositivo Azure Stack Edge Pro.
Per l'accesso del client al dispositivo
Si dispone di un sistema client Windows che verrà usato per accedere al dispositivo Azure Stack Edge Pro.
Il client esegue Windows PowerShell 5.0 o versione successiva. Per scaricare la versione più recente di Windows PowerShell, passare a Installare Windows PowerShell.
È possibile avere anche qualsiasi altro client con un Sistema operativo supportato. Questo articolo descrive la procedura quando si usa un client Windows.
La procedura descritta in Accedere al cluster Kubernetes nel dispositivo Azure Stack Edge Pro è stata completata. Precisamente:
kubectl
è stato installato nel client.Assicurarsi che la versione del client
kubectl
non sia diversa da una versione della versione master Kubernetes in esecuzione nel dispositivo Azure Stack Edge Pro.- Usare
kubectl version
per controllare la versione di kubectl in esecuzione nel client. Prendere nota della versione completa. - Nell'interfaccia utente locale del dispositivo Azure Stack Edge Pro passare a Panoramica e prendere nota del numero di software Kubernetes.
- Verificare che queste due versioni siano compatibili con il mapping fornito nella versione di Kubernetes supportata.
- Usare
È disponibile una configurazione di GitOps che è possibile usare per eseguire una distribuzione di Azure Arc. In questo esempio si useranno i file
yaml
seguenti per la distribuzione nel dispositivo Azure Stack Edge Pro.frontend-deployment.yaml
frontend-service.yaml
redis-master-deployment.yaml
redis-master-service.yaml
redis-slave-deployment.yaml
redis-slave-service.yaml
Distribuire la configurazione
Seguire questa procedura per configurare la risorsa di Azure Arc per distribuire una configurazione GitOps tramite il portale di Azure:
Nel portale di Azure passare alla risorsa di Azure Arc creata quando è stato abilitato Azure Arc nel cluster Kubernetes nel dispositivo.
Passare a Configurazioni e selezionare + Aggiungi configurazione.
Specificare l'estensione Flux versione 1.
In Aggiungere una configurazione GitOps immettere i valori appropriati per i campi e quindi selezionare Aggiungi.
Parametro Descrizione Nome configurazione Nome della risorsa di configurazione. Nome istanza operatore Nome dell'istanza dell'operatore per identificare una configurazione specifica. Il nome è una stringa di massimo 253 caratteri che devono essere minuscoli, alfanumerici, trattini e punti. Spazio dei nomi operatore Impostare su demotestguestbook in modo che corrisponda allo spazio dei nomi specificato nella distribuzione yaml
.
Il campo definisce lo spazio dei nomi in cui è installato l'operatore. Il nome è una stringa di massimo 253 caratteri che devono essere minuscoli, alfanumerici, trattini e punti.URL del repository
Percorso del repository Git nel formatohttp://github.com/username/repo
ogit://github.com/username/repo
in cui si trova la configurazione di GitOps.Ambito operatore Selezionare Spazio dei nomi.
Questo parametro definisce l'ambito in cui è installato l'operatore. Selezionare Spazio dei nomi per installare l'operatore nello spazio dei nomi specificato nei file yaml di distribuzione.Tipo di operatore Lasciare l'impostazione predefinita.
Questo parametro specifica il tipo di operatore, impostato come flux per impostazione predefinita.Parametri dell'operatore Lasciare vuoto.
Questo parametro contiene parametri da passare all'operatore flux.Helm Lasciare questa casella di controllo Deselezionata.
Abilitare questa opzione se si eseguiranno distribuzioni basate su grafici.La distribuzione della configurazione viene avviata e lo stato dell'operatore viene visualizzato come In sospeso.
La distribuzione richiede alcuni minuti. Al termine della distribuzione, lo stato dell'operatore viene visualizzato come Installato.
Verificare la distribuzione
La distribuzione tramite la configurazione di GitOps crea uno spazio dei nomi demotestguestbook
come specificato nei file di distribuzione yaml
che si trovano nel repository Git.
Dopo aver applicato la configurazione di GitOps, Connettersi all'interfaccia di PowerShell del dispositivo.
Eseguire il comando seguente per elencare i pod in esecuzione nello spazio dei nomi
demotestguestbook
corrispondente alla distribuzione.kubectl get pods -n <your-namespace>
Un esempio di output è riportato di seguito.
[10.128.44.240]: PS>kubectl get pods -n demotestguestbook NAME READY STATUS RESTARTS AGE aseoperator1-5569658644-cqtb5 1/1 Running 0 91m frontend-6cb7f8bd65-4xb4f 1/1 Running 0 91m frontend-6cb7f8bd65-q9cxj 1/1 Running 0 91m frontend-6cb7f8bd65-xpzs6 1/1 Running 0 91m memcached-86bdf9f56b-5l2fq 1/1 Running 0 91m redis-master-7db7f6579f-2z29w 1/1 Running 0 91m redis-slave-7664787fbc-lgr2n 1/1 Running 0 91m redis-slave-7664787fbc-vlvzn 1/1 Running 0 91m [10.128.44.240]: PS>
In questo esempio il servizio front-end è stato distribuito come type:LoadBalancer. Sarà necessario trovare l'indirizzo IP di questo servizio per visualizzare
guestbook
. Esegui il comando seguente:kubectl get service -n <your-namespace>
[10.128.44.240]: PS>kubectl get service -n demotestguestbook NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend LoadBalancer 10.96.79.38 10.128.44.245 80:31238/TCP 85m memcached ClusterIP 10.102.47.75 <none> 11211/TCP 85m redis-master ClusterIP 10.104.32.99 <none> 6379/TCP 85m redis-slave ClusterIP 10.104.215.146 <none> 6379/TCP 85m [10.128.44.240]: PS>
Il servizio front-end di
type:LoadBalancer
ha un indirizzo IP esterno. Questo indirizzo IP proviene dall'intervallo di indirizzi IP specificato per i servizi esterni durante la configurazione delle impostazioni di rete di calcolo nel dispositivo. Usare questo indirizzo IP per visualizzareguestbook
all'URL:https://<external-IP-address>
.
Eliminare una distribuzione
Per eliminare la distribuzione, è possibile eliminare la configurazione dal portale di Azure. L'eliminazione della configurazione eliminerà gli oggetti creati, incluse le distribuzioni e i servizi.
- Nel portale di Azure passare alla risorsa Azure Arc > Configurazioni.
- Individuare la configurazione da eliminare. Selezionare ... per richiamare il menu di scelta rapida e selezionare Elimina.
L'eliminazione della configurazione potrebbe richiedere alcuni minuti.
Passaggi successivi
Informazioni su come usare il dashboard Kubernetes per monitorare le distribuzioni nel dispositivo Azure Stack Edge Pro