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


Kubernetes@1 — задача Kubectl версии 1

Развертывание, настройка и обновление кластера Kubernetes в Службе контейнеров Azure с помощью команд kubectl.

Разверните, настройте и обновите кластер Kubernetes в Службе контейнеров Azure, выполнив команды kubectl.

Синтаксис

# Kubectl v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml' | 'none'. Output format. Default: json.
# Kubectl v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Output format. Default: json.
# Deploy to Kubernetes v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Output format. Default: json.
# Deploy to Kubernetes v1
# Deploy, configure, update your Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Azure Resource Manager.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    command: 'apply' # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Required. Command. Default: apply.
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration files. Default: false.
    #configuration: # string. Required when useConfigurationFile = true. Configuration file. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Optional. Use when command != login && command != logout. Kubectl. Default: version.
    #versionSpec: '1.7.0' # string. Optional. Use when versionOrLocation = version && command != login && command != logout. Version spec. Default: 1.7.0.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version && command != login && command != logout. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location && command != login && command != logout. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Optional. Use when command != login && command != logout. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Optional. Use when command != login && command != logout. Output format. Default: json.

Входные данные

connectionType - Тип подключения службы
string. Требуется при .command != logout Допустимые значения: Azure Resource Manager, Kubernetes Service Connection, None. Значение по умолчанию: Kubernetes Service Connection.

Указывает тип подключения службы: Azure Resource Manager при использовании Служба Azure Kubernetes или подключение службы Kubernetes для любого другого кластера.

  • Kubernetes Service Connection — позволяет предоставить файл KubeConfig, указать учетную запись службы или импортировать экземпляр AKS с помощью параметра Подписка Azure . Для импорта экземпляра AKS с параметром "Подписка Azure " требуется доступ к кластеру Kubernetes во время настройки подключения службы.
  • Azure Resource Manager — позволяет выбрать экземпляр AKS. Не обращается к кластеру Kubernetes во время настройки подключения к службе.
  • None — Используйте предварительно созданную конфигурацию Kubernetes, хранящуюся локально.

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


connectionType - Тип подключения службы
string. Требуется при .command != logout Допустимые значения: Azure Resource Manager, Kubernetes Service Connection, None. Значение по умолчанию: Azure Resource Manager.

Указывает тип подключения службы: Azure Resource Manager при использовании Служба Azure Kubernetes или подключение службы Kubernetes для любого другого кластера.


kubernetesServiceEndpoint - Подключение службы Kubernetes
string. Требуется при .connectionType = Kubernetes Service Connection && command != logout

Выберите подключение службы Kubernetes.


azureSubscriptionEndpoint - Подписка Azure
string. Требуется при .connectionType = Azure Resource Manager && command != logout

Указывает подписку Azure Resource Manager, содержащую Реестр контейнеров Azure.

Примечание

Чтобы настроить новое подключение к службе, укажите подписку Azure в списке и щелкните Authorize. Если ваша подписка отсутствует в списке или вы хотите использовать существующий субъект-службу, можно настроить подключение к службе Azure с помощью Add кнопок или Manage .


azureResourceGroup - Группа ресурсов
string. Требуется при .connectionType = Azure Resource Manager && command != logout

Выберите группу ресурсов Azure.


kubernetesCluster - Кластер Kubernetes
string. Требуется при .connectionType = Azure Resource Manager && command != logout

Выберите управляемый кластер Azure.


useClusterAdmin - Использование учетных данных администратора кластера
boolean. Необязательный элемент. Используйте при connectionType = Azure Resource Manager && command != logout. Значение по умолчанию: false.

Используйте учетные данные администратора кластера вместо учетных данных пользователя кластера по умолчанию.


namespace - Пространства имен
string. Необязательный элемент. Используйте при command != logout.

Задайте пространство имен для команды kubectl с помощью флага –namespace. Если пространство имен не указано, команды будут выполняться в пространстве имен по умолчанию.


command - Команды
string. Допустимые значения: apply, create, delete, exec, getexpose, , logoutlogin, , logs, , run, set, . top

Выберите или укажите команду kubectl для выполнения. Список допустимых значений предоставляет некоторые распространенные варианты для простоты выбора при использовании задачи помощник, но вы можете указать другие команды kubectl, такие как scale. arguments Используйте входные данные, чтобы указать дополнительные параметры для указанной kubectl команды.


command - Команды
string. Обязательный. Допустимые значения: apply, create, delete, exec, getexpose, , logoutlogin, , logs, , run, set, . top Значение по умолчанию: apply.

Выберите или укажите команду kubectl для выполнения.


useConfigurationFile - Использование конфигурации
boolean. Необязательный элемент. Используйте при command != login && command != logout. Значение по умолчанию: false.

Указывает конфигурацию Kubernetes, используемую с командой kubectl . Можно указать встроенный скрипт, имя файла, каталог или URL-адрес для файлов конфигурации Kubernetes.


