Compartilhar 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ê causa falhas periódicas de pod do Serviço de Kubernetes do Azure (AKS) 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 gratuita de engenharia de caos de código aberto para o Kubernetes, para injetar falhas em um cluster 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 do AKS Chaos Mesh.

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 AKS, consulte o guia de 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 do Chaos Mesh com clusters privados configurando a Injeção de Rede Virtual 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 conectar-se a partir de uma VM na mesma rede virtual ou usar o recurso AKS command invoke .
  • As falhas do Chaos Mesh do AKS só têm suporte em pools de nós do Linux.
  • Atualmente, as falhas do Chaos Mesh não funcionam se o cluster AKS tiver contas locais desabilitadas.
  • Se o cluster 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 tag de serviço com a ChaosStudioAPI 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 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 $RESOURCE_GROUP e $CLUSTER_NAME pelo grupo de recursos e o nome do seu recurso de cluster.

    az aks get-credentials -g $RESOURCE_GROUP -n $CLUSTER_NAME
    
    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ê deve 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 ao Chaos Studio primeiro. Você adiciona um recurso ao Chaos Studio criando um destino e recursos no recurso. Os clusters 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 do Chaos Mesh é representado como um recurso como PodChaos, NetworkChaos e IOChaos.

  1. Abra o portal do Azure.

  2. Procure por Chaos Studio na barra de pesquisa.

  3. Selecione Targets e vá para o cluster AKS.

    Screenshot that shows the Targets view in the Azure portal.

  4. Marque a caixa de seleção ao lado do cluster AKS. Selecione Habilitar destinos e, em seguida, selecione Habilitar destinos diretos de serviço no menu suspenso.

    Screenshot that shows enabling targets in the Azure portal.

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

  6. É exibida uma notificação que indica que os recursos selecionados foram habilitados com êxito.

    Screenshot that shows the notification showing that the target was successfully enabled.

Agora você adicionou com sucesso seu cluster AKS ao Chaos Studio. No modo de exibição Destinos, você também pode gerenciar os recursos habilitados neste recurso. Selecione o link Gerenciar ações ao lado de um recurso para exibir os recursos habilitados 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 contra ramificações, que são executadas em paralelo.

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

    Screenshot that shows the Experiments view in the Azure portal.

  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.

    Screenshot that shows adding basic experiment details.

  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 à sua Etapa e Ramificação e selecione Adicionar ação > Adicionar falha.

    Screenshot that shows the experiment designer.

  4. Selecione AKS Chaos Mesh Pod Chaos na lista suspensa. Preencha Duração com o número de minutos que você deseja que a falha dure e jsonSpec com as seguintes informações:

    Para formular sua Malha do jsonSpecCaos:

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

    2. Formule a configuração YAML para esse tipo de falha usando a documentação do 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
      
    3. Remova qualquer YAML fora do spec (incluindo o nome da propriedade spec) e remova o recuo dos detalhes da especificação. O duration parâmetro não é necessário, mas é usado se fornecido. Neste 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.

    Screenshot that shows fault properties.

  6. Selecione seu cluster AKS e selecione Avançar.

    Screenshot that shows adding a target.

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

    Screenshot that shows reviewing and creating an experiment.

Dê permissão ao experimento para seu cluster 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. Vá para o cluster AKS e selecione Controle de acesso (IAM).

    Screenshot that shows the AKS Overview page.

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

    Screenshot that shows the Access control (IAM) overview.

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

    Screenshot that shows assigning the AKS Cluster Admin role.

  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 experimento será truncado com caracteres aleatórios adicionados.

    Screenshot that shows adding an experiment to a role.

  5. Selecione Revisar + atribuir>Revisão + atribuir.

Executar o experimento

Agora você está pronto para executar seu experimento. Para ver o efeito, recomendamos que você abra a visão geral do cluster AKS e vá para Insights em uma guia separada do navegador. Os dados em tempo real para a contagem de pods ativos mostram o efeito de executar seu experimento.

  1. Na visualização Experimentos, selecione seu experimento. Selecione Iniciar>OK.

    Screenshot that shows starting an experiment.

  2. Quando o Status for alterado para Em execução, selecione Detalhes da 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 do AKS Chaos Mesh, está pronto para: