Ошибка обновления AKS через PowerShell при отключенных локальных учетных записях и пользователе, выполняющем обновление, с ролью администратора кластера Azure Kubernetes Service RBAC.

Вопрос или проблема

При попытке обновить кластер AKS с помощью Powershell я сталкиваюсь с ошибками, когда вызов обновления отправляется в Azure. У пользователя, выполняющего обновление, есть роль Azure Kubernetes Service RBAC Cluster Admin, и ошибок не появляется в Powershell, команды просто возвращают результат, но есть ошибки в журнале активности на AKS.

Команды Powershell для обновления

$aksCluster = Get-AzAksCluster -ResourceGroupName $resourceGroupName -Name $aksClusterName 
$aksUpgrade = $aksCluster | Set-AzAksCluster -KubernetesVersion $version -AsJob

Ошибки, видимые в журнале активности

Операция идентификации для ресурса

Создать или обновить управляемый кластер

‘/subscriptions/<sub_id>/resourceGroups/rg001/providers/Microsoft.ContainerService/managedClusters/aks04001’
не удалась с ошибкой ‘Не удалось выполнить операцию идентификации ресурса.
Статус: ‘Неверный запрос’. Ответ:
‘{“error”:{“code”:”BadRequest”,”message”:”Формат запроса был
неожиданным, тип идентичности, не относящийся к пользователю, не должен содержать:
userAssignedIdentities”}}’.’.

Я не уверен, что мне нужно передать в Set-AzAksCluster -KubernetesVersion $version, чтобы это распознало администратора AKS. Когда я вхожу в портал, обновление работает нормально, но для автоматизации было бы проще сделать это через Powershell.

Ответ или решение

Когда вы сталкиваетесь с проблемой при обновлении кластера Azure Kubernetes Service (AKS) через PowerShell, особенно если у вас отключены локальные аккаунты, и ваша учетная запись обладает ролью Azure Kubernetes Service RBAC Cluster Admin, рекомендуется обратить внимание на несколько аспектов.

Проблема

Ошибка, с которой вы столкнулись, связана с ошибкой в операции идентификации ресурса. Сообщение об ошибке указывает на то, что запрос содержит неподходящий формат, а именно неправильное использование пользовательских назначенных идентификаторов.

Возможные решения

  1. Проверка конфигурации идентификатора: Убедитесь, что ваш AKS-кластер настроен правильно. Если ваш кластер использует систему управления идентификацией (Managed Identity), необходимо убедиться, что вы не передаете параметры, связанные с userAssignedIdentities, если это не предусмотрено. Обновляя кластер, необходимо указать, чтобы он использовал лишь системный идентификатор (System Assigned Managed Identity).

  2. Использование правильной версии командлета: Убедитесь, что у вас установлена последняя версия Azure PowerShell. Используйте следующий командлет для обновления:

    Update-Module -Name Az
  3. Обновление AKS-кластера без явной передачи userAssignedIdentities: Попробуйте использовать командлет без явной настройки дополнительных идентификаторов. Для этого выполните:

    $aksCluster = Get-AzAksCluster -ResourceGroupName $resourceGroupName -Name $aksClusterName
    $aksUpgrade = $aksCluster | Set-AzAksCluster -KubernetesVersion $version -IdentityType SystemAssigned -AsJob

    Здесь добавляется параметр -IdentityType SystemAssigned, чтобы убедиться, что используется только системный идентификатор управления.

  4. Проверка прав доступа: Убедитесь, что ваша учетная запись имеет необходимые разрешения для выполнения обновления. Хотя роль Azure Kubernetes Service RBAC Cluster Admin должна обеспечивать достаточные права, можете дополнительно проверить разрешения на уровне ресурса через портал Azure.

  5. Журналирование и обработка ошибок: Если ошибка продолжает возникать, введите следующий код для более детальной диагностики:

    $ErrorActionPreference = "Stop"
    try {
       $aksUpgrade = $aksCluster | Set-AzAksCluster -KubernetesVersion $version -IdentityType SystemAssigned -AsJob
    } catch {
       Write-Host "Ошибка: $_"
       # Логирование или дополнительные действия
    }
  6. Обращение к поддержке Azure: Если ничего из вышеперечисленного не помогло, рекомендуется обратиться в службу поддержки Azure с подробным описанием проблемы, включая логи и значения параметров, которые вы использовали.

Заключение

Следуя этим шагам, вы сможете решить проблему с обновлением кластера AKS через PowerShell. Подходите к диагностике внимательно и шаг за шагом проверяйте настройки вашего кластера и узнаваемую идентификацию.

Оцените материал
Добавить комментарий

Капча загружается...