Partilhar via


Adicionar IPs do Chaos Studio como IPs Autorizados no AKS

Descrição geral

O Serviço Kubernetes do Azure permite que apenas determinados intervalos de IP alcancem um cluster. Se você tiver ativado essa opção, as falhas AKS do Chaos Studio podem falhar, a menos que você autorize os endereços IP usados pelo Chaos Studio para comunicação.

Por exemplo, se você tentar executar uma falha do Chaos Mesh em um cluster AKS com intervalos de IP autorizados habilitados, mas os endereços IP do Chaos Studio não forem permitidos, o experimento poderá falhar com o erro de tempo limite: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.

Autorizando IPs

Há várias maneiras de resolver isso:

  1. Use a etiqueta de serviço do Chaos Studio para autorizar os IPs relevantes (visualização)
  2. Usar um script do PowerShell para recuperar os IPs e adicioná-los automaticamente
  3. Recuperar e adicionar os IPs manualmente

Utilizar etiquetas de serviço com a funcionalidade de pré-visualização AKS

Uma etiqueta de serviço é um grupo de prefixos de endereço IP que podem ser atribuídos a regras de entrada e saída para grupos de segurança de rede. Ele lida automaticamente com atualizações para o grupo de prefixos de endereço IP sem qualquer intervenção. Como as tags de serviço habilitam principalmente a filtragem de endereços IP, as tags de serviço sozinhas não são suficientes para proteger o tráfego.

Você pode usar um recurso AKS de visualização para adicionar etiquetas de serviço diretamente aos intervalos de IP autorizados: Use tags de serviço para intervalos de IP autorizados pelo Servidor de API.

A etiqueta de serviço relevante é ChaosStudio.

PowerShell Script

O script PowerShell a seguir recupera os endereços IP listados na ChaosStudio Etiqueta de Serviço e os adiciona aos intervalos de IP autorizados do cluster AKS usando a CLI do Azure.

Para usar esse script, copie-o e cole-o em um novo arquivo e nomeie-o Add-KubernetesChaosStudioAuthorizedIPs.ps1e, em seguida, execute o script usando as instruções comentadas.

  # Script to add Chaos Studio IPs to authorized IP range of AKS cluster.
  # Run command .\Add-KubernetesChaosStudioAuthorizedIps.ps1 -subscriptionId "yourSubscriptionId" -resourceGroupName "yourResourceGroupName" -clusterName "yourAKSClusterName" -region "regionName"
  
  [CmdletBinding()]
  param (
      [Parameter(Mandatory=$true)]
      [string]
      $subscriptionId,
  
      [Parameter(Mandatory=$true)]
      [string]
      $resourceGroupName,
  
      [Parameter(Mandatory=$true)]
      [string]
      $clusterName,
  
      [Parameter(Mandatory=$true)]
      [string]
      $region
  )
  
  # Get IP addresses for the Chaos Studio service tag using the Service Tag Discovery API.
  try {
    Write-Host "Getting IP addresses for the ChaosStudio service tag..." -ForegroundColor Yellow
    $chaosStudioIps = $(az network list-service-tags --location $region --query "values[?contains(name, 'ChaosStudio')].properties.addressPrefixes[]" -o tsv)
  } catch {
    throw "Failed to retrieve IPs for Chaos Studio service tag from Service Tag Discovery API (https://learn.microsoft.com/en-us/azure/virtual-network/service-tags-overview#use-the-service-tag-discovery-api). Exception: $($_.Exception)"
  }
  
  # List IP addresses associated with the Chaos Studio service tag.
  Write-Host "Chaos Studio IPs:"
  $chaosStudioIps | ForEach-Object {
    Write-Host "$_" 
  }
  
  # Add Chaos Studio IPs to authorized IP range of AKS cluster.
  try {
    Write-Host "Adding Chaos Studio IPs to authorized IP range of AKS cluster '$clusterName' in resource group '$resourceGroupName' of subscription '$subscriptionId'." -ForegroundColor Yellow
  
    az account set --subscription $subscriptionId
    az aks update -g $resourceGroupName -n $clusterName --api-server-authorized-ip-ranges $($chaosStudioIps -join (","))
  
    Write-Host "Successfully added Chaos Studio IPs to authorized IP range of AKS cluster '$clusterName' in resource group '$resourceGroupName' of subscription '$subscriptionId'." -ForegroundColor Yellow
  } catch {
    throw "Failed to add Chaos Studio IPs to authorized IP range of AKS cluster '$clusterName'. Exception: $($_.Exception)"
  }

Adição manual

Saiba como limitar o acesso à rede AKS a um conjunto de intervalos de IP aqui. Você pode obter os intervalos de IP do Chaos Studio consultando a ChaosStudio etiqueta de serviço com a API de descoberta de etiqueta de serviço ou arquivos JSON baixáveis.