Поделиться через


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.


подключения к службе Kubernetes kubernetesServiceConnection -
Псевдоним ввода: 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.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Нет.

Замечания

Рекомендации по подключению к службе Kubernetes при доступе к AKS

Вы можете создать подключение службы Kubernetes с любым из следующих параметров.

  • КубеКонфиг
  • Сервисная учетная запись
  • Подписка на Azure

снимок экрана: выбор метода проверки подлинности подключения службы Kubernetes.

При выборе параметра подписки Azure kubernetes необходимо получить доступ к Azure DevOps во время настройки подключения службы. Могут возникнуть различные причины, по которым невозможно создать подключение к службе, например, вы создали частный кластер или кластер имеет локальных учетных записей, отключенных. В этих случаях Azure DevOps не может подключиться к кластеру во время настройки подключения к службе, и вы увидите зависшие экране загрузки пространств имен.

снимок экрана: выбор диалогового окна проверки подлинности подключения службы Kubernetes при загрузке пространств имен.

Начиная с 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 входные данные для подключения службы Azure Resource Manager.

У меня есть AKS, настроенный с помощью Azure Active Directory RBAC, и мой конвейер не работает. Будут ли эти обновления разрешать это?

Доступ к Kubernetes при включении AAD RBAC не связан с созданием маркера. Чтобы предотвратить интерактивный запрос, мы будем поддерживать kubelogin в будущем обновлении.

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
Требования Отсутствует
Возможности Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента Все поддерживаемые версии агента.
Категория задач Развертывание