useConfigurationFile - Использование файлов конфигурации
boolean. Необязательный элемент. Используйте при command != login && command != logout. Значение по умолчанию: false.

Указывает конфигурацию Kubernetes, используемую с командой kubectl . Можно указать встроенный скрипт, имя файла, каталог или URL-адрес для файлов конфигурации Kubernetes.


configurationType - Тип конфигурации
string. Необязательный элемент. Используйте при useConfigurationFile = true. Допустимые значения: configuration (Путь к файлу), inline (встроенная конфигурация). Значение по умолчанию: configuration.

Указывает тип конфигурации Kubernetes для kubectl команды . Это может быть путь к файлу или встроенный скрипт.


configuration - Путь к файлу
string. Требуется при .configurationType = configuration

Указывает имя файла, каталог или URL-адрес файлов конфигурации Kubernetes, используемых с командами.


configuration - Файл конфигурации
string. Требуется при .useConfigurationFile = true

Указывает имя файла, каталог или URL-адрес файлов конфигурации Kubernetes, используемых с командами.


inline - Встроенная конфигурация
string. Требуется при .configurationType = inline

Задает встроенную конфигурацию развертывания для kubectl команды .


arguments - Аргументы
string. Необязательный элемент. Используйте при command != login && command != logout.

Аргументы указанной команды kubectl.


secretType - Тип секрета
string. Требуется при .command != login && command != logout Допустимые значения: dockerRegistry, generic. Значение по умолчанию: dockerRegistry.

Создание или обновление универсального образа или образа Dockerpullsecret. Выберите dockerRegistry, чтобы создать или обновить imagepullsecret выбранного реестра. ImagePullSecret — это способ передать секрет, содержащий пароль реестра контейнеров, в Kubelet, чтобы он смог извлечь частный образ от имени pod.


secretArguments - Аргументы
string. Необязательный элемент. Используйте при secretType = generic && command != login && command != logout.

Указывает ключи и литеральные значения, которые нужно вставить в секрете. Например, --from-literal=key1=value1или --from-literal=key2="top secret".


containerRegistryType - Тип реестра контейнеров
string. Требуется при .secretType = dockerRegistry && command != login && command != logout Допустимые значения: Azure Container Registry, Container Registry. Значение по умолчанию: Azure Container Registry.

Выберите тип реестра контейнеров. Задача может использовать сведения о подписке Azure для работы с реестром контейнеров Azure. Поддерживаются и другие стандартные реестры контейнеров.


dockerRegistryEndpoint - Подключение к службе реестра Docker
string. Необязательный элемент. Используйте при secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout.

Выберите подключение к службе реестра Docker. Требуется для команд, которым требуется пройти проверку подлинности в реестре.


azureSubscriptionEndpointForSecrets - Подписка Azure
string. Необязательный элемент. Используйте при secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Указывает подписку Azure Resource Manager, содержащую Реестр контейнеров Azure.

Примечание

Чтобы настроить новое подключение к службе, выберите подписку Azure в списке и щелкните Authorize. Если ваша подписка отсутствует в списке или вы хотите использовать существующий субъект-службу, можно настроить подключение к службе Azure с помощью Add кнопок или Manage .


azureContainerRegistry - Реестр контейнеров Azure
string. Необязательный элемент. Используйте при secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Задает Реестр контейнеров Azure, который используется для извлечения образов контейнеров и развертывания приложений в кластере Kubernetes. Требуется для команд, которым требуется пройти проверку подлинности в реестре.


secretName - Имя секрета
string. Необязательный элемент. Используйте при command != login && command != logout.

Имя секрета. Это имя секрета можно использовать в файле конфигурации YamL Kubernetes.


forceUpdate - Принудительное обновление секрета
boolean. Необязательный элемент. Используйте при command != login && command != logout. Значение по умолчанию: true.

Удалите секрет, если он существует, и создайте новый с обновленными значениями.


configMapName - Имя ConfigMap
string. Необязательный элемент. Используйте при command != login && command != logout.

ConfigMaps позволяет отделить артефакты конфигурации от содержимого изображения, чтобы обеспечить переносимость контейнерных приложений.


forceUpdateConfigMap - Карта конфигурации принудительного обновления
boolean. Необязательный элемент. Используйте при command != login && command != logout. Значение по умолчанию: false.

Удалите карту конфигурации, если она существует, и создайте новую с обновленными значениями.


useConfigMapFile - Использовать файл
boolean. Необязательный элемент. Используйте при command != login && command != logout. Значение по умолчанию: false.

ConfigMap Создает из отдельного файла или из нескольких файлов путем указания каталога.


configMapFile - Файл ConfigMap
string. Требуется при .useConfigMapFile = true && command != login && command != logout

Укажите файл или каталог, содержащий configMaps.


configMapArguments - Аргументы
string. Необязательный элемент. Используйте при useConfigMapFile = false && command != login && command != logout.

Указывает ключи и литеральные значения для вставки в configMap. Например, --from-literal=key1=value1 или --from-literal=key2="top secret".


versionOrLocation - Kubectl
string. Допустимые значения: version, location (укажите расположение). Значение по умолчанию: version.

kubectl — это интерфейс командной строки для выполнения команд в кластерах Kubernetes.


versionOrLocation - Kubectl
string. Необязательный элемент. Используйте при command != login && command != logout. Допустимые значения: version, location (укажите расположение). Значение по умолчанию: version.

kubectl — это интерфейс командной строки для выполнения команд в кластерах Kubernetes.


versionSpec - Спецификация версии
string. Необязательный элемент. Используйте при versionOrLocation = version. Значение по умолчанию: 1.13.2.

Указывает спецификацию версии для получаемой версии. Примеры: 1.7.0, 1.x.0, 4.x.0, 6.10.0, . >=6.10.0


versionSpec - Спецификация версии
string. Необязательный элемент. Используйте при versionOrLocation = version && command != login && command != logout. Значение по умолчанию: 1.7.0.

-18-2 Указывает спецификацию версии для получения. Примеры: 1.7.0, 1.x.0, 4.x.0, 6.10.0, . >=6.10.0


checkLatest - Проверка наличия последней версии
boolean. Необязательный элемент. Используйте при versionOrLocation = version. Значение по умолчанию: false.

Всегда проверяет в интернете последнюю доступную версию (stable.txt), удовлетворяющую спецификации версии. Обычно это неверно, если у вас нет определенного сценария, чтобы всегда получать последние данные. Это приведет к тому, что загрузка будет нести расходы, если это не требуется, особенно в размещенном пуле сборки.


checkLatest - Проверка наличия последней версии
boolean. Необязательный элемент. Используйте при versionOrLocation = version && command != login && command != logout. Значение по умолчанию: false.

Всегда проверяет в интернете последнюю доступную версию (stable.txt), удовлетворяющую спецификации версии. Обычно это неверно, если у вас нет определенного сценария, чтобы всегда получать последние данные. Это приведет к тому, что загрузка будет нести расходы, если это не требуется, особенно в размещенном пуле сборки.


specifyLocation - Путь к kubectl
string. Требуется при .versionOrLocation = location

Указывает полный путь к файлу kubectl.exe .


specifyLocation - Путь к kubectl
string. Требуется при .versionOrLocation = location && command != login && command != logout

Указывает полный путь к файлу kubectl.exe .


workingDirectory - Рабочий каталог
Входной псевдоним: cwd. string. Значение по умолчанию: $(System.DefaultWorkingDirectory).

Рабочий каталог для команды Kubectl.


workingDirectory - Рабочий каталог
Входной псевдоним: cwd. string. Необязательный элемент. Используйте при command != login && command != logout. Значение по умолчанию: $(System.DefaultWorkingDirectory).

Рабочий каталог для команды Kubectl.


outputFormat - Формат вывода
string. Допустимые значения: json, yaml, none. Значение по умолчанию: json.

Формат вывода.


outputFormat - Формат вывода
string. Допустимые значения: json, yaml. Значение по умолчанию: json.

Формат вывода.


outputFormat - Формат вывода
string. Необязательный элемент. Используйте при command != login && command != logout. Допустимые значения: json, yaml. Значение по умолчанию: json.

Формат вывода.


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

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

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

Эта задача определяет следующие выходные переменные, которые можно использовать в нисходящих шагах, заданиях и этапах.

KubectlOutput
Хранит выходные данные kubectl команды .

Комментарии

Новые возможности версии 1.0.

  • Добавлены новые входные данные типа подключения службы для удобного выбора кластеров Azure AKS.
  • Входные данные выходной переменной заменены разделом выходных переменных, который мы добавили во все задачи.

Используйте эту задачу для развертывания, настройки или обновления кластера Kubernetes с помощью команд kubectl.

Подключение к службе

Задача работает с двумя типами подключений к службе: Azure Resource Manager и подключением к службе Kubernetes, как описано ниже.

Azure Resource Manager

Задайте значение connectionTypeAzure Resource Manager и укажите , azureSubscriptionEndpoint чтобы использовать подключение к службе Resource Manager Azure.

В этом примере YAML показано, как Resource Manager Azure используется для ссылки на кластер Kubernetes. Он должен использоваться с одной из команд kubectl и соответствующими значениями , необходимыми для команды .

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso
  useClusterAdmin: false

steps:
- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    useClusterAdmin: $(useClusterAdmin)

Подключение к службе Kubernetes

Задайте значение connectionTypeKubernetes Service Connection и укажите , kubernetesServiceEndpoint чтобы использовать подключение к службе Kubernetes.

В этом примере YAML показано, как подключение службы Kubernetes используется для ссылки на кластер Kubernetes. Он должен использоваться с одной из команд kubectl и соответствующими значениями , необходимыми для команды .

- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: Contoso

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

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

  • KubeConfig
  • Учетная запись службы
  • Подписка Azure

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

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

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

Начиная с Kubernetes 1.24, долгосрочные маркеры больше не создаются по умолчанию. Kubernetes не рекомендует использовать долгоживущие маркеры. В результате задачи, использующие подключение к службе Kubernetes, созданное с помощью подписки Azure , не имеют доступа к постоянному маркеру, необходимому для проверки подлинности, и не могут получить доступ к кластеру Kubernetes. Это также приводит к замороженной загрузке диалогового окна пространств имен .

Использование подключения службы Resource Manager Azure для доступа к AKS

Для клиентов AKS тип подключения службы Resource Manager Azure предоставляет лучший способ подключения к частному кластеру или кластеру с отключенными локальными учетными записями. Этот метод не зависит от подключения к кластеру во время создания подключения к службе. Доступ к AKS откладывается в среду выполнения конвейера, которая имеет следующие преимущества:

  • Доступ к (частному) кластеру AKS можно осуществлять из локального агента или агента масштабируемого набора с прямой видимости кластера.
  • Маркер создается для каждой задачи, которая использует подключение службы Resource Manager Azure. Это гарантирует, что вы подключаетесь к 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 в следующем обновлении.

Команды

Входные данные команды принимают команды kubectl.

В этом примере YAML показана команда apply :

- task: Kubernetes@1
  displayName: kubectl apply using arguments
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    arguments: -f mhc-aks.yaml

В этом примере YAML показано использование файла конфигурации с командой apply :

- task: Kubernetes@1
  displayName: kubectl apply using configFile
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    useConfigurationFile: true
    configuration: mhc-aks.yaml

В этом примере YAML показано, как использовать команду масштабирования для уменьшения числа реплик в развертывании до 0.

- task: Kubernetes@1
      displayName: 'Scale down deployment $(k8sDeployment) to 0'
      inputs:
        connectionType: 'Kubernetes Service Connection'
        kubernetesServiceEndpoint: $(kubernetesServiceConnection)
        command: 'scale'
        arguments: 'deployment/$(k8sDeployment) --replicas=0'
        namespace: $(namespace)

Секреты

Объекты Kubernetes типа secret предназначены для хранения конфиденциальной информации, такой как пароли, маркеры OAuth и ключи SSH. Помещать эти сведения в секрет безопаснее и гибче, чем помещать их в определение pod или в образ Docker. Azure Pipelines упрощает добавление ImagePullSecrets в учетную запись службы или настройку любого универсального секрета, как описано ниже.

ImagePullSecret

В этом примере YAML показана настройка ImagePullSecrets:

    - task: Kubernetes@1
      displayName: kubectl apply for secretType dockerRegistry
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: dockerRegistry
        containerRegistryType: Azure Container Registry
        azureSubscriptionEndpointForSecrets: $(azureSubscriptionEndpoint)
        azureContainerRegistry: $(azureContainerRegistry)
        secretName: mysecretkey2
        forceUpdate: true

Универсальные секреты

В этом примере YAML создаются универсальные секреты из литеральных значений, указанных для входных данных secretArguments :

    - task: Kubernetes@1
      displayName: secretType generic with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=5678
        secretName: mysecretkey

Переменные конвейера можно использовать для передачи аргументов для указания литеральных значений, как показано ниже:

    - task: Kubernetes@1
      displayName: secretType generic with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey

ConfigMap

ConfigMaps позволяет отделить артефакты конфигурации от содержимого образа для обеспечения переносимости контейнерных приложений.

В этом примере YAML создается ConfigMap, указывая на файл ConfigMap:

    - task: Kubernetes@1
      displayName: kubectl apply
      inputs:
        configMapName: myconfig
        useConfigMapFile: true
        configMapFile: src/configmap

В этом примере YAML создается ConfigMap, указывая литеральные значения непосредственно в качестве входных данных configMapArguments и устанавливая для параметра forceUpdate значение true:

    - task: Kubernetes@1
      displayName: configMap with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=contoso

Переменные конвейера можно использовать для передачи литеральных значений при создании ConfigMap, как показано ниже:

    - task: Kubernetes@1
      displayName: configMap with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=$(contosovalue)

Устранение неполадок

Мой кластер Kubernetes находится за брандмауэром, и я использую размещенные агенты. Как выполнить развертывание в этом кластере?

Вы можете предоставить размещенным агентам доступ через брандмауэр, разрешив IP-адреса для размещенных агентов. Дополнительные сведения см. в разделе о диапазоне IP-адресов агента.

Требования

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