Partilhar via


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

Limitações

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.

  1. 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 e MyResourceGroup 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
    
  2. 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.

  1. Abra o Portal do Azure.

  2. Pesquise Chaos Studio na barra de pesquisa.

  3. Selecione Destinos e acesse o cluster do AKS.

    Captura de tela que mostra a exibição de Destinos no portal do Azure.

  4. 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.

    Captura de tela que mostra a habilitação de destinos no portal do Azure.

  5. Confirme se o recurso desejado está listado. Selecione Revisão + Habilitare, em seguida, Habilitar.

  6. Uma notificação será exibida e indicará que os recursos selecionados foram habilitados com sucesso.

    Captura de tela que mostra a notificação que mostra que o destino foi habilitado com êxito.

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.

  1. Selecione a guia Experimentos no Chaos Studio. Nessa exibição, você pode ver e gerenciar todos os experimentos de caos. Selecione Criar>Novo experimento.

    Captura de tela que mostra a exibição de Experimentos no portal do Azure.

  2. 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.

    Captura de tela que mostra as adições de detalhes básicos do experimento.

  3. 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.

    Captura de tela que mostra o designer do experimento.

  4. 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:

    1. Consulte a documentação da Malha do Chaos para obter um tipo de falha, por exemplo, o tipo PodChaos.

    2. 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
      
    3. 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âmetro duration não é necessário, mas é usado se fornecido. Nesse caso, remova-o.

      action: pod-failure
      mode: all
      selector:
        namespaces:
          - default
      
    4. 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"]}}
      
    5. Cole o JSON minimizado no campo jsonSpec no portal.

  5. SelecioneAvançar: Recursos de destino.

    Captura de tela que mostra as propriedades da falha.

  6. Selecione o cluster do AKS e escolha Avançar.

    Captura de tela que mostra a adição de um destino.

  7. Verifique se o experimento está correto e selecione Revisar + criar>Criar.

    Captura de tela que mostra como revisar e criar um experimento.

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.

  1. Acesse o cluster do AKS e selecione Controle de acesso (IAM).

    Captura de tela que mostra a página Visão geral do AKS.

  2. Selecione Adicionar>Adicionar atribuição de função.

    Captura de tela que mostra a página Controle de acesso (IAM).

  3. Pesquise por Função de administrador do cluster do Serviço de Kubernetes do Azure e selecione a função. Selecione Avançar.

    Captura de tela que mostra como atribuir a função Administrador do Cluster do AKS.

  4. 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.

    Captura de tela que mostra como adicionar um experimento a uma função.

  5. 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.

  1. Na exibição experimentos, selecione seu experimento. Selecione Iniciar>OK.

    Captura de tela que mostra como iniciar um experimento.

  2. 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: