Lägga till Chaos Studio-IP-adresser som auktoriserade IP-adresser på AKS
Översikt
Med Azure Kubernetes Service kan du endast tillåta att vissa IP-intervall når ett kluster. Om du har aktiverat det här alternativet kan Chaos Studios AKS-fel misslyckas, såvida du inte auktoriserar IP-adresserna som används av Chaos Studio för kommunikation.
Om du till exempel försöker köra ett Chaos Mesh-fel på ett AKS-kluster med auktoriserade IP-intervall aktiverade, men Chaos Studio IP-adresser inte tillåts, kan experimentet misslyckas med timeout-felet: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing
.
Auktorisera IP-adresser
Det finns flera sätt att lösa detta:
- Använd Chaos Studios tjänsttagg för att auktorisera relevanta IP-adresser (förhandsversion)
- Använd ett PowerShell-skript för att hämta IP-adresserna och lägga till dem automatiskt
- Hämta och lägg till IP-adresserna manuellt
Använda tjänsttaggar med aks-förhandsversionsfunktionen
En tjänsttagg är en grupp MED IP-adressprefix som kan tilldelas till regler för inkommande och utgående trafik för nätverkssäkerhetsgrupper. Den hanterar automatiskt uppdateringar av gruppen med IP-adressprefix utan några åtgärder. Eftersom tjänsttaggar främst aktiverar IP-adressfiltrering räcker det inte med enbart tjänsttaggar för att skydda trafiken.
Du kan använda en förhandsversion av AKS-funktionen för att lägga till tjänsttaggar direkt till de auktoriserade IP-intervallen: Använd tjänsttaggar för API Server-auktoriserade IP-intervall.
Den relevanta tjänsttaggen är ChaosStudio
.
PowerShell-skript
Följande PowerShell-skript hämtar IP-adresserna som anges i tjänsttaggen och lägger till dem i ChaosStudio
AKS-klustrets auktoriserade IP-intervall med hjälp av Azure CLI.
Om du vill använda det här skriptet kopierar du och klistrar in det i en ny fil och namnger den Add-KubernetesChaosStudioAuthorizedIPs.ps1
och kör sedan skriptet med hjälp av de kommenterade anvisningarna.
# 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)"
}
Manuell tillägg
Lär dig hur du begränsar AKS-nätverksåtkomst till en uppsättning IP-intervall här. Du kan hämta Chaos Studios IP-intervall genom att ChaosStudio
köra frågor mot tjänsttaggen med API:et för identifiering av tjänsttaggar eller nedladdningsbara JSON-filer.