AzureFunctionOnKubernetes@1 . Функция Azure в задаче Kubernetes версии 1
Разверните функцию Azure в кластере Kubernetes.
Синтаксис
# Azure Function on Kubernetes v1
# Deploy Azure function to Kubernetes cluster.
- task: AzureFunctionOnKubernetes@1
inputs:
# Service Connections
connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection'. Required. Service connection type. Default: Kubernetes Service Connection.
dockerRegistryServiceConnection: # string. Required. Docker registry service connection.
#kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection. Kubernetes service connection.
#azureSubscriptionConnection: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager. Azure subscription.
#azureResourceGroup: # string. Required when connectionType = Azure Resource Manager. Resource group.
#kubernetesCluster: # string. Required when connectionType = Azure Resource Manager. Kubernetes cluster.
# Commands
#namespace: # string. Kubernetes namespace.
#secretName: # string. Secret Name.
#dockerHubNamespace: # string. Docker Hub namespace.
appName: # string. Required. Application Name.
#functionRootDirectory: # string. Function root directory.
#waitForStability: true # boolean. Wait for stability. Default: true.
#arguments: # string. Arguments.
Входные данные
connectionType
- Тип подключения службы
string
. Обязательный. Допустимые значения: Azure Resource Manager
, Kubernetes Service Connection
. Значение по умолчанию: Kubernetes Service Connection
.
Выберите тип подключения службы Kubernetes.
Kubernetes Service Connection
— позволяет предоставить файл KubeConfig, указать учетную запись службы или импортировать экземпляр AKS с помощью параметра Подписка Azure . Для импорта экземпляра AKS с параметром "Подписка Azure " требуется доступ к кластеру Kubernetes во время настройки подключения службы.Azure Resource Manager
— позволяет выбрать экземпляр AKS. Не обращается к кластеру Kubernetes во время настройки подключения к службе.
Дополнительные сведения см. в разделе Примечания.
dockerRegistryServiceConnection
- Подключение к службе реестра Docker
string
. Обязательный.
Выберите подключение к службе реестра Docker.
kubernetesServiceConnection
- Подключение службы Kubernetes
Входной псевдоним: kubernetesServiceEndpoint
. string
. Требуется при .connectionType = Kubernetes Service Connection
Выберите подключение службы Kubernetes.
azureSubscriptionConnection
- Подписка Azure
Входной псевдоним: azureSubscriptionEndpoint
. string
. Требуется при .connectionType = Azure Resource Manager
Выберите подписку Azure Resource Manager, содержащую Реестр контейнеров Azure. Примечание. Чтобы настроить новое подключение к службе, выберите подписку Azure из списка и нажмите кнопку "Авторизовать". Если ваша подписка отсутствует в списке или вы хотите использовать существующий субъект-службу, вы можете настроить подключение к службе Azure с помощью кнопки "Добавить" или "Управление".
azureResourceGroup
- Группа ресурсов
string
. Требуется при .connectionType = Azure Resource Manager
Выберите группу ресурсов Azure.
kubernetesCluster
- Кластер Kubernetes
string
. Требуется при .connectionType = Azure Resource Manager
Выберите управляемый кластер Azure.
namespace
- Пространство имен Kubernetes
string
.
Пространство имен Kubernetes.
secretName
- Имя секрета
string
.
Секрет Kubernetes, содержащий данные конфигурации функции (например, AzureWebJobsStorage: Azure storage connection string
).
dockerHubNamespace
- пространство имен Docker Hub
string
.
Docker Hub пространства имен. Требуется для частного репозитория Docker Hub.
appName
- Имя приложения
string
. Обязательный.
Имя приложения. Созданные объекты Kubernetes используют это имя. Это должно соответствовать соглашениям об именовании Kubernetes для имен ресурсов.
functionRootDirectory
- Корневой каталог функции
string
.
Корневой каталог функции. Должен содержать файл host.json. Сборка и отправка Docker выполняется из этого каталога.
waitForStability
- Ожидание стабильности
boolean
. Значение по умолчанию: true
.
Дождитесь, пока объекты Kubernetes достигнут нужного состояния.
arguments
- Аргументы
string
.
Передайте аргументы в команду. Например,
--no-docker --service-type NodePort.
Параметры управления задачами
Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Рекомендации по подключению службы Kubernetes при доступе к AKS
Подключение к службе Kubernetes можно создать с помощью любого из следующих вариантов.
- KubeConfig
- Учетная запись службы
- Подписка Azure
При выборе параметра Подписка Azure Kubernetes должен быть доступен для Azure DevOps во время настройки подключения службы. Подключение к службе не может быть создано по разным причинам, например вы создали частный кластер или в кластере отключены локальные учетные записи. В таких случаях Azure DevOps не может подключиться к кластеру во время настройки подключения службы, и вы увидите зависание экрана Загрузка пространств имен .
Начиная с Kubernetes 1.24, долгоживущие маркеры больше не создаются по умолчанию. Kubernetes не рекомендует использовать маркеры с длительным сроком действия. В результате задачи, использующие подключение службы Kubernetes, созданное с помощью подписки Azure , не имеют доступа к постоянному маркеру, необходимому для проверки подлинности, и не могут получить доступ к кластеру Kubernetes. Это также приводит к закреплению диалогового окна Загрузка пространств имен .
Использование подключения службы azure Resource Manager для доступа к AKS
Для клиентов AKS тип подключения службы Azure Resource Manager является лучшим способом подключения к частному кластеру или кластеру с отключенными локальными учетными записями. Этот метод не зависит от подключения к кластеру во время создания подключения службы. Доступ к AKS откладывается в среду выполнения конвейера, которая имеет следующие преимущества:
- Доступ к (частному) кластеру AKS можно осуществлять из локального агента или агента масштабируемого набора с прямой видимости кластера.
- Маркер создается для каждой задачи, которая использует подключение службы azure Resource Manager. Это гарантирует, что вы подключаетесь к Kubernetes с помощью короткого маркера, который является рекомендацией Kubernetes.
- Доступ к AKS можно получить, даже если локальные учетные записи отключены.
Часто задаваемые вопросы о подключении службы
Появляется следующее сообщение об ошибке: Не удалось найти секрет, связанный с учетной записью службы. Что происходит?
Вы используете параметр Подключение к службе Kubernetes с подпиской Azure. Мы обновляем этот метод для создания токенов с длительным сроком действия. Ожидается, что он будет доступен в середине мая. Однако рекомендуется начать использовать тип подключения службы Azure, а не использовать маркеры с длительным сроком существования, как указано в руководстве Kubernetes.
Я использую AKS и не хочу ничего менять. Могу ли я продолжать использовать задачи с подключением к службе Kubernetes?
Мы обновляем этот метод для создания токенов с длительным сроком действия. Ожидается, что он будет доступен в середине мая. Однако имейте в виду, что этот подход противоречит рекомендациям Kubernetes.
Я использую задачи Kubernetes и подключение службы Kubernetes, но не AKS. Стоит ли мне беспокоиться?
Задачи будут продолжать работать, как и раньше.
Будет ли удален тип подключения к службе Kubernetes?
Наши задачи Kubernetes работают с любым кластером Kubernetes, независимо от того, где они выполняются. Подключение к службе Kubernetes будет продолжать существовать.
Я клиент AKS, и все работает нормально, должен ли я действовать?
Нет необходимости ничего менять. Если вы используете подключение к службе Kubernetes и выбрали подписку Azure во время создания, следует учитывать рекомендации Kubernetes по использованию маркеров с длительным сроком действия.
Я создаю среду Kubernetes и не могу использовать подключения к службам
Если вы не можете получить доступ к AKS во время создания среды, можно использовать пустую среду и задать connectionType
входные данные для подключения службы Resource Manager Azure.
У меня есть AKS, настроенный с помощью Azure Active Directory RBAC, и мой конвейер не работает. Будут ли эти обновления устранять это?
Доступ к Kubernetes при включении AAD RBAC не связан с созданием маркера. Чтобы предотвратить интерактивный запрос, мы будем поддерживать kubelogin в следующем обновлении.
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | Все поддерживаемые версии агента. |
Категория задач | Развертывание |