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:
- De servicetag van Chaos Studio gebruiken om de relevante IP-adressen te autoriseren (preview)
- Een PowerShell-script gebruiken om de IP-adressen op te halen en deze automatisch toe te voegen
- 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.ps1
een 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.