Compartir vía


Kubernetes@1: tarea kubectl v1

Implemente, configure y actualice un clúster de Kubernetes en Azure Container Service mediante la ejecución de comandos kubectl.

Implemente, configure y actualice el clúster de Kubernetes en Azure Container Service mediante la ejecución de comandos kubectl.

Syntax

# 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.

Entradas

connectionType - Tipo de conexión de servicio
string. Necesario cuando command != logout. Valores permitidos: Azure Resource Manager, Kubernetes Service Connection y None. Valor predeterminado: Kubernetes Service Connection.

Especifica el tipo de conexión de servicio: Azure Resource Manager al usar Azure Kubernetes Service o conexión de Kubernetes Service para cualquier otro clúster.

  • Kubernetes Service Connection - Permite proporcionar un archivo KubeConfig, especificar una cuenta de servicio o importar una instancia de AKS con la opción Suscripción de Azure . La importación de una instancia de AKS con la opción Suscripción de Azure requiere acceso al clúster de Kubernetes en el momento de la configuración de la conexión de servicio.
  • Azure Resource Manager - Permite seleccionar una instancia de AKS. No tiene acceso al clúster de Kubernetes en el momento de la configuración de la conexión de servicio.
  • None : use una configuración de Kubernetes creada previamente almacenada localmente.

Para obtener más información, vea Conexión de servicio en la siguiente sección Comentarios .


connectionType - Tipo de conexión de servicio
string. Necesario cuando command != logout. Valores permitidos: Azure Resource Manager, Kubernetes Service Connection y None. Valor predeterminado: Azure Resource Manager.

Especifica el tipo de conexión de servicio: Azure Resource Manager al usar Azure Kubernetes Service o conexión de Kubernetes Service para cualquier otro clúster.


kubernetesServiceEndpoint - Conexión del servicio Kubernetes
string. Necesario cuando connectionType = Kubernetes Service Connection && command != logout.

Seleccione una conexión de servicio de Kubernetes.


azureSubscriptionEndpoint - Suscripción de Azure
string. Necesario cuando connectionType = Azure Resource Manager && command != logout.

Especifica la suscripción de Azure Resource Manager, que contiene el Azure Container Registry.

Nota

Para configurar una nueva conexión de servicio, especifique la suscripción de Azure de la lista y haga clic en Authorize. Si la suscripción no aparece en la lista o si desea usar una entidad de servicio existente, puede configurar una conexión de servicio de Azure mediante los Add botones o Manage .


azureResourceGroup - Grupo de recursos
string. Necesario cuando connectionType = Azure Resource Manager && command != logout.

Seleccione un grupo de recursos de Azure.


kubernetesCluster - Clúster de Kubernetes
string. Necesario cuando connectionType = Azure Resource Manager && command != logout.

Seleccione un clúster administrado de Azure.


useClusterAdmin - Uso de credenciales de administrador de clúster
boolean. Opcional. Use cuando connectionType = Azure Resource Manager && command != logout. Valor predeterminado: false.

Use credenciales de administrador de clúster en lugar de credenciales de usuario de clúster predeterminadas.


namespace - Nombres
string. Opcional. Use cuando command != logout.

Establezca el espacio de nombres para el comando kubectl mediante la marca –namespace. Si no se proporciona el espacio de nombres, los comandos se ejecutarán en el espacio de nombres predeterminado.


command - Comando
string. Valores permitidos: , , , , , logingetlogslogoutexpose, run, , . topsetexecdeletecreateapply

Seleccione o especifique un comando kubectl que se va a ejecutar. La lista de valores permitidos proporciona algunas opciones comunes para facilitar la selección al usar el asistente de tareas, pero puede especificar otros comandos kubectl, como scale. Use la arguments entrada para especificar parámetros adicionales para el comando especificado kubectl .


command - Comando
string. Obligatorio. Valores permitidos: , , , , , logingetlogslogoutexpose, run, , . topsetexecdeletecreateapply Valor predeterminado: apply.

Seleccione o especifique un comando kubectl que se va a ejecutar.


useConfigurationFile - Uso de la configuración
boolean. Opcional. Use cuando command != login && command != logout. Valor predeterminado: false.

Especifica la configuración de Kubernetes que se va a usar con el kubectl comando . Se puede proporcionar el script insertado, el nombre de archivo, el directorio o la dirección URL a los archivos de configuración de Kubernetes.


useConfigurationFile - Uso de archivos de configuración
boolean. Opcional. Use cuando command != login && command != logout. Valor predeterminado: false.

Especifica la configuración de Kubernetes que se va a usar con el kubectl comando . Se puede proporcionar el script insertado, el nombre de archivo, el directorio o la dirección URL a los archivos de configuración de Kubernetes.


configurationType - Tipo de configuración
string. Opcional. Use cuando useConfigurationFile = true. Valores permitidos: configuration (ruta de acceso del archivo), inline (configuración insertada). Valor predeterminado: configuration.

Especifica el tipo de configuración de Kubernetes para el kubectl comando. Puede ser una ruta de acceso de archivo o un script insertado.


configuration - Ruta de acceso del archivo
string. Necesario cuando configurationType = configuration.

Especifica el nombre de archivo, el directorio o la dirección URL de los archivos de configuración de Kubernetes que se usan con los comandos .


configuration - Archivo de configuración
string. Necesario cuando useConfigurationFile = true.

Especifica el nombre de archivo, el directorio o la dirección URL de los archivos de configuración de Kubernetes que se usan con los comandos .


inline - Configuración insertada
string. Necesario cuando configurationType = inline.

Especifica la configuración de implementación insertada para el kubectl comando .


arguments - Argumentos
string. Opcional. Use cuando command != login && command != logout.

Argumentos para el comando kubectl especificado.


secretType - Tipo de secreto
string. Necesario cuando command != login && command != logout. Valores permitidos: dockerRegistry, generic. Valor predeterminado: dockerRegistry.

Cree o actualice un archivo imagepullsecret genérico o docker. Seleccione dockerRegistry para crear o actualizar imagepullsecret del registro seleccionado. ImagePullSecret es una manera de pasar un secreto que contiene una contraseña del registro de contenedor a Kubelet para que pueda extraer una imagen privada en nombre del pod.


secretArguments - Argumentos
string. Opcional. Use cuando secretType = generic && command != login && command != logout.

Especifica las claves y los valores literales que se van a insertar en el secreto. Por ejemplo, --from-literal=key1=value1o --from-literal=key2="top secret".


containerRegistryType - Tipo de registro de contenedor
string. Necesario cuando secretType = dockerRegistry && command != login && command != logout. Valores permitidos: Azure Container Registry, Container Registry. Valor predeterminado: Azure Container Registry.

Seleccione un tipo de registro de contenedor. La tarea puede usar los detalles de la suscripción de Azure para trabajar con una instancia de Azure Container Registry. También se admiten otros registros de contenedor estándar.


dockerRegistryEndpoint - Conexión del servicio del registro de Docker
string. Opcional. Use cuando secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout.

Seleccione una conexión de servicio del registro de Docker. Obligatorio para los comandos que necesitan autenticarse con un registro.


azureSubscriptionEndpointForSecrets - Suscripción de Azure
string. Opcional. Use cuando secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Especifica la suscripción de Azure Resource Manager, que contiene Azure Container Registry.

Nota

Para configurar una nueva conexión de servicio, seleccione la suscripción de Azure de la lista y haga clic en Authorize. Si la suscripción no aparece en la lista o si desea usar una entidad de servicio existente, puede configurar una conexión de servicio de Azure mediante los Add botones o Manage .


azureContainerRegistry - Azure Container Registry
string. Opcional. Use cuando secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Especifica un Azure Container Registry que se usa para extraer imágenes de contenedor e implementar aplicaciones en el clúster de Kubernetes. Obligatorio para los comandos que necesitan autenticarse con un registro.


secretName - Nombre del secreto
string. Opcional. Use cuando command != login && command != logout.

Nombre del secreto. Puede usar este nombre secreto en el archivo de configuración de YAML de Kubernetes.


forceUpdate - Forzar el secreto de actualización
boolean. Opcional. Use cuando command != login && command != logout. Valor predeterminado: true.

Elimine el secreto si existe y cree uno nuevo con valores actualizados.


configMapName - Nombre de ConfigMap
string. Opcional. Use cuando command != login && command != logout.

ConfigMaps permite desacoplar los artefactos de configuración del contenido de la imagen para mantener portátiles las aplicaciones en contenedor.


forceUpdateConfigMap - Forzar el mapa de configuración de actualización
boolean. Opcional. Use cuando command != login && command != logout. Valor predeterminado: false.

Elimine el configmap si existe y cree uno nuevo con valores actualizados.


useConfigMapFile - Usar archivo
boolean. Opcional. Use cuando command != login && command != logout. Valor predeterminado: false.

Crea un objeto ConfigMap a partir de un archivo individual o de varios archivos especificando un directorio.


configMapFile - Archivo ConfigMap
string. Necesario cuando useConfigMapFile = true && command != login && command != logout.

Especifique un archivo o directorio que contenga configMaps.


configMapArguments - Argumentos
string. Opcional. Use cuando useConfigMapFile = false && command != login && command != logout.

Especifica las claves y los valores literales que se van a insertar en configMap. Por ejemplo, --from-literal=key1=value1 o --from-literal=key2="top secret".


versionOrLocation - Kubectl
string. Valores permitidos: version, location (Especificar ubicación). Valor predeterminado: version.

kubectl es una interfaz de línea de comandos para ejecutar comandos en clústeres de Kubernetes.


versionOrLocation - Kubectl
string. Opcional. Use cuando command != login && command != logout. Valores permitidos: version, location (Especificar ubicación). Valor predeterminado: version.

kubectl es una interfaz de línea de comandos para ejecutar comandos en clústeres de Kubernetes.


versionSpec - Especificación de versión
string. Opcional. Use cuando versionOrLocation = version. Valor predeterminado: 1.13.2.

Especifica la especificación de versión de la versión que se va a obtener. Ejemplos: 1.7.0, 1.x.0, 4.x.0, 6.10.0, . >=6.10.0


versionSpec - Especificación de versión
string. Opcional. Use cuando versionOrLocation = version && command != login && command != logout. Valor predeterminado: 1.7.0.

-18-2 Especifica la especificación de versión de la versión que se va a obtener. Ejemplos: 1.7.0, 1.x.0, 4.x.0, 6.10.0, . >=6.10.0


checkLatest - Comprobación de la versión más reciente
boolean. Opcional. Use cuando versionOrLocation = version. Valor predeterminado: false.

Compruebe siempre en línea la versión más reciente disponible (stable.txt) que cumpla la especificación de versión. Esto suele ser falso a menos que tenga un escenario específico para obtener siempre la versión más reciente. Esto hará que incurra en costos de descarga cuando no sea necesario, especialmente con el grupo de compilación hospedado.


checkLatest - Comprobación de la versión más reciente
boolean. Opcional. Use cuando versionOrLocation = version && command != login && command != logout. Valor predeterminado: false.

Compruebe siempre en línea la versión más reciente disponible (stable.txt) que cumpla la especificación de versión. Esto suele ser falso a menos que tenga un escenario específico para obtener siempre la versión más reciente. Esto hará que incurra en costos de descarga cuando no sea necesario, especialmente con el grupo de compilación hospedado.


specifyLocation - Ruta de acceso a kubectl
string. Necesario cuando versionOrLocation = location.

Especifica la ruta de acceso completa al kubectl.exe archivo.


specifyLocation - Ruta de acceso a kubectl
string. Necesario cuando versionOrLocation = location && command != login && command != logout.

Especifica la ruta de acceso completa al kubectl.exe archivo.


workingDirectory - Directorio de trabajo
Alias de entrada: cwd. string. Valor predeterminado: $(System.DefaultWorkingDirectory).

Directorio de trabajo para el comando Kubectl.


workingDirectory - Directorio de trabajo
Alias de entrada: cwd. string. Opcional. Use cuando command != login && command != logout. Valor predeterminado: $(System.DefaultWorkingDirectory).

Directorio de trabajo para el comando Kubectl.


outputFormat - Formato de salida
string. Valores permitidos: json, yaml y none. Valor predeterminado: json.

Formato de salida.


outputFormat - Formato de salida
string. Valores permitidos: json, yaml. Valor predeterminado: json.

Formato de salida.


outputFormat - Formato de salida
string. Opcional. Use cuando command != login && command != logout. Valores permitidos: json, yaml. Valor predeterminado: json.

Formato de salida.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Esta tarea define las siguientes variables de salida, que puede consumir en pasos, trabajos y fases de bajada.

KubectlOutput
Almacena la salida del kubectl comando.

Comentarios

Novedades de la versión 1.0.

  • Se ha agregado una nueva entrada de tipo de conexión de servicio para una selección sencilla de clústeres de Azure AKS.
  • Ha reemplazado la entrada de la variable de salida por una sección de variables de salida que hemos agregado en todas las tareas.

Use esta tarea para implementar, configurar o actualizar un clúster de Kubernetes mediante la ejecución de comandos kubectl.

Conexión de servicio

La tarea funciona con dos tipos de conexión de servicio: Azure Resource Manager y Conexión de servicio de Kubernetes, que se describen a continuación.

Azure Resource Manager

Azure Resource Manager Establezca connectionType en y especifique un para azureSubscriptionEndpoint usar una conexión de servicio de Azure Resource Manager.

En este ejemplo de YAML se muestra cómo se usa Azure Resource Manager para hacer referencia al clúster de Kubernetes. Esto se usará con uno de los comandos kubectl y los valores adecuados requeridos por el comando.

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)

Conexión a Kubernetes Service

Kubernetes Service Connection Establezca connectionType en y especifique un para kubernetesServiceEndpoint usar una conexión de servicio de Kubernetes.

En este ejemplo de YAML se muestra cómo se usa una conexión de Kubernetes Service para hacer referencia al clúster de Kubernetes. Esto se usará con uno de los comandos kubectl y los valores adecuados requeridos por el comando.

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

Consideraciones sobre la conexión de Kubernetes Service al acceder a AKS

Puede crear una conexión de servicio de Kubernetes con cualquiera de las siguientes opciones.

  • KubeConfig
  • Cuenta de servicio
  • Suscripción de Azure

Captura de pantalla de la elección de un método de autenticación de conexión de servicio de Kubernetes.

Al seleccionar la opción Suscripción de Azure , Kubernetes debe ser accesible para Azure DevOps en el momento de la configuración de la conexión del servicio. Puede haber varias razones por las que no se puede crear una conexión de servicio, por ejemplo, ha creado un clúster privado o el clúster tiene deshabilitadas las cuentas locales. En estos casos, Azure DevOps no se puede conectar al clúster en el momento de la configuración de la conexión del servicio y verá una pantalla bloqueada Cargando espacios de nombres .

Captura de pantalla de cómo elegir un cuadro de diálogo de autenticación de conexión de servicio de Kubernetes bloqueado en la carga de espacios de nombres.

A partir de Kubernetes 1.24, los tokens de larga duración ya no se crean de forma predeterminada. Kubernetes recomienda no usar tokens de larga duración. Como resultado, las tareas que usan una conexión de servicio de Kubernetes creada con la opción Suscripción de Azure no tienen acceso al token permanente necesario para autenticarse y no pueden acceder al clúster de Kubernetes. Esto también da como resultado el cuadro de diálogo Cargando espacios de nombres inmovilizados.

Uso de la conexión de servicio de Azure Resource Manager para acceder a AKS

Para los clientes de AKS, el tipo de conexión de servicio de Azure Resource Manager proporciona el mejor método para conectarse a un clúster privado o un clúster que tenga deshabilitadas las cuentas locales. Este método no depende de la conectividad del clúster en el momento en que se crea una conexión de servicio. El acceso a AKS se aplaza al entorno de ejecución de canalización, que tiene las siguientes ventajas:

  • El acceso a un clúster de AKS (privado) se puede realizar desde un agente de conjunto de escalado o autohospedado con línea de visión al clúster.
  • Se crea un token para cada tarea que usa una conexión de servicio de Azure Resource Manager. Esto garantiza que se conecta a Kubernetes con un token de corta duración, que es la recomendación de Kubernetes.
  • Se puede acceder a AKS incluso cuando se deshabilitan las cuentas locales.

Preguntas más frecuentes sobre la conexión de servicio

Recibo el siguiente mensaje de error: No se encontró ningún secreto asociado a la cuenta de servicio. ¿Qué pasa?

Usa la opción conexión de servicio de Kubernetes con la suscripción de Azure. Estamos actualizando este método para crear tokens de larga duración. Se espera que esté disponible a mediados de mayo. Sin embargo, se recomienda empezar a usar el tipo de conexión de servicio de Azure y no usar tokens de larga duración según las instrucciones de Kubernetes.

Uso AKS y no quiero cambiar nada, ¿puedo seguir usando tareas con la conexión del servicio Kubernetes?

Estamos actualizando este método para crear tokens de larga duración. Se espera que esté disponible a mediados de mayo. Sin embargo, tenga en cuenta que este enfoque está en contra de las instrucciones de Kubernetes.

Uso las tareas de Kubernetes y la conexión de servicio de Kubernetes, pero no AKS. ¿Debería preocuparme?

Las tareas seguirán funcionando como antes.

¿Se quitará el tipo de conexión del servicio Kubernetes?

Nuestras tareas de Kubernetes funcionan con cualquier clúster de Kubernetes, independientemente de dónde se ejecuten. La conexión del servicio Kubernetes seguirá existiendo.

Soy un cliente de AKS y todo funciona bien, ¿debo actuar?

No es necesario cambiar nada. Si usa la conexión de servicio de Kubernetes y la suscripción de Azure seleccionada durante la creación, debe tener en cuenta las instrucciones de Kubernetes sobre el uso de tokens de larga duración.

Estoy creando un entorno de Kubernetes y no tengo ninguna opción para usar conexiones de servicio.

En caso de que no pueda acceder a AKS durante el tiempo de creación del entorno, puede usar un entorno vacío y establecer la connectionType entrada en una conexión de servicio de Azure Resource Manager.

Tengo AKS configurado con RBAC de Azure Active Directory y mi canalización no funciona. ¿Resolverán estas actualizaciones?

El acceso a Kubernetes cuando AAD RBAC está habilitado no está relacionado con la creación de tokens. Para evitar un aviso interactivo, se admitirá kubelogin en una actualización futura.

Comandos

La entrada del comando acepta comandos kubectl.

En este ejemplo de YAML se muestra el comando 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

En este ejemplo de YAML se muestra el uso de un archivo de configuración con el comando 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

En este ejemplo de YAML se muestra el uso del comando scale para reducir el número de réplicas de una implementación a 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)

Secretos

Los objetos de kubernetes de tipo secreto están diseñados para contener información confidencial, como contraseñas, tokens de OAuth y claves SSH. Incluir esta información en un secreto es más seguro y flexible que incluirla textualmente en una definición de pod o en una imagen de Docker. Azure Pipelines simplifica la adición de a una cuenta de ImagePullSecrets servicio o la configuración de cualquier secreto genérico, como se describe a continuación.

ImagePullSecret

En este ejemplo de YAML se muestra la configuración de 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

Secretos genéricos

En este ejemplo de YAML se crean secretos genéricos a partir de valores literales especificados para la entrada 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

Las variables de canalización se pueden usar para pasar argumentos para especificar valores literales, como se muestra aquí:

    - 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 permite desacoplar los artefactos de configuración del contenido de la imagen para mantener la portabilidad de las aplicaciones en contenedor.

En este ejemplo de YAML se crea un objeto ConfigMap apuntando a un archivo ConfigMap:

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

En este ejemplo de YAML, se crea un objeto ConfigMap especificando los valores literales directamente como entrada configMapArguments y estableciendo forceUpdate en 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

Puede usar variables de canalización para pasar valores literales al crear ConfigMap, como se muestra aquí:

    - 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)

Solución de problemas

Mi clúster de Kubernetes está detrás de un firewall y estoy usando agentes hospedados. ¿Cómo se puede implementar en este clúster?

Puede conceder acceso a los agentes hospedados a través del firewall, permitiendo las direcciones IP de los agentes hospedados. Para más información, consulte el artículo sobre los intervalos IP del agente.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente Todas las versiones de agente compatibles.
Categoría de la tarea: Implementación