Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описано, как использовать соединитель служб для подключения учетной записи служба хранилища Azure к pod в кластере Azure Kubernetes Service (AKS) с помощью удостоверения рабочей нагрузки. Выполните следующие задачи.
- Создайте кластер AKS и учетную запись служба хранилища Azure.
- Создайте подключение между кластером AKS и учетной записью служба хранилища Azure с помощью соединителя службы.
- Клонируйте пример приложения, которое подключается к учетной записи служба хранилища Azure из кластера AKS.
- Разверните приложение в модуле pod в кластере AKS и проверьте подключение.
- Очистите ресурсы.
Предварительные условия
- Базовое понимание контейнеров, идентификации рабочей нагрузки и AKS. Дополнительные сведения см. в разделе Tutorial: подготовка приложения для Azure Kubernetes Service (AKS).
- Подписка Azure, в которой у вас есть разрешения на запись ресурсов Azure, в регионе Azure, который поддерживает Service Connector и имеет достаточно поддержки AKS и вычислительных квот для выполнения учебника. Создайте учетную запись бесплатно .
- Поставщики ресурсов
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryиMicrosoft.ManagedIdentity,зарегистрированные в подписке Azure. Чтобы зарегистрировать поставщиков, можно запуститьaz provider register -n Microsoft.[service]. - Git для доступа и клонирования примера репозитория.
-
Docker и kubectl , установленные для управления образом контейнера и ресурсами Kubernetes. Установите
kubectlлокально, выполнив командуaz aks install-cli. - Azure CLI установлен.
Создание ресурсов Azure
Войдите в Azure, выполнив az login и следуйте указаниям.
Создайте группу ресурсов Azure для использования в этом руководстве, заменив заполнитель
<region>допустимым значением.locationдолжен быть регионом Azure, где подписка имеет достаточную квоту вычислений для ресурсов Azure и никаких ограничений на какие-либо службы.az group create \ --name MyResourceGroup \ --location <region>Создайте кластер AKS для хранения подключения к службе, определения pod и примера приложения, выполнив следующую команду. Дополнительные сведения см. в разделе Quickstart: развертывание кластера Azure Kubernetes Service (AKS) с помощью Azure CLI.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Подключитесь к кластеру, выполнив следующую команду.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterСоздайте учетную запись служба хранилища Azure как целевую службу, с которой будет подключаться кластер AKS и взаимодействовать приложение-пример. Дополнительные сведения см. в разделе Создание учетной записи хранения Azure. Выполните следующую команду, заменив
<storageaccountname>именем, которое равно 3-24 строчным или числовым символам и является уникальным в Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSСоздайте реестр контейнеров Azure для размещения образа контейнера приложения, используемого в определении pod AKS. Дополнительные сведения см. в статье Quickstart: создание реестра контейнеров Azure с помощью портала Azure. Выполните следующую команду, заменив
<registryname>именем, которое равно 5-50 строчным или числовым символам и является уникальным в Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardВключите анонимную загрузку, чтобы кластер AKS мог использовать образы реестра. Замените
<registryname>заполнитель именем реестра.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledВыполните следующую команду, чтобы создать управляемое удостоверение, назначаемое пользователем, которое может быть использовано для создания подключения службы с целью включения идентификации рабочей нагрузки для рабочих нагрузок AKS. Дополнительные сведения см. в разделе Управление управляемыми удостоверениями, назначаемыми пользователем, с помощью портала Azure.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Создание подключения к службе с помощью Service Connector
Создайте подключение службы между кластером AKS и учетной записью служба хранилища Azure с помощью Azure CLI или портала Azure.
Выполните следующую команду Azure CLI, чтобы создать подключение службы к учетной записи хранения Azure. Замените <storageaccountname> на имя учетной записи хранения и <user-identity-resource-id> на идентификатор ресурса управляемого удостоверения, назначаемого пользователем.
Идентификатор ресурса управляемого удостоверения, назначаемого пользователем, можно получить из выходных данных предыдущей команды az identity create или использовать формат /subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyIdentity.
az aks connection create storage-blob \
--resource-group MyResourceGroup \
--name MyAKSCluster \
--target-resource-group MyResourceGroup \
--account <storageaccountname> \
--workload-identity <user-identity-resource-id>
После создания подключения на странице соединителя службы Azure портала отображаются сведения о новом подключении. Эти сведения можно использовать при редактировании файла pod.yaml далее в этом руководстве.
Создание примера приложения
Клонируйте пример репозитория, а затем перейдите в каталог, содержащий пример приложения. Выполните оставшиеся команды из этой папки.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityСоздайте и отправьте образы в реестр контейнеров с помощью
az acr buildкоманды. Замените<registryname>заполнитель именем реестра.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Просмотрите образ в вашем реестре контейнеров с помощью команды
az acr repository list. Замените<registryname>заполнитель именем реестра.az acr repository list --name <registryname> --output table
Запуск приложения и проверка подключения
Замените следующие заполнители в файле pod.yaml в папке локального приложения:
-
<YourContainerImage>: замените имя образа в реестре контейнеров, например<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: замените созданным после создания подключения учетной записью службы Service Connector. Вы можете проверить имя учетной записи службы на странице соединителя службы кластера AKS на портале Azure. -
<SecretCreatedByServiceConnector>: замените соединитель секретной службы, созданный после создания подключения. Вы можете проверить имя учетной записи службы на странице соединителя службы кластера AKS на портале Azure.
-
Разверните модуль pod в кластере с помощью
kubectl apply. Команда создает pod с именемsc-demo-storage-identityв пространстве имен по умолчанию кластера AKS.kubectl apply -f pod.yamlУбедитесь, что развертывание выполнено успешно, просмотрев pod с помощью
kubectl.kubectl get pod/sc-demo-storage-identityУбедитесь, что подключение установлено, просматривая журналы с помощью
kubectl.kubectl logs pod/sc-demo-storage-identity
Очистка ресурсов
Если вам больше не нужны созданные для этого руководства ресурсы Azure, их можно удалить, удалив группу ресурсов MyResourceGroup.
az group delete \
--resource-group MyResourceGroup