https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux
Переменные:
RG=myResourceGroup AKS=myAKSCluster
https://hub.docker.com/_/microsoft-azure-cli
Установка клиента kubectl:
az aks install-cli
Вход в azure:
az login
Подключение к кластеру:
az aks get-credentials -g $RG -n $AKS
https://docs.microsoft.com/ru-ru/cli/azure/run-azure-cli-docker - Запуск Azure CLI в контейнере Docker
https://docs.microsoft.com/ru-ru/azure/aks/kubernetes-walkthrough - Развертывание кластера Службы Azure Kubernetes с помощью Azure CLI
Список location:
az account list-locations -o table
Список подписок:
az account list --output table az account list --query [].name
Сменить подписку:
az account set --subscription <NAME>
Запуск контейнера с сохранением информации аутентификации:
docker run -it -d \ -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro \ -v /data/docker/azure-cli/root:/root \ --name azure-cli mcr.microsoft.com/azure-cli
Получить SP ID кластера:
SP_ID=$(az aks show --resource-group $RG --name $AKS --query servicePrincipalProfile.clientId -o tsv)
Проверить срок истечения SP:
az ad sp credential list --id $SP_ID --query "[].endDate" -o tsv
Сбросить SP с истечением до 2031-06-06 (по умолчанию на год) и получить его секрет:
SP_SECRET=$(az ad sp credential reset --name $SP_ID --query password --end-date 2031-06-06 -o tsv)
Обновить SP в кластере:
az aks update-credentials --resource-group $RG --name $AKS --reset-service-principal --service-principal $SP_ID --client-secret $SP_SECRET
https://docs.microsoft.com/en-us/azure/aks/update-credentials#update-aks-cluster-with-new-credentials
https://docs.microsoft.com/en-us/azure/aks/update-credentials#update-aks-cluster-with-new-service-principal-credentials
Обновить:
az aks upgrade --resource-group $RG --name $AKS --kubernetes-version 1.24.9
Ошибка: This cluster is in a failed state.
Решение при ошибочном состоянии кластера: повторить обновление из консоли.
https://learn.microsoft.com/en-us/answers/questions/893384/azure-aks-cluster-is-in-failed-state
Подключить реестр контейнеров к кластеру:
az aks update -n $AKS -g $RG --attach-acr registryName
https://docs.microsoft.com/ru-ru/cli/azure/aks?view=azure-cli-latest#az_aks_check_acr
Подключить от другой подписки:
az aks update -g $RG -n $AKS --attach-acr <REGISTER_ID>
Список id реестров:
az resource list --name idscan --query [].id | grep registries
https://stackoverflow.com/questions/60210403/how-to-attach-acr-from-different-subscription-to-aks
Показать id всех дисков:
az disk list | jq ".[]|.id"
https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest
Показать лог сервиса:
az webapp log tail --name $AppServiceName --resource-group $ResourceGroupAppService
Разрешить скачивать образы с приватного реестра Azure (добавить роль приложению и настроить для извлечения на использование удостоверения):
Переменные:
az role assignment create --assignee $(az webapp identity assign --resource-group $ResourceGroupAppService --name $AppServiceName --query principalId --output tsv) --scope /subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupContainerRegistry/providers/Microsoft.ContainerRegistry/registries/$ContainerRegistryName --role "AcrPull" az webapp config set --resource-group $ResourceGroupAppService --name $AppServiceName --generic-configurations '{"acrUseManagedIdentityCreds": true}'
или через ресурс настроить для извлечения на использование удостоверения:
az resource update --ids /subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupAppService/providers/Microsoft.Web/sites/$AppServiceName/config/web --set properties.acrUseManagedIdentityCreds=True
https://docs.microsoft.com/ru-ru/azure/app-service/configure-custom-container?pivots=container-linux - Настройка пользовательского контейнера в Службе приложений Azure