Crie um experimento do Chaos que usa uma falha de malha do Chaos para encerrar pods do AKS com o portal do Azure
Você pode usar um experimento de caos para verificar se seu aplicativo é resiliente a falhas causando-as em um ambiente controlado. Neste artigo, você causará falhas periódicas de pod do AKS (Serviço de Kubernetes do Azure) em um namespace usando um experimento de caos e o Azure Chaos Studio. A execução desse experimento pode ajudá-lo a se defender contra a indisponibilidade do serviço quando há falhas esporádicas.
O Chaos Studio usa o Chaos Mesh, uma plataforma de engenharia de caos gratuita e de software livre para o Kubernetes injetar falhas em um cluster do AKS. As falhas do Chaos Mesh são falhas diretas de serviço que requerem que o Chaos Mesh seja instalado no cluster AKS. Você pode usar essas mesmas etapas para configurar e executar um experimento para qualquer falha da Malha do Caos do AKS.
Pré-requisitos
- Uma assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
- Um cluster do AKS com um pool de nós do Linux. Se você não tiver um cluster do AKS, consulte o início rápido do AKS que usa a CLI do Azure, o Azure PowerShell ou o portal do Azure.
Limitações
- Você pode usar falhas de Malha do Chaos com clusters privados configurando injeção de VNet no Chaos Studio. Todos os comandos emitidos para o cluster privado, incluindo as etapas neste artigo para configurar o Chaos Mesh, precisam seguir as diretrizes do cluster privado. Os métodos recomendados incluem a conexão de uma VM na mesma rede virtual ou o uso do recurso de invocação de comando AKS.
- As falhas do Chaos Mesh do AKS só têm suporte em pools de nós do Linux.
- Se o cluster do AKS estiver configurado para permitir apenas intervalos de IP autorizados, você precisará permitir os intervalos de IP do Chaos Studio. Você pode encontrá-los consultando a
ChaosStudio
marca de serviço com a API de Descoberta de Marca de Serviço ou arquivos JSON para download.
Configurar Chaos Mesh no cluster do AKS
Antes de executar falhas do Chaos Mesh no Chaos Studio, você deve instalar o Chaos Mesh no cluster do AKS.
Execute os comandos a seguir em uma janela do Azure Cloud Shell em que você tem a assinatura ativa definida como a assinatura em que o cluster do AKS está implantado. Substitua
MyManagedCluster
eMyResourceGroup
pelo nome do cluster e do grupo de recursos.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
Verifique se os pods do Chaos Mesh estão instalados executando o seguinte comando:
kubectl get po -n chaos-testing
Você deverá ver uma saída semelhante ao exemplo a seguir (um chaos-controller-manager e um ou mais chaos-daemons):
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
Você também pode usar as instruções de instalação no site do Chaos Mesh.
Habilitar o Chaos Studio no cluster do AKS
O Chaos Studio não pode injetar falhas em um recurso, a menos que esse recurso seja adicionado primeiro ao Chaos Studio. Você adiciona um recurso ao Chaos Studio criando um destino e funcionalidades no recurso. Os clusters do AKS têm apenas um tipo de destino (serviço direto), mas outros recursos podem ter até dois tipos de destino. Um tipo de destino é para falhas diretas de serviço. Outro tipo de destino é para falhas baseadas em agente. Cada tipo de falha de Malha do Chaos é representado como uma funcionalidade como PodChaos, NetworkChaos e IOChaos.
Abra o Portal do Azure.
Pesquise Chaos Studio na barra de pesquisa.
Selecione Destinos e acesse o cluster do AKS.
Marque a caixa de seleção ao lado do cluster do AKS. Selecione Habilitar destinos e, depois, Habilitar destinos diretos do serviço na lista suspensa.
Confirme se o recurso desejado está listado. Selecione Revisão + Habilitare, em seguida, Habilitar.
Uma notificação será exibida e indicará que os recursos selecionados foram habilitados com sucesso.
Agora você adicionou com êxito o cluster do AKS ao Chaos Studio. Na exibição Destinos, você também pode gerenciar as funcionalidades habilitadas nesse recurso. Selecione o link Gerenciar ações ao lado de um recurso para exibir as funcionalidades habilitadas para esse recurso.
Criar uma experiência
Agora você pode criar seu experimento. Um experimento de caos define as ações que você deseja executar em relação aos recursos de destino. As ações são organizadas e executadas em etapas sequenciais. O experimento de caos também define as ações que você deseja executar em relação a branches, que são executadas em paralelo.
Selecione a guia Experimentos no Chaos Studio. Nessa exibição, você pode ver e gerenciar todos os experimentos de caos. Selecione Criar>Novo experimento.
Preencha a Assinatura, o Grupo de Recursos e o Local em que deseja implantar o experimento de caos. Dê um nome ao experimento. SelecioneAvançar: Designer de experimentos.
Agora você está no designer de experimentos do Chaos Studio. O designer de experimentos permite que você crie seu experimento adicionando etapas, ramificações e falhas. Dê um nome amigável à Etapa e ao Branch e selecione Adicionar ação > Adicionar falha.
Escolha Caos de Pod do Chaos Mesh do AKS na lista suspensa. Preencha Duração com o número de minutos de duração desejada da falha e jsonSpec com as seguintes informações:
Para formular o
jsonSpec
do Chaos Mesh:Consulte a documentação da Malha do Chaos para obter um tipo de falha, por exemplo, o tipo PodChaos.
Formular a configuração YAML para esse tipo de falha usando a documentação da Malha do Chaos.
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
Remova qualquer YAML que esteja fora do
spec
(incluindo o nome da propriedade de especificação) e remova o recuo dos detalhes da especificação. O parâmetroduration
não é necessário, mas é usado se fornecido. Nesse caso, remova-o.action: pod-failure mode: all selector: namespaces: - default
Use um conversor YAML para JSON como este para converter o YAML do Chaos Mesh em JSON e minimizá-lo.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Cole o JSON minimizado no campo jsonSpec no portal.
SelecioneAvançar: Recursos de destino.
Selecione o cluster do AKS e escolha Avançar.
Verifique se o experimento está correto e selecione Revisar + criar>Criar.
Conceder permissão de experimento ao cluster do AKS
Quando você cria um experimento de caos, o Chaos Studio cria uma identidade gerenciada atribuída pelo sistema que executa falhas nos recursos de destino. Essa identidade deve receber as permissões apropriadas para o recurso de destino para que o experimento seja executado com êxito.
Acesse o cluster do AKS e selecione Controle de acesso (IAM).
Selecione Adicionar>Adicionar atribuição de função.
Pesquise por Função de administrador do cluster do Serviço de Kubernetes do Azure e selecione a função. Selecione Avançar.
Escolha Selecionar membros e busque pelo nome do seu experimento. Selecione seu experimento e escolha Selecionar. Se houver vários experimentos no mesmo locatário com o mesmo nome, o nome do seu experimento ficará truncado com caracteres aleatórios adicionados.
Selecione Revisão + atribuir>Revisão + atribuir.
Executar o experimento
Agora você está pronto para executar seu experimento. Para ver o efeito, recomendamos que você abra sua visão geral do cluster do AKS e vá para Insights em uma guia separada do navegador. Os dados dinâmicos da Contagem de Pods Ativos mostram o efeito da execução do experimento.
Na exibição experimentos, selecione seu experimento. Selecione Iniciar>OK.
Quando o Status mudar para Em execução, selecione Detalhes na execução mais recente em Histórico para ver os detalhes do experimento em execução.
Próximas etapas
Agora que você executou um experimento direto de serviço da Malha do Caos do AKS, está pronto para: