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


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

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

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

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

Требования

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