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:
- Verwenden eines Diensttags von Chaos Studio, um die relevanten IPs zu autorisieren (Vorschau)
- Verwenden eines PowerShell-Skripts, um die IPs abzurufen und automatisch hinzuzufügen
- 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.