Содержание

azure-cli

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

Запуск контейнера с сохранением информации аутентификации:

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

AKS

Service principal

Получить 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

Upgrade

Обновить:

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

Disk

Показать id всех дисков:

az disk list | jq ".[]|.id"

https://docs.microsoft.com/en-us/cli/azure/disk?view=azure-cli-latest

App Service

Показать лог сервиса:

az webapp log tail --name $AppServiceName --resource-group $ResourceGroupAppService

Разрешить скачивать образы с приватного реестра Azure (добавить роль приложению и настроить для извлечения на использование удостоверения):

Переменные:

  • ResourceGroupAppService
  • AppServiceName (имя для слота будет будет как <AppServiceName>/slots/<SlotName> или добавить аргумент –slot <SlotName>)
  • SubscriptionId
  • ResourceGroupContainerRegistry
  • ContainerRegistryName
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