Partilhar via


Kubernetes@1 - Tarefa do Kubectl v1

Implemente, configure, atualize um cluster do Kubernetes no Azure Container Service ao executar comandos kubectl.

Implemente, configure, atualize o cluster do Kubernetes no Azure Container Service ao executar 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 ligação de serviço
string. Necessário quando command != logout. Valores permitidos: Azure Resource Manager, , Kubernetes Service ConnectionNone. Valor predefinido: Kubernetes Service Connection.

Especifica o tipo de ligação de serviço: Resource Manager do Azure ao utilizar Azure Kubernetes Service ou a Ligação de Serviço do Kubernetes para qualquer outro cluster.

  • Kubernetes Service Connection - Permite-lhe fornecer um ficheiro KubeConfig, especificar uma Conta de Serviço ou importar uma instância do AKS com a opção Subscrição do Azure . Importar uma instância do AKS com a opção Subscrição do Azure requer acesso ao cluster do Kubernetes no tempo de configuração da Ligação de Serviço.
  • Azure Resource Manager - Permite-lhe selecionar uma instância do AKS. Não acede ao cluster do Kubernetes na hora de configuração da Ligação de Serviço.
  • None - Utilize uma configuração do Kubernetes pré-criada armazenada localmente.

Para obter mais informações, veja Ligação de serviço na secção Observações seguinte.


connectionType - Tipo de ligação de serviço
string. Necessário quando command != logout. Valores permitidos: Azure Resource Manager, , Kubernetes Service ConnectionNone. Valor predefinido: Azure Resource Manager.

Especifica o tipo de ligação de serviço: Resource Manager do Azure ao utilizar Azure Kubernetes Service ou a Ligação de Serviço do Kubernetes para qualquer outro cluster.


kubernetesServiceEndpoint - Ligação do serviço Kubernetes
string. Necessário quando connectionType = Kubernetes Service Connection && command != logout.

Selecione uma ligação de serviço do Kubernetes.


azureSubscriptionEndpoint - Subscrição do Azure
string. Necessário quando connectionType = Azure Resource Manager && command != logout.

Especifica a subscrição do Azure Resource Manager, que contém o Azure Container Registry.

Nota

Para configurar uma nova ligação de serviço, especifique a subscrição do Azure a partir da lista e clique em Authorize. Se a sua subscrição não estiver listada ou se quiser utilizar um Principal de Serviço existente, pode configurar uma ligação de serviço do Azure com os Add botões ou Manage .


azureResourceGroup - Grupo de recursos
string. Necessário quando connectionType = Azure Resource Manager && command != logout.

Selecione um grupo de recursos do Azure.


kubernetesCluster - Cluster do Kubernetes
string. Necessário quando connectionType = Azure Resource Manager && command != logout.

Selecione um cluster gerido do Azure.


useClusterAdmin - Utilizar credenciais de administrador de cluster
boolean. Opcional. Utilize quando connectionType = Azure Resource Manager && command != logout. Valor predefinido: false.

Utilize credenciais de administrador de cluster em vez de credenciais de utilizador do cluster predefinidas.


namespace - Espaço de nomes
string. Opcional. Utilize quando command != logout.

Defina o espaço de nomes para o comando kubectl com o sinalizador –namespace. Se o espaço de nomes não for fornecido, os comandos serão executados no espaço de nomes predefinido.


command - Comando
string. Valores permitidos: apply, create, delete, exec, expose, get, login, logout, logs, run, , set. top

Selecione ou especifique um comando kubectl a executar. A lista de valores permitidos fornece algumas opções comuns para facilitar a seleção ao utilizar a tarefa assistente, mas pode especificar outros comandos kubectl, como scale. Utilize a arguments entrada para especificar parâmetros adicionais para o comando especificado kubectl .


command - Comando
string. Obrigatório. Valores permitidos: apply, create, delete, exec, expose, get, login, logout, logs, run, , set. top Valor predefinido: apply.

Selecione ou especifique um comando kubectl a executar.


useConfigurationFile - Utilizar a configuração
boolean. Opcional. Utilize quando command != login && command != logout. Valor predefinido: false.

Especifica a configuração do Kubernetes a utilizar com o kubectl comando . Pode ser fornecido o script inline, nome de ficheiro, diretório ou URL para ficheiros de configuração do Kubernetes.


useConfigurationFile - Utilizar ficheiros de configuração
boolean. Opcional. Utilize quando command != login && command != logout. Valor predefinido: false.

Especifica a configuração do Kubernetes a utilizar com o kubectl comando . Pode ser fornecido o script inline, nome de ficheiro, diretório ou URL para ficheiros de configuração do Kubernetes.


configurationType - Tipo de configuração
string. Opcional. Utilize quando useConfigurationFile = true. Valores permitidos: configuration (Caminho do ficheiro), inline (Configuração inline). Valor predefinido: configuration.

Especifica o tipo de configuração do Kubernetes para o kubectl comando. Pode ser um caminho de ficheiro ou um script inline.


configuration - Caminho do ficheiro
string. Necessário quando configurationType = configuration.

Especifica o nome de ficheiro, diretório ou URL para ficheiros de configuração do kubernetes que são utilizados com os comandos.


configuration - Ficheiro de configuração
string. Necessário quando useConfigurationFile = true.

Especifica o nome de ficheiro, diretório ou URL para ficheiros de configuração do kubernetes que são utilizados com os comandos.


inline - Configuração inline
string. Necessário quando configurationType = inline.

Especifica a configuração de implementação inline para o kubectl comando.


arguments - Argumentos
string. Opcional. Utilize quando command != login && command != logout.

Argumentos para o comando kubectl especificado.


secretType - Tipo de segredo
string. Necessário quando command != login && command != logout. Valores permitidos: dockerRegistry, generic. Valor predefinido: dockerRegistry.

Criar/atualizar uma imagem genérica ou dockerpullsecret. Selecione dockerRegistry para criar/atualizar o imagepullsecret do registo selecionado. Uma imagemPullSecret é uma forma de transmitir um segredo que contém uma palavra-passe de registo de contentor para o Kubelet para que possa extrair uma imagem privada em nome do seu Pod.


secretArguments - Argumentos
string. Opcional. Utilize quando secretType = generic && command != login && command != logout.

Especifica as chaves e os valores literais a inserir em segredo. Por exemplo, --from-literal=key1=value1ou --from-literal=key2="top secret".


containerRegistryType - Tipo de registo de contentor
string. Necessário quando secretType = dockerRegistry && command != login && command != logout. Valores permitidos: Azure Container Registry, Container Registry. Valor predefinido: Azure Container Registry.

Selecione um Tipo de registo de contentor. A tarefa pode utilizar os detalhes da Subscrição do Azure para trabalhar com um registo de Contentor do Azure. Também são suportados outros registos de Contentor padrão.


dockerRegistryEndpoint - Ligação do serviço de registo do Docker
string. Opcional. Utilize quando secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout.

Selecione uma ligação do serviço de registo do Docker. Necessário para comandos que precisam de ser autenticados com um registo.


azureSubscriptionEndpointForSecrets - Subscrição do Azure
string. Opcional. Utilize quando secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Especifica a subscrição do Azure Resource Manager, que contém Azure Container Registry.

Nota

Para configurar uma nova ligação de serviço, selecione a subscrição do Azure na lista e clique em Authorize. Se a sua subscrição não estiver listada ou se quiser utilizar um Principal de Serviço existente, pode configurar uma ligação de serviço do Azure com os Add botões ou Manage .


azureContainerRegistry - Registo de contentor do Azure
string. Opcional. Utilize quando secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Especifica um Azure Container Registry que é utilizado para extrair imagens de contentor e implementar aplicações no cluster do Kubernetes. Necessário para comandos que precisam de ser autenticados com um registo.


secretName - Nome do segredo
string. Opcional. Utilize quando command != login && command != logout.

Nome do segredo. Pode utilizar este nome de segredo no ficheiro de configuração YAML do Kubernetes.


forceUpdate - Forçar atualização secreta
boolean. Opcional. Utilize quando command != login && command != logout. Valor predefinido: true.

Elimine o segredo se existir e crie um novo com valores atualizados.


configMapName - Nome configMap
string. Opcional. Utilize quando command != login && command != logout.

Os ConfigMaps permitem-lhe desassociar artefactos de configuração do conteúdo da imagem para manter as aplicações em contentores portáteis.


forceUpdateConfigMap - Forçar atualização configmap
boolean. Opcional. Utilize quando command != login && command != logout. Valor predefinido: false.

Elimine o configmap se existir e crie um novo com valores atualizados.


useConfigMapFile - Utilizar ficheiro
boolean. Opcional. Utilize quando command != login && command != logout. Valor predefinido: false.

Cria um a partir de um ConfigMap ficheiro individual ou de vários ficheiros ao especificar um diretório.


configMapFile - Ficheiro ConfigMap
string. Necessário quando useConfigMapFile = true && command != login && command != logout.

Especifique um ficheiro ou diretório que contenha configMaps.


configMapArguments - Argumentos
string. Opcional. Utilize quando useConfigMapFile = false && command != login && command != logout.

Especifica as chaves e os valores literais a inserir no configMap. Por exemplo, --from-literal=key1=value1 ou --from-literal=key2="top secret".


versionOrLocation - Kubectl
string. Valores permitidos: version, location (Especificar localização). Valor predefinido: version.

kubectl é uma interface de linha de comandos para executar comandos em clusters do Kubernetes.


versionOrLocation - Kubectl
string. Opcional. Utilize quando command != login && command != logout. Valores permitidos: version, location (Especificar localização). Valor predefinido: version.

kubectl é uma interface de linha de comandos para executar comandos em clusters do Kubernetes.


versionSpec - Especificação de versão
string. Opcional. Utilize quando versionOrLocation = version. Valor predefinido: 1.13.2.

Especifica a especificação de versão da versão a obter. Exemplos: 1.7.0, , 1.x.0, 4.x.0, >=6.10.06.10.0.


versionSpec - Especificação de versão
string. Opcional. Utilize quando versionOrLocation = version && command != login && command != logout. Valor predefinido: 1.7.0.

-18-2 Especifica a especificação de versão da versão a obter. Exemplos: 1.7.0, , 1.x.0, 4.x.0, >=6.10.06.10.0.


checkLatest - Procurar a versão mais recente
boolean. Opcional. Utilize quando versionOrLocation = version. Valor predefinido: false.

Verifica sempre online a versão mais recente disponível (stable.txt) que satisfaça a especificação da versão. Normalmente, isto é falso, a menos que tenha um cenário específico para obter sempre a versão mais recente. Isto fará com que incorra em custos de transferência quando potencialmente não for necessário, especialmente com o conjunto de compilação alojado.


checkLatest - Procurar a versão mais recente
boolean. Opcional. Utilize quando versionOrLocation = version && command != login && command != logout. Valor predefinido: false.

Verifica sempre online a versão mais recente disponível (stable.txt) que satisfaça a especificação da versão. Normalmente, isto é falso, a menos que tenha um cenário específico para obter sempre a versão mais recente. Isto fará com que incorra em custos de transferência quando potencialmente não for necessário, especialmente com o conjunto de compilação alojado.


specifyLocation - Caminho para kubectl
string. Necessário quando versionOrLocation = location.

Especifica o caminho completo para o kubectl.exe ficheiro.


specifyLocation - Caminho para kubectl
string. Necessário quando versionOrLocation = location && command != login && command != logout.

Especifica o caminho completo para o kubectl.exe ficheiro.


workingDirectory - Diretório de trabalho
Alias de entrada: cwd. string. Valor predefinido: $(System.DefaultWorkingDirectory).

Diretório de trabalho para o comando kubectl.


workingDirectory - Diretório de trabalho
Alias de entrada: cwd. string. Opcional. Utilize quando command != login && command != logout. Valor predefinido: $(System.DefaultWorkingDirectory).

Diretório de trabalho para o comando kubectl.


outputFormat - Formato de saída
string. Valores permitidos: json, , yamlnone. Valor predefinido: json.

Formato de saída.


outputFormat - Formato de saída
string. Valores permitidos: json, yaml. Valor predefinido: json.

Formato de saída.


outputFormat - Formato de saída
string. Opcional. Utilize quando command != login && command != logout. Valores permitidos: json, yaml. Valor predefinido: json.

Formato de saída.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Esta tarefa define as seguintes variáveis de saída, que pode consumir em passos, tarefas e fases a jusante.

KubectlOutput
Armazena a saída do kubectl comando.

Observações

Novidades na Versão 1.0.

  • Foi adicionada uma nova entrada de tipo de ligação de serviço para uma seleção fácil de clusters do Azure AKS.
  • Substituiu a entrada da variável de saída por uma secção de variáveis de saída que adicionámos em todas as tarefas.

Utilize esta tarefa para implementar, configurar ou atualizar um cluster do Kubernetes ao executar comandos kubectl.

Ligação de serviço

A tarefa funciona com dois tipos de ligação de serviço: Azure Resource Manager e Ligação do Serviço Kubernetes, descritos abaixo.

Azure Resource Manager

Defina connectionType como Azure Resource Manager e especifique um azureSubscriptionEndpoint para utilizar uma ligação de serviço do Azure Resource Manager.

Este exemplo de YAML mostra como o Azure Resource Manager é utilizado para fazer referência ao cluster do Kubernetes. Isto deve ser utilizado com um dos comandos kubectl e os valores adequados exigidos pelo 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)

Ligação do Serviço Kubernetes

Defina connectionType como Kubernetes Service Connection e especifique um kubernetesServiceEndpoint para utilizar uma ligação de serviço do Kubernetes.

Este exemplo do YAML mostra como uma Ligação do Serviço Kubernetes é utilizada para fazer referência ao cluster do Kubernetes. Isto deve ser utilizado com um dos comandos kubectl e os valores adequados exigidos pelo comando .

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

Considerações sobre a Ligação do Serviço Kubernetes ao aceder ao AKS

Pode criar uma ligação de serviço do Kubernetes com qualquer uma das seguintes opções.

  • KubeConfig
  • Conta de Serviço
  • Subscrição do Azure

Captura de ecrã a mostrar a escolha de um método de autenticação de ligação do serviço Kubernetes.

Ao selecionar a opção Subscrição do Azure , o Kubernetes tem de estar acessível ao Azure DevOps no momento da configuração da ligação de serviço. Podem existir vários motivos pelos quais não é possível criar uma ligação de serviço, por exemplo , criou um cluster privado ou o cluster tem contas locais desativadas. Nestes casos, o Azure DevOps não consegue ligar ao cluster no momento da configuração da ligação de serviço e verá um ecrã a carregar espaços de nomes bloqueado.

Captura de ecrã a mostrar a escolha de uma caixa de diálogo de autenticação de ligação do serviço Kubernetes bloqueada ao carregar espaços de nomes.

A partir do Kubernetes 1.24, os tokens de longa duração já não são criados por predefinição. O Kubernetes recomenda que não utilize tokens de longa duração. Como resultado, as tarefas que utilizam uma ligação de serviço do Kubernetes criada com a opção Subscrição do Azure não têm acesso ao token permanente necessário para autenticar e não podem aceder ao cluster do Kubernetes. Isto também resulta na caixa de diálogo Carregar espaços de nomes congelados .

Utilizar a Ligação do Serviço do Azure Resource Manager para aceder ao AKS

Para os clientes do AKS, o tipo de ligação de serviço do Azure Resource Manager fornece o melhor método para ligar a um cluster privado ou a um cluster com contas locais desativadas. Este método não depende da conectividade do cluster no momento em que criar uma ligação de serviço. O acesso ao AKS é diferido para o runtime do pipeline, que tem as seguintes vantagens:

  • O acesso a um cluster do AKS (privado) pode ser efetuado a partir de um agente autoalojado ou de um conjunto de dimensionamento com linha de visão para o cluster.
  • É criado um token para cada tarefa que utiliza uma ligação de serviço do Azure Resource Manager. Isto garante que está a ligar ao Kubernetes com um token de curta duração, que é a recomendação do Kubernetes.
  • O AKS pode ser acedido mesmo quando as contas locais são desativadas.

FAQ da ligação de serviço

Recebo a seguinte mensagem de erro: Não foi possível localizar nenhum segredo associado à conta de serviço. O que está a acontecer?

Está a utilizar a ligação do serviço Kubernetes com a opção Subscrição do Azure. Estamos a atualizar este método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, é recomendado começar a utilizar o tipo de ligação de serviço do Azure e não utilizar tokens de longa duração de acordo com as orientações do Kubernetes.

Estou a utilizar o AKS e não quero alterar nada. Posso continuar a utilizar tarefas com a ligação do serviço Kubernetes?

Estamos a atualizar este método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, tenha em atenção que esta abordagem é contra as orientações do Kubernetes.

Estou a utilizar as tarefas do Kubernetes e a ligação do serviço Kubernetes, mas não o AKS. Devo preocupar-me?

As tarefas continuarão a funcionar como anteriormente.

O tipo de ligação do serviço Kubernetes será removido?

As nossas tarefas do Kubernetes funcionam com qualquer cluster do Kubernetes, independentemente do local onde estão a ser executadas. A ligação do serviço Kubernetes continuará a existir.

Sou um cliente do AKS e está tudo a correr bem, devo agir?

Não há necessidade de mudar nada. Se estiver a utilizar a ligação do serviço Kubernetes e tiver selecionado a Subscrição do Azure durante a criação, deve estar ciente das orientações do Kubernetes sobre a utilização de tokens de longa duração.

Estou a criar um Ambiente do Kubernetes e não tenho nenhuma opção para utilizar ligações de serviço

Caso não consiga aceder ao AKS durante o tempo de criação do ambiente, pode utilizar um ambiente vazio e definir a connectionType entrada para uma ligação de serviço do Azure Resource Manager.

Tenho o AKS configurado com o RBAC do Azure Active Directory e o meu pipeline não funciona. Estas atualizações irão resolver este problema?

O acesso ao Kubernetes quando o RBAC do AAD está ativado não está relacionado com a criação de tokens. Para impedir um pedido interativo, iremos suportar o kubelogin numa atualização futura.

Comandos

A entrada do comando aceita comandos kubectl.

Este exemplo do YAML demonstra o 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

Este exemplo do YAML demonstra a utilização de um ficheiro de configuração com o 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

Este exemplo de YAML mostra a utilização de como utilizar o comando de dimensionamento para diminuir o número de réplicas numa implementação para 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)

Segredos

Os objetos kubernetes do tipo segredo destinam-se a conter informações confidenciais, como palavras-passe, tokens OAuth e chaves ssh. Colocar estas informações em segredo é mais seguro e flexível do que colocá-la no texto literal numa definição de pod ou numa imagem do Docker. O Azure Pipelines simplifica a adição de a uma conta de ImagePullSecrets serviço ou a configuração de qualquer segredo genérico, conforme descrito abaixo.

ImagePullSecret

Este exemplo de YAML demonstra a configuração 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

Segredos Genéricos

Este exemplo YAML cria segredos genéricos a partir de valores literais especificados para a 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

As variáveis de pipeline podem ser utilizadas para transmitir argumentos para especificar valores literais, conforme mostrado aqui:

    - 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-lhe desassociar artefactos de configuração do conteúdo da imagem para manter a portabilidade para aplicações em contentores.

Este exemplo YAML cria um ConfigMap ao apontar para um ficheiro ConfigMap:

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

Este exemplo YAML cria um ConfigMap ao especificar os valores literais diretamente como a entrada configMapArguments e a definição forceUpdate como verdadeiro:

    - 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

Pode utilizar variáveis de pipeline para transmitir valores literais ao criar o ConfigMap, conforme mostrado aqui:

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

Resolução de problemas

O cluster My Kubernetes está protegido por uma firewall e eu estou a utilizar agentes alojados. Como posso implementar neste cluster?

Pode conceder acesso a agentes alojados através da firewall, ao permitir os endereços IP para os agentes alojados. Para obter mais detalhes, veja Intervalos de IP do agente

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente Todas as versões de agente suportadas.
Categoria da tarefa Implementação