Delen via


Chaos Studio-IP's toevoegen als geautoriseerde IP-adressen in AKS

Overzicht

Met Azure Kubernetes Service kunt u alleen bepaalde IP-bereiken toestaan om een cluster te bereiken. Als u deze optie hebt ingeschakeld, kunnen de AKS-fouten van Chaos Studio mislukken, tenzij u de IP-adressen autoriseert die door Chaos Studio worden gebruikt voor communicatie.

Als u bijvoorbeeld een Chaos Mesh-fout probeert uit te voeren op een AKS-cluster waarvoor geautoriseerde IP-bereiken zijn ingeschakeld, maar de IP-adressen van Chaos Studio niet zijn toegestaan, kan het experiment mislukken met de time-outfout: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.

IP-adressen autoriseren

U kunt dit op verschillende manieren oplossen:

  1. De servicetag van Chaos Studio gebruiken om de relevante IP-adressen te autoriseren (preview)
  2. Een PowerShell-script gebruiken om de IP-adressen op te halen en deze automatisch toe te voegen
  3. De IP-adressen handmatig ophalen en toevoegen

Servicetags gebruiken met de preview-functie van AKS

Een servicetag is een groep IP-adresvoorvoegsels die kunnen worden toegewezen aan inkomende en uitgaande regels voor netwerkbeveiligingsgroepen. Het verwerkt automatisch updates van de groep IP-adresvoorvoegsels zonder tussenkomst. Omdat servicetags voornamelijk IP-adresfilters inschakelen, zijn servicetags alleen niet voldoende om verkeer te beveiligen.

U kunt een preview-AKS-functie gebruiken om servicetags rechtstreeks toe te voegen aan de geautoriseerde IP-bereiken: Servicetags gebruiken voor geautoriseerde IP-bereiken van API Server.

De relevante servicetag is ChaosStudio.

PowerShell-script

Met het volgende PowerShell-script worden de IP-adressen opgehaald die worden vermeld in de ChaosStudio servicetag en toegevoegd aan de geautoriseerde IP-adresbereiken van uw AKS-cluster met behulp van de Azure CLI.

Als u dit script wilt gebruiken, kopieert en plakt u het in een nieuw bestand en geeft u het Add-KubernetesChaosStudioAuthorizedIPs.ps1een naam en voert u het script uit met behulp van de opmerkingen.

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

Handmatige toevoeging

Meer informatie over het beperken van AKS-netwerktoegang tot een set IP-bereiken hier. U kunt de IP-adresbereiken van Chaos Studio verkrijgen door een query uit te voeren op de ChaosStudio servicetag met de Service Tag Discovery-API of downloadbare JSON-bestanden.