Adición de direcciones IP de Chaos Studio como direcciones IP autorizadas en AKS
Información general
Azure Kubernetes Service permite que solo determinados intervalos IP alcance a un clúster. Si ha habilitado esta opción, los errores de AKS de Chaos Studio pueden producir un error, a menos que autorice las direcciones IP usadas por Chaos Studio para la comunicación.
Por ejemplo, si intenta ejecutar un error de Chaos Mesh en un clúster de AKS con intervalos IP autorizados habilitados, pero no se permiten las direcciones IP de Chaos Studio, el experimento puede producir un error de tiempo de espera: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing
.
Autorización de direcciones IP
Hay varias formas de solucionar esto:
- Uso de la etiqueta de servicio de Chaos Studio para autorizar las direcciones IP pertinentes (versión preliminar)
- Uso de un script de PowerShell para recuperar las direcciones IP y agregarlas automáticamente
- Recuperar y agregar las direcciones IP manualmente
Uso de etiquetas de servicio con la característica de versión preliminar de AKS
Una etiqueta de servicio es un grupo de prefijos de dirección IP que se pueden asignar a reglas de entrada y salida para grupos de seguridad de red. Controla automáticamente las actualizaciones del grupo de prefijos de dirección IP sin intervención alguna. Dado que las etiquetas de servicio habilitan principalmente el filtrado de direcciones IP, las etiquetas de servicio por sí solas no son suficientes para proteger el tráfico.
Puede usar una característica de AKS en versión preliminar para agregar etiquetas de servicio directamente a los intervalos IP autorizados: Usar etiquetas de servicio para intervalos IP autorizados del servidor de API.
La etiqueta de servicio pertinente es ChaosStudio
.
Script de PowerShell
El siguiente script de PowerShell recupera las direcciones IP enumeradas en la etiqueta de servicio ChaosStudio
y las agrega a los intervalos IP autorizados del clúster de AKS mediante la CLI de Azure.
Para usar este script, copie y péguelo en un archivo nuevo y asígnelo el nombre Add-KubernetesChaosStudioAuthorizedIPs.ps1
, y a continuación, ejecute el script con las instrucciones comentadas.
# 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)"
}
Adición manual
Aprenda a limitar el acceso de red de AKS a un conjunto de intervalos IP aquí. Puede obtener los intervalos IP de Chaos Studio consultando la etiqueta de servicio ChaosStudio
con la API de detección de etiquetas de servicio o archivos JSON descargables.