Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба Azure Kubernetes (AKS) — это одна из служб вычислений, поддерживаемых соединителем служб.
В этой статье рассматриваются следующие вопросы:
- Различия между соединителем служб для AKS и другими вычислительными службами.
- Операции, выполняемые в кластере во время создания подключения к службе.
- Операции, выполняемые в целевых службах во время создания подключения к службе.
- Использование ресурсов Kubernetes, созданных служебным соединителем.
- Устранение неполадок и просмотр журналов соединителя служб в кластере AKS.
Предпосылки
- В этом руководстве предполагается, что вы уже знаете основные понятия соединителя служб.
Различия между соединителем служб для AKS и другими вычислительными службами
Соединитель служб для AKS отличается от того, как он работает с другими вычислительными службами, поддерживаемыми соединителем службы несколькими способами. Ниже описаны параметры и поведение AKS для каждой операции API.
Создание
Ниже перечислены параметры создания, относящиеся к AKS. Для ознакомления с инструкциями по созданию нового подключения в AKS используйте портал Azure или Azure CLI.
- Сервисный коннектор для AKS требует
Kubernetes namespace
определения, где создавать ресурсы Kubernetes. По умолчанию используетсяdefault
пространство имен. - Соединитель сервисов для AKS поддерживает
Workload Identity
в качестве надежного варианта для проверки подлинности учетных данных, в то время как другие вычислительные сервисы предлагают параметрыSystem Managed Identity
иUser Managed Identity
. - При использовании Azure Key Vault в качестве целевой службы с включенным драйвером CSI для хранилища секретов, Соединитель служб использует управляемое удостоверение, назначенное пользователем, из надстройки AKS
azure-keyvault-secrets-provider
для проверки подлинности, не требуя от пользователей указания типа проверки подлинности. - Соединитель служб для AKS поддерживает только сетевой
Firewall Rules
вариант, в то время как другие вычислительные службы также могут поддерживатьPrivate Link
иVirtual Network
параметры.
Конфигурации списка
Соединитель служб для AKS отображает только конфигурации без учетных данных в представлениях списка конфигураций. При необходимости пользователи должны вручную проверить учетные данные в связанном ресурсе Kubernetes .
Используя команду Azure CLI az aks connection list-configuration, значение конфигурации учетных данных является пустой строкой. На портале Azure значение конфигурации учетных данных скрыто, как показано ниже.
Ратификация
Соединитель службы для AKS не проверяет изменения конфигурации, внесенные в кластер пользователя, независимо от того, касаются ли они учетных данных или других параметров конфигурации. Однако соединитель служб выполняет следующие проверки, как и для других вычислительных служб:
- Проверка существования целевой службы
- Проверка правил брандмауэра IP для доступа к целевой службе
- Обеспечение назначения ролей для идентификации рабочей нагрузки для доступа к целевой службе
Выходные данные команды Azure CLI az aks connection validate всегда success
. Это же относится к порталу Azure, как показано ниже.
Операции, выполняемые Service Connector в кластере AKS
Операции, выполняемые соединителем службы в кластере AKS, зависят от целевых служб и типов проверки подлинности, выбранных при создании подключения к службе. Ниже перечислены возможные операции, выполняемые соединителем службы.
Добавление расширения соединителя службы Kubernetes
Расширение Kubernetes с именем sc-extension
добавляется в кластер при первом создании соединения с сервисом. Далее расширение помогает создавать ресурсы Kubernetes в кластере пользователя всякий раз, когда запрос на подключение службы приходит к соединителю службы. Расширение находится в кластере AKS пользователя на портале Azure в меню "Расширения + приложения ".
Метаданные подключения кластера также хранятся в расширении. Удаление расширения делает все подключения в кластере недоступными. Оператор расширения размещается в пространстве имен кластера sc-system
.
Создание ресурсов Kubernetes
Соединитель службы создает ресурсы Kubernetes в пространстве имен, которое пользователь указывает при создании подключения к службе. Ресурсы Kubernetes хранят сведения о подключении, необходимые определениям рабочей нагрузки пользователя или коду приложения для взаимодействия с целевыми службами. В зависимости от типа проверки подлинности создаются разные ресурсы Kubernetes. Для типов аутентификации Connection String
и Service Principal
создается секрет Kubernetes.
Workload Identity
Для типа проверки подлинности учетная запись службы Kubernetes также создается в дополнение к секрету Kubernetes.
Ресурсы Kubernetes, созданные соединителем службы для каждого подключения к службе, можно найти на портале Azure в ресурсе Kubernetes в меню соединителя службы.
Удаление подключения к службе не удаляет связанный ресурс Kubernetes. При необходимости удалите ресурс вручную, используя например kubectl delete
команду.
Включение надстройки azureKeyvaultSecretsProvider
Если целевая служба — Azure Key Vault и драйвер CSI хранилища секретов включен, Service Connector включает azureKeyvaultSecretsProvider
надстройку для кластера.
Следуйте инструкциям из руководства по подключению к Azure Key Vault с помощью драйвера CSI , чтобы настроить подключение к Azure Key Vault с помощью драйвера CSI для хранилища секретов.
Включение идентификации рабочей нагрузки и издателя OpenID Connect (OIDC)
Если используется Workload Identity
тип проверки подлинности, соединитель службы включает удостоверение рабочей нагрузки и издателя OIDC для кластера.
Если тип проверки подлинности — Workload Identity
, для создания учетных данных федеративного удостоверения требуется управляемое удостоверение, назначенное пользователем. Дополнительные сведения о удостоверениях рабочей нагрузки или обратитесь к следующему руководству для настройки подключения к службе хранилища Azure с помощью удостоверения рабочей нагрузки.
Операции, выполняемые сервисным соединителем на целевых службах
Соединитель служб для AKS выполняет те же операции с целевыми службами, что и другие вычислительные службы. Однако операции зависят от типов целевых служб и методов проверки подлинности. Ниже перечислены некоторые возможные операции.
Получение конфигураций подключения
Соединитель служб извлекает необходимые конфигурации подключений из целевой службы и задает их в качестве секрета Kubernetes в кластере пользователя. Конфигурации подключения зависят от типа целевой службы и метода проверки подлинности:
-
Connection String
Для типа проверки подлинности конфигурация обычно включает секрет службы или строку подключения. - Обычно для типа проверки подлинности это включает конечную точку службы.
- Для типа проверки подлинности
Service Principal
он содержит идентификатор арендатора, идентификатор клиента и секрет клиента основного объекта службы.
Подробные сведения о конкретных целевых службах см. в соответствующей документации, например в руководстве по службам ИИ Azure .
Создание правил брандмауэра на основе IP-адресов
Соединитель служб извлекает исходящий общедоступный IP-адрес из кластера AKS и создает правила брандмауэра IP-адресов в целевой службе, чтобы разрешить сетевой доступ из кластера.
Создание назначений ролей для идентификатора Microsoft Entra
При использовании Workload Identity
типа проверки подлинности служебный соединитель автоматически назначает роль для удостоверения. Назначенная роль зависит от целевой службы, чтобы обеспечить соответствующий доступ.
Пользователи также могут настраивать назначения ролей по мере необходимости. Дополнительные сведения см. в разделе "Настройка роли".
Используйте ресурсы Kubernetes, созданные соединителем службы
Соединитель служб создает различные ресурсы Kubernetes в зависимости от выбранного типа целевой службы и типа проверки подлинности. В следующих разделах показано, как использовать ресурсы Kubernetes, созданные соединителем службы в определении рабочих нагрузок кластера и коде приложения.
Секрет Kubernetes
Секрет Kubernetes создается, если для типа проверки подлинности задано значение Connection String
или Service Principal
. Определение рабочей нагрузки кластера может напрямую ссылаться на секрет. В следующем фрагменте кода приведен пример.
apiVersion: batch/v1
kind: Job
metadata:
namespace: default
name: sc-sample-job
spec:
template:
spec:
containers:
- name: raw-linux
image: alpine
command: ['printenv']
envFrom:
- secretRef:
name: <SecretCreatedByServiceConnector>
restartPolicy: OnFailure
Код приложения может использовать строку подключения в секрете из переменной среды. Ознакомьтесь со следующим примером кода , чтобы узнать больше о именах переменных среды и о том, как использовать их в коде приложения для проверки подлинности в разных целевых службах.
Учетная запись службы Kubernetes
Учетная запись службы Kubernetes и секрет создаются при установке Workload Identity
типа проверки подлинности. Определение рабочей нагрузки кластера может ссылаться на учетную запись службы и секрет для аутентификации с помощью идентификации рабочей нагрузки. В следующем фрагменте кода приведен пример.
apiVersion: batch/v1
kind: Job
metadata:
namespace: default
name: sc-sample-job
labels:
azure.workload.identity/use: "true"
spec:
template:
spec:
serviceAccountName: <ServiceAccountCreatedByServiceConnector>
containers:
- name: raw-linux
image: alpine
command: ['printenv']
envFrom:
- secretRef:
name: <SecretCreatedByServiceConnector>
restartPolicy: OnFailure
Ознакомьтесь со следующим руководством, чтобы узнать, как подключиться к службе хранилища Azure с помощью идентификатора рабочей нагрузки.
Устранение неполадок и просмотр журналов
Если при создании подключения к службе возникает ошибка, и ее не удается исправить повторной попыткой, следующие методы помогут собрать дополнительные сведения для устранения неполадок.
Проверка расширения Kubernetes соединителя служб
Расширение Kubernetes соединителя служб основано на расширениях кластера Kubernetes с поддержкой Azure Arc. Используйте следующие команды, чтобы проверить наличие ошибок при установке или обновлении расширения.
k8s-extension
Установите расширение Azure CLI.az extension add --name k8s-extension
Получить состояние расширения коннектора службы. Проверьте свойство
statuses
в выходных данных команды для выявления ошибок.az k8s-extension show \ --resource-group MyClusterResourceGroup \ --cluster-name MyCluster \ --cluster-type managedClusters \ --name sc-extension
Проверка журналов кластера Kubernetes
Если во время установки расширения возникает ошибка, а сообщение об ошибке в statuses
свойстве не предоставляет достаточных сведений, вы можете продолжить исследование, проверив журналы Kubernetes, выполнив следующие действия.
Подключитесь к кластеру AKS.
az aks get-credentials \ --resource-group MyClusterResourceGroup \ --name MyCluster
Расширение Соединителя служб устанавливается в
sc-system
пространстве имен с помощью диаграммы Helm. Проверьте пространство имен и релиз Helm с помощью следующих команд.Проверьте, существует ли пространство имен.
kubectl get ns
Проверьте статус релиза Helm.
helm list -n sc-system
Во время установки или обновления расширения задание Kubernetes, которое вызывается
sc-job
, создает ресурсы Kubernetes для подключения к службе. Сбой выполнения задания обычно приводит к сбою расширения. Проверьте состояние задания, выполнив следующие команды. Должно быть, еслиsc-job
не существует в пространстве именsc-system
, то выполнялся успешно. Это задание предназначено для автоматического удаления после успешного выполнения.Проверьте наличие работы.
kubectl get job -n sc-system
Получите статус задания.
kubectl describe job/sc-job -n sc-system
Просмотр журналов заданий.
kubectl logs job/sc-job -n sc-system
Распространенные ошибки и устранение рисков
Ошибка создания расширения
Сообщение об ошибке
-
Unable to get a response from the agent in time
. Extension pods can't be scheduled if all the node pools in the cluster are "CriticalAddonsOnly" tainted
Смягчение:
Обратитесь к ошибкам создания расширения
Ошибки Helm
Сообщения об ошибке:
Unable to download the Helm chart from the repo URL
Эта ошибка вызвана проблемами подключения, возникающими между кластером и брандмауэром, а также проблемами с блокировкой исходящего трафика.
Чтобы устранить эту проблему, ознакомьтесь с правилами исходящей сети и полного доменного имени для кластеров Службы Azure Kubernetes (AKS) и добавьте полное доменное имя, необходимое для извлечения диаграммы Соединителя службы Helm: scaksextension.azurecr.io
Сообщения об ошибке:
Timed out waiting for resource readiness
Helm chart rendering failed with given values
Resource already exists in your cluster
Operation is already in progress for Helm
Смягчение:
Ознакомьтесь с ошибками Helm
Конфликт
Сообщение об ошибке
Operation returned an invalid status code: Conflict
.
Причина :
Эта ошибка обычно возникает при попытке создать подключение к службе, а кластер Службы Azure Kubernetes (AKS) находится в состоянии обновления. Обновление подключения сервиса конфликтует с одновременным обновлением. Эта ошибка также возникает, когда подписка не зарегистрирована в поставщике Microsoft.KubernetesConfiguration
ресурсов.
Смягчение:
Убедитесь, что кластер находится в состоянии "Успешно", и повторите попытку создания.
Выполните следующую команду, чтобы убедиться, что подписка зарегистрирована в поставщике
Microsoft.KubernetesConfiguration
ресурсов.az provider register -n Microsoft.KubernetesConfiguration
Несанкционированный доступ к ресурсам
Сообщение об ошибке
You do not have permission to perform ... If access was recently granted, please refresh your credentials
.
Причина :
Соединитель служб требует разрешений для работы ресурсов Azure, к которым требуется подключиться, для выполнения операций подключения от вашего имени. Эта ошибка указывает на отсутствие необходимых разрешений для некоторых ресурсов Azure.
Смягчение:
Проверьте разрешения на ресурсы Azure, указанные в сообщении об ошибке. Получите необходимые разрешения и повторите создание.
Отсутствует регистрация подписки
Сообщение об ошибке
The subscription is not registered to use namespace 'Microsoft.KubernetesConfiguration'
Причина :
Соединитель служб требует, чтобы подписка была зарегистрирована в Microsoft.KubernetesConfiguration
, которая является поставщиком ресурсов для расширений кластера Kubernetes с поддержкой Azure Arc.
Смягчение:
Microsoft.KubernetesConfiguration
Зарегистрируйте поставщика ресурсов, выполнив следующую команду. Дополнительные сведения об ошибках регистрации поставщика ресурсов см. в разделе "Устранение ошибок для регистрации поставщика ресурсов".
az provider register -n Microsoft.KubernetesConfiguration
Следующий шаг
Узнайте, как интегрировать различные целевые службы и ознакомиться с параметрами конфигурации и методами проверки подлинности.