Přidání IP adres aplikace Chaos Studio jako autorizovaných IP adres v AKS
Přehled
Azure Kubernetes Service umožňuje přístup ke clusteru jenom určitým rozsahům IP adres. Pokud jste tuto možnost povolili, chyby AKS aplikace Chaos Studio můžou selhat, pokud neověříte IP adresy používané aplikací Chaos Studio pro komunikaci.
Pokud se například pokusíte spustit chybu Chaos Mesh v clusteru AKS s povolenými autorizovanými rozsahy IP adres, ale IP adresy aplikace Chaos Studio nejsou povolené, experiment může selhat s chybou vypršení časového limitu: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing
.
Autorizace IP adres
Existuje několik způsobů, jak to vyřešit:
- Použití značky služby Chaos Studio k autorizaci příslušných IP adres (Preview)
- Použití skriptu PowerShellu k načtení IP adres a jejich automatickému přidání
- Ruční načtení a přidání IP adres
Použití značek služeb s funkcí AKS Ve verzi Preview
Značka služby je skupina předpon IP adres, které je možné přiřadit příchozím a odchozím pravidlům pro skupiny zabezpečení sítě. Automaticky zpracovává aktualizace skupiny předpon IP adres bez zásahu. Vzhledem k tomu, že značky služeb primárně umožňují filtrování IP adres, samotné značky služeb nestačí k zabezpečení provozu.
Pomocí funkce Preview AKS můžete přidat značky služeb přímo do autorizovaných rozsahů IP adres: Použijte značky služeb pro autorizované rozsahy IP adres serveru API.
Relevantní značka služby je ChaosStudio
.
Skript PowerShellu
Následující skript PowerShellu načte IP adresy uvedené ve ChaosStudio
značce služby a přidá je do autorizovaných rozsahů IP adres clusteru AKS pomocí Azure CLI.
Pokud chcete tento skript použít, zkopírujte ho a vložte ho do nového souboru a pojmenujte ho Add-KubernetesChaosStudioAuthorizedIPs.ps1
a spusťte ho pomocí okomentovaných pokynů.
# 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)"
}
Ruční přidání
Tady se dozvíte, jak omezit síťový přístup AKS na sadu rozsahů IP adres. Rozsahy IP adres aplikace Chaos Studio můžete získat dotazováním ChaosStudio
značky služby pomocí rozhraní API zjišťování značek služby nebo souborů JSON ke stažení.