Sdílet prostřednictvím


Přidání IP adres aplikace Chaos Studio jako autorizovaných IP adres v AKS

Přehled

Azure Kubernetes Service umožňuje přístup ke clusteru jenom určitým rozsahům IP adres. Pokud jste tuto možnost povolili, chyby AKS aplikace Chaos Studio můžou selhat, pokud neověříte IP adresy používané aplikací Chaos Studio pro komunikaci.

Pokud se například pokusíte spustit chybu Chaos Mesh v clusteru AKS s povolenými autorizovanými rozsahy IP adres, ale IP adresy aplikace Chaos Studio nejsou povolené, experiment může selhat s chybou vypršení časového limitu: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.

Autorizace IP adres

Existuje několik způsobů, jak to vyřešit:

  1. Použití značky služby Chaos Studio k autorizaci příslušných IP adres (Preview)
  2. Použití skriptu PowerShellu k načtení IP adres a jejich automatickému přidání
  3. Ruční načtení a přidání IP adres

Použití značek služeb s funkcí AKS Ve verzi Preview

Značka služby je skupina předpon IP adres, které je možné přiřadit příchozím a odchozím pravidlům pro skupiny zabezpečení sítě. Automaticky zpracovává aktualizace skupiny předpon IP adres bez zásahu. Vzhledem k tomu, že značky služeb primárně umožňují filtrování IP adres, samotné značky služeb nestačí k zabezpečení provozu.

Pomocí funkce Preview AKS můžete přidat značky služeb přímo do autorizovaných rozsahů IP adres: Použijte značky služeb pro autorizované rozsahy IP adres serveru API.

Relevantní značka služby je ChaosStudio.

Skript PowerShellu

Následující skript PowerShellu načte IP adresy uvedené ve ChaosStudio značce služby a přidá je do autorizovaných rozsahů IP adres clusteru AKS pomocí Azure CLI.

Pokud chcete tento skript použít, zkopírujte ho a vložte ho do nového souboru a pojmenujte ho Add-KubernetesChaosStudioAuthorizedIPs.ps1a spusťte ho pomocí okomentovaných pokynů.

  # 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)"
  }

Ruční přidání

Tady se dozvíte, jak omezit síťový přístup AKS na sadu rozsahů IP adres. Rozsahy IP adres aplikace Chaos Studio můžete získat dotazováním ChaosStudio značky služby pomocí rozhraní API zjišťování značek služby nebo souborů JSON ke stažení.