Добавление IP-адресов Chaos Studio в качестве авторизованных IP-адресов в AKS
Обзор
Служба Azure Kubernetes позволяет получить доступ к кластеру только в определенных диапазонах IP-адресов. Если этот параметр включен, ошибки AKS в Chaos Studio могут завершиться ошибкой, если только вы не авторизуете IP-адреса, используемые Chaos Studio для обмена данными.
Например, если вы пытаетесь запустить ошибку Chaos Mesh в кластере AKS с включенными авторизованными диапазонами IP-адресов, но IP-адреса Chaos Studio не разрешены, эксперимент может завершиться ошибкой времени ожидания: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing
Авторизация IP-адресов
Есть несколько способов устранить эту проблему.
- Использование тега службы Chaos Studio для авторизации соответствующих IP-адресов (предварительная версия)
- Использование скрипта PowerShell для получения IP-адресов и их автоматического добавления
- Извлечение и добавление IP-адресов вручную
Использование тегов служб с функцией предварительной версии AKS
Тег службы — это группа префиксов IP-адресов, которым можно назначать правила для входящих и исходящих подключений для групп безопасности сети. Он автоматически обрабатывает обновления группы префиксов IP-адресов без каких-либо действий. Так как теги служб в основном позволяют фильтровать IP-адреса, теги служб недостаточно для защиты трафика.
Вы можете использовать функцию предварительной версии AKS для добавления тегов служб непосредственно в авторизованные диапазоны IP-адресов. Используйте теги служб для авторизованных диапазонов IP-адресов сервера API.
Соответствующий тег службы .ChaosStudio
Скрипт PowerShell
Следующий скрипт PowerShell извлекает IP-адреса, перечисленные в ChaosStudio
теге службы, и добавляет их в авторизованные диапазоны IP-адресов кластера AKS с помощью Azure CLI.
Чтобы использовать этот скрипт, скопируйте и вставьте его в новый файл и назовите его Add-KubernetesChaosStudioAuthorizedIPs.ps1
, а затем запустите скрипт с помощью закомментированных инструкций.
# 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)"
}
Добавление вручную
Узнайте, как ограничить сетевой доступ AKS к набору диапазонов IP-адресов. Диапазоны IP-адресов Chaos Studio можно получить, запросив ChaosStudio
тег службы с помощью API обнаружения тегов службы или скачиваемых JSON-файлов.