Freigeben über


Hinzufügen von Chaos Studio-IPs als für AKS autorisierte IPs

Übersicht

Mit Azure Kubernetes Service können Sie zulassen, dass nur bestimmte IP-Bereiche ein Cluster erreichen können. Wenn Sie diese Option aktivieren, können die AKS-Fehler von Chaos Studio fehlschlagen, es sei denn, Sie autorisieren die IP-Adressen, die von Chaos Studio für die Kommunikation verwendet werden.

Wenn Sie beispielsweise versuchen, einen Chaos Mesh-Fehler in einem AKS-Cluster mit autorisierten IP-Bereichen auszuführen, aber die IP-Adressen von Chaos Studio nicht zulässig sind, schlägt das Experiment möglicherweise mit folgendem Timeoutfehler fehl: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.

Autorisieren von IPs

Es gibt mehrere Möglichkeiten, dieses Problem zu lösen:

  1. Verwenden eines Diensttags von Chaos Studio, um die relevanten IPs zu autorisieren (Vorschau)
  2. Verwenden eines PowerShell-Skripts, um die IPs abzurufen und automatisch hinzuzufügen
  3. Manuelles Abrufen und Hinzufügen der IPs

Verwenden von Diensttags mit AKS-Previewfunktion

Bei einem Diensttag handelt es sich um eine Gruppe von IP-Adresspräfixen, die Ein- und Ausgangsregeln für Netzwerksicherheitsgruppen zugewiesen werden können. Es verarbeitet automatisch Updates für die Gruppe der IP-Adresspräfixe ohne jeglichen Eingriff. Da Diensttags in erster Linie dazu dienen, die IP-Adressfilterung zu ermöglichen, sind sie allein nicht ausreichend, um den Datenverkehr zu schützen.

Sie können eine AKS-Previewfunktion verwenden, um Diensttags direkt zu den autorisierten IP-Bereichen hinzuzufügen: Verwenden eines Diensttags für autorisierte IP-Bereiche von API Servern.

Das entsprechende Diensttag lautet ChaosStudio.

PowerShell Script

Das folgende PowerShell-Skript ruft die IP-Adressen ab, die im ChaosStudio-Diensttag aufgeführt sind, und fügt sie mithilfe der Azure CLI zu den autorisierten IP-Bereichen Ihres AKS-Clusters hinzu.

Um dieses Skript zu verwenden, kopieren Sie es, fügen Sie es in eine neue Datei ein, und vergeben Sie den Namen Add-KubernetesChaosStudioAuthorizedIPs.ps1. Führen Sie dann das Skript mithilfe der kommentierten Anweisungen aus.

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

Manuelles Hinzufügen

Informationen zum Beschränken des AKS-Netzwerkzugriffs auf bestimmte IP-Adressbereiche finden Sie hier. Sie können die IP-Adressbereiche von Chaos Studio abrufen, indem Sie das ChaosStudio Diensttag mit der Diensttagermittlungs-API oder mit herunterladbaren JSON-Dateien abfragen.