Creare un esperimento chaos che usa un errore Chaos Mesh per terminare i pod del servizio Azure Kubernetes con il portale di Azure
È possibile usare un esperimento chaos per verificare che l'applicazione sia resiliente agli errori causando tali errori in un ambiente controllato. In questo articolo si verificano errori periodici dei pod del servizio Azure Kubernetes in uno spazio dei nomi usando un esperimento chaos e Azure Chaos Studio. L'esecuzione di questo esperimento consente di difendersi dall'indisponibilità del servizio in caso di errori sporadici.
Chaos Studio usa Chaos Mesh, una piattaforma di progettazione chaos gratuita e open source per Kubernetes, per inserire errori in un cluster del servizio Azure Kubernetes. Gli errori di Chaos Mesh sono errori diretti dal servizio che richiedono l'installazione di Chaos Mesh nel cluster del servizio Azure Kubernetes. È possibile usare questi stessi passaggi per configurare ed eseguire un esperimento per qualsiasi errore di Chaos Mesh del servizio Azure Kubernetes.
Prerequisiti
- Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
- Un cluster del servizio Azure Kubernetes con un pool di nodi Linux. Se non si ha un cluster del servizio Azure Kubernetes, vedere la guida introduttiva al servizio Azure Kubernetes che usa l'interfaccia della riga di comando di Azure, Azure PowerShell o il portale di Azure.
Limiti
- È possibile usare gli errori di Chaos Mesh con cluster privati configurando l'inserimento di reti virtuali in Chaos Studio. Tutti i comandi rilasciati al cluster privato, inclusi i passaggi descritti in questo articolo per configurare Chaos Mesh, devono seguire le indicazioni cluster privato. I metodi consigliati includono la connessione da una macchina virtuale nella stessa rete virtuale o l'uso della funzionalità richiamo del comando servizio Azure Kubernetes.
- Gli errori di Chaos Mesh del servizio Azure Kubernetes sono supportati solo nei pool di nodi Linux.
- Se il cluster del servizio Azure Kubernetes è configurato per consentire solo intervalli IP autorizzati, è necessario consentire gli intervalli IP di Chaos Studio. È possibile trovarli eseguendo una query sul
ChaosStudio
tag del servizio con l'API di individuazione tag del servizio o file JSON scaricabili.
Configurare Chaos Mesh nel cluster del servizio Azure Kubernetes
Prima di poter eseguire gli errori di Chaos Mesh in Chaos Studio, è necessario installare Chaos Mesh nel cluster del servizio Azure Kubernetes.
Eseguire i comandi seguenti in una finestra di Azure Cloud Shell in cui è impostata la sottoscrizione attiva come sottoscrizione in cui viene distribuito il cluster del servizio Azure Kubernetes. Sostituire
MyManagedCluster
eMyResourceGroup
con il nome del cluster e del gruppo di risorse.az aks get-credentials --admin --name MyManagedCluster --resource-group MyResourceGroup
helm repo add chaos-mesh https://charts.chaos-mesh.org helm repo update kubectl create ns chaos-testing helm install chaos-mesh chaos-mesh/chaos-mesh --namespace=chaos-testing --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock
Verificare che i pod Chaos Mesh siano installati eseguendo il comando seguente:
kubectl get po -n chaos-testing
L'output dovrebbe essere simile all'esempio seguente (chaos-controller-manager e uno o più chaos-daemon):
NAME READY STATUS RESTARTS AGE chaos-controller-manager-69fd5c46c8-xlqpc 1/1 Running 0 2d5h chaos-daemon-jb8xh 1/1 Running 0 2d5h chaos-dashboard-98c4c5f97-tx5ds 1/1 Running 0 2d5h
È anche possibile usare le istruzioni di installazione nel sito Web Chaos Mesh.
Abilitare Chaos Studio nel cluster del servizio Azure Kubernetes
Chaos Studio non può inserire errori su una risorsa, a meno che tale risorsa non venga aggiunta prima a Chaos Studio. È possibile aggiungere una risorsa a Chaos Studio creando una destinazione e funzionalità nella risorsa. I cluster del servizio Azure Kubernetes hanno un solo tipo di destinazione (service-direct), ma altre risorse potrebbero avere fino a due tipi di destinazione. Un tipo di destinazione è per gli errori diretti dal servizio. Un altro tipo di destinazione è per gli errori basati su agente. Ogni tipo di errore di Chaos Mesh è rappresentato come una funzionalità come PodChaos, NetworkChaos e IOChaos.
Apri il portale di Azure.
Cercare Chaos Studio nella barra di ricerca.
Selezionare Destinazioni e passare al cluster del servizio Azure Kubernetes.
Selezionare la casella di controllo accanto al cluster del servizio Azure Kubernetes. Selezionare Abilita destinazioni e quindi selezionare Abilita destinazioni dirette al servizio dal menu a discesa.
Verificare che la risorsa desiderata sia elencata. Selezionare Rivedi e abilita, quindi Abilita.
Viene visualizzata una notifica che indica che le risorse selezionate sono state abilitate correttamente.
Il cluster del servizio Azure Kubernetes è stato aggiunto a Chaos Studio. Nella visualizzazione Destinazioni è anche possibile gestire le funzionalità abilitate in questa risorsa. Selezionare il collegamento Gestisci azioni accanto a una risorsa per visualizzare le funzionalità abilitate per tale risorsa.
Creare un esperimento
È ora possibile creare l'esperimento. Un esperimento chaos definisce le azioni da eseguire sulle risorse di destinazione. Le azioni sono organizzate ed eseguite in passaggi sequenziali. L'esperimento chaos definisce anche le azioni che si desidera eseguire sui rami, che vengono eseguite in parallelo.
Selezionare la scheda Esperimenti in Chaos Studio. In questa visualizzazione è possibile visualizzare e gestire tutti gli esperimenti di caos. Selezionare Crea>Nuovo esperimento.
Compilare la sottoscrizione, il gruppo di risorse e il percorso in cui si vuole distribuire l'esperimento chaos. Assegnare un nome all'esperimento. Selezionare Avanti: Progettazione esperimenti.
Si è ora nella finestra di progettazione dell'esperimento di Chaos Studio. La finestra di progettazione dell'esperimento consente di compilare l'esperimento aggiungendo passaggi, rami e errori. Assegnare un nome descrittivo al passaggio e al ramo e selezionare Aggiungi azione > Aggiungi errore.
Selezionare Chaos Mesh Pod Chaos del servizio Azure Kubernetes nell'elenco a discesa. Compilare Durata con il numero di minuti per cui si vuole far durare l'errore e jsonSpec con le informazioni seguenti:
Per formulare Chaos Mesh
jsonSpec
:Vedere la documentazione di Chaos Mesh per un tipo di errore, ad esempio il tipo PodChaos.
Formulare la configurazione YAML per tale tipo di errore usando la documentazione di Chaos Mesh.
apiVersion: chaos-mesh.org/v1alpha1 kind: PodChaos metadata: name: pod-failure-example namespace: chaos-testing spec: action: pod-failure mode: all duration: '600s' selector: namespaces: - default
Rimuovere qualsiasi YAML all'esterno del
spec
(incluso il nome della proprietà della specifica) e rimuovere il rientro dei dettagli della specifica. Il parametroduration
non è necessario, ma viene usato se specificato. In questo caso, rimuoverlo.action: pod-failure mode: all selector: namespaces: - default
Usare un convertitore YAML-to-JSON simile a questo per convertire Chaos Mesh YAML in JSON e ridurlo al minimo.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Incollare il codice JSON ridotto a icona nel campo jsonSpec nel portale.
Selezionare Avanti: Risorse di destinazione.
Selezionare il cluster del servizio Azure Kubernetes e selezionare Avanti.
Verificare che l'esperimento sia corretto e selezionare Rivedi e crea>Crea.
Concedere l'autorizzazione dell'esperimento al cluster del servizio Azure Kubernetes
Quando si crea un esperimento chaos, Chaos Studio crea un'identità gestita assegnata dal sistema che esegue errori sulle risorse di destinazione. Questa identità deve avere le autorizzazioni appropriate per la risorsa di destinazione affinché l'esperimento venga eseguito correttamente.
Passare al cluster del servizio Azure Kubernetes e selezionare Controllo di accesso (IAM).
Seleziona Aggiungi>Aggiungi assegnazione ruolo.
Cercare ruolo di amministratore del cluster del servizio Azure Kubernetes e selezionare il ruolo. Selezionare Avanti.
Scegliere Seleziona membri e cercare il nome dell'esperimento. Selezionare l'esperimento e scegliere Seleziona. Se nello stesso tenant sono presenti più esperimenti con lo stesso nome, il nome dell'esperimento viene troncato con caratteri casuali aggiunti.
Selezionare Rivedi e assegna>Rivedi e assegna.
Eseguire l'esperimento
È ora possibile eseguire l'esperimento. Per visualizzare l'effetto, è consigliabile aprire la panoramica del cluster del servizio Azure Kubernetes e passare a Informazioni dettagliate in una scheda del browser separata. I dati attivi per il numero di pod attivi mostrano l'effetto dell'esecuzione dell'esperimento.
Nella visualizzazione Esperimenti selezionare l'esperimento. Selezionare Start>OK.
Quando lo stato diventa In esecuzione, selezionare Dettagli per l'esecuzione più recente in Cronologia per visualizzare i dettagli dell'esperimento in esecuzione.
Passaggi successivi
Dopo aver eseguito un esperimento diretto del servizio Chaos Mesh del servizio Azure Kubernetes, è possibile: