Aggiungere gli indirizzi IP di Chaos Studio come indirizzi IP autorizzati nel servizio Azure Kubernetes
Panoramica
servizio Azure Kubernetes consente solo a determinati intervalli IP di raggiungere un cluster. Se è stata abilitata questa opzione, gli errori del servizio Azure Kubernetes di Chaos Studio potrebbero non riuscire, a meno che non si autorizzano gli indirizzi IP usati da Chaos Studio per la comunicazione.
Ad esempio, se si tenta di eseguire un errore Chaos Mesh in un cluster del servizio Azure Kubernetes con intervalli IP autorizzati abilitati, ma gli indirizzi IP di Chaos Studio non sono consentiti, l'esperimento potrebbe non riuscire con l'errore di timeout: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing
.
Autorizzazione degli indirizzi IP
Esistono diversi modi per risolvere questo problema:
- Usare il tag del servizio di Chaos Studio per autorizzare gli indirizzi IP pertinenti (anteprima)
- Usare uno script di PowerShell per recuperare gli indirizzi IP e aggiungerli automaticamente
- Recuperare e aggiungere manualmente gli indirizzi IP
Usare i tag del servizio con la funzionalità di anteprima del servizio Azure Kubernetes
Un tag del servizio è un gruppo di prefissi di indirizzi IP che possono essere assegnati alle regole in ingresso e in uscita per i gruppi di sicurezza di rete. Gestisce automaticamente gli aggiornamenti al gruppo di prefissi di indirizzi IP senza alcun intervento. Poiché i tag del servizio abilitano principalmente il filtro degli indirizzi IP, i tag del servizio da soli non sono sufficienti per proteggere il traffico.
È possibile usare una funzionalità del servizio Azure Kubernetes di anteprima per aggiungere tag di servizio direttamente agli intervalli IP autorizzati: usare i tag del servizio per gli intervalli IP autorizzati del server API.
Il tag del servizio pertinente è ChaosStudio
.
Script di PowerShell
Lo script di PowerShell seguente recupera gli indirizzi IP elencati nel tag del ChaosStudio
servizio e li aggiunge agli intervalli IP autorizzati del cluster del servizio Azure Kubernetes usando l'interfaccia della riga di comando di Azure.
Per usare questo script, copiarlo e incollarlo in un nuovo file e denominarlo Add-KubernetesChaosStudioAuthorizedIPs.ps1
, quindi eseguire lo script usando le istruzioni commentate.
# 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://zcusa.951200.xyz/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)"
}
Aggiunta manuale
Informazioni su come limitare l'accesso alla rete del servizio Azure Kubernetes a un set di intervalli IP sono disponibili qui. È possibile ottenere gli intervalli IP di Chaos Studio eseguendo una query sul ChaosStudio
tag del servizio con l'API di Individuazione tag del servizio o file JSON scaricabili.