Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Implante a função do Azure no cluster do Kubernetes.
Sintaxe
# Azure Function on Kubernetes v1
# Deploy Azure function to Kubernetes cluster.
- task: AzureFunctionOnKubernetes@1
inputs:
# Service Connections
connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection'. Required. Service connection type. Default: Kubernetes Service Connection.
dockerRegistryServiceConnection: # string. Required. Docker registry service connection.
#kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection. Kubernetes service connection.
#azureSubscriptionConnection: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager. Azure subscription.
#azureResourceGroup: # string. Required when connectionType = Azure Resource Manager. Resource group.
#kubernetesCluster: # string. Required when connectionType = Azure Resource Manager. Kubernetes cluster.
# Commands
#namespace: # string. Kubernetes namespace.
#secretName: # string. Secret Name.
#dockerHubNamespace: # string. Docker Hub namespace.
appName: # string. Required. Application Name.
#functionRootDirectory: # string. Function root directory.
#waitForStability: true # boolean. Wait for stability. Default: true.
#arguments: # string. Arguments.
Insumos
connectionType
-
Tipo de conexão de serviço
string. Obrigatório Valores permitidos: Azure Resource Manager, Kubernetes Service Connection. Valor predefinido: Kubernetes Service Connection.
Selecione um tipo de conexão de serviço Kubernetes.
-
Kubernetes Service Connection- Permite fornecer um arquivo KubeConfig, especificar uma Conta de Serviço ou importar uma instância do AKS com a opção de Assinatura do Azure. A importação de uma instância do AKS com a opção de Assinatura do Azure requer acesso ao cluster do Kubernetes no momento da configuração da Conexão de Serviço. -
Azure Resource Manager- Permite selecionar uma instância AKS. Não acessa o cluster Kubernetes no momento da configuração da Conexão de Serviço.
Para obter mais informações, veja Observações.
dockerRegistryServiceConnection
-
de conexão do serviço de registro do Docker
string. Obrigatório
Selecione uma conexão de serviço de registro do Docker.
kubernetesServiceConnection
-
de conexão de serviço Kubernetes
Alias de entrada: kubernetesServiceEndpoint.
string. Necessário quando connectionType = Kubernetes Service Connection.
Selecione uma conexão de serviço Kubernetes.
azureSubscriptionConnection
-
de assinatura do Azure
Alias de entrada: azureSubscriptionEndpoint.
string. Necessário quando connectionType = Azure Resource Manager.
Selecione a assinatura do Azure Resource Manager, que contém o Azure Container Registry.Nota: Para configurar a nova conexão de serviço, selecione a assinatura do Azure na lista e clique em 'Autorizar'. Se a sua subscrição não estiver listada ou se pretender utilizar uma Entidade de Serviço existente, pode configurar uma ligação de serviço do Azure utilizando o botão 'Adicionar' ou 'Gerir'.
azureResourceGroup
-
Grupo de recursos
string. Necessário quando connectionType = Azure Resource Manager.
Selecione um grupo de recursos do Azure.
kubernetesCluster
-
de cluster do Kubernetes
string. Necessário quando connectionType = Azure Resource Manager.
Selecione um cluster gerenciado do Azure.
namespace
-
de namespace do Kubernetes
string.
Namespace do Kubernetes.
secretName
-
Nome Secreto
string.
Segredo do Kubernetes contendo dados de configuração de função (por exemplo, AzureWebJobsStorage: Azure storage connection string).
dockerHubNamespace
-
namespace do Docker Hub
string.
Namespace do Docker Hub. Necessário para o repositório privado do Docker Hub.
appName
-
Nome do aplicativo
string. Obrigatório
Nome do aplicativo. Os objetos do Kubernetes criados usam esse nome. Isso deve seguir as convenções de nomenclatura do Kubernetes para nomes de recursos.
functionRootDirectory
-
de diretório raiz da função
string.
Diretório raiz da função. Deve conter host.json. A compilação e o push do Docker são executados a partir deste diretório.
waitForStability
-
Aguarde a estabilidade
boolean. Valor predefinido: true.
Aguarde até que os objetos do Kubernetes atinjam o estado desejado.
arguments
-
Argumentos
string.
Passe argumentos para comando. Ex.:
--no-docker --service-type NodePort.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
Considerações sobre a conexão de serviço do Kubernetes ao acessar o AKS
Você pode criar uma conexão de serviço Kubernetes com qualquer uma das seguintes opções.
- KubeConfig
- Conta de Serviço
- Subscrição do Azure
Ao selecionar a opção de Assinatura do Azure, o Kubernetes precisa estar acessível ao Azure DevOps no momento da configuração da conexão de serviço. Pode haver vários motivos pelos quais uma conexão de serviço não pode ser criada, por exemplo, você criou um de cluster privado ou o cluster tem contas locais desabilitadas. Nesses casos, o Azure DevOps não pode se conectar ao cluster no momento da configuração da conexão de serviço e você verá uma tela Carregando namespaces presa.
A partir do Kubernetes 1.24, os tokens de vida longa não são mais criados por padrão. O Kubernetes recomenda não usar tokens de longa duração. Como resultado, as tarefas que usam uma conexão de serviço do Kubernetes criada com a opção de Assinatura do Azure não têm acesso ao token permanente necessário para autenticar e não podem acessar seu cluster do Kubernetes. Isso também resulta na caixa de diálogo congelada Carregando namespaces.
Usar a Conexão de Serviço do Azure Resource Manager para acessar o AKS
Para clientes AKS, o tipo de conexão de serviço do Azure Resource Manager fornece o melhor método para se conectar a um cluster privado ou a um cluster que tenha contas locais desabilitadas. Esse método não depende da conectividade de cluster no momento em que você cria uma conexão de serviço. O acesso ao AKS é adiado para o tempo de execução do pipeline, que tem as seguintes vantagens:
- O acesso a um cluster AKS (privado) pode ser realizado a partir de um agente auto-hospedado ou de conjunto de escala com linha de visão para o cluster.
- Um token é criado para cada tarefa que usa uma conexão de serviço do Azure Resource Manager. Isso garante que você esteja se conectando ao Kubernetes com um token de curta duração, que é o recomendação do Kubernetes.
- O AKS pode ser acessado mesmo quando as contas locais estão desativadas.
Perguntas frequentes sobre conexão de serviço
Recebo a seguinte mensagem de erro: Não foi possível encontrar nenhum segredo associado à conta de serviço. O que é que está a acontecer?
Você está usando a conexão de serviço do Kubernetes com a opção Assinatura do Azure. Estamos atualizando esse método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, é recomendável começar a usar o tipo de conexão de serviço do Azure e não usar tokens de longa duração, conforme de orientação do Kubernetes.
Estou usando o AKS e não quero alterar nada, posso continuar a usar tarefas com a conexão de serviço do Kubernetes?
Estamos atualizando esse método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, esteja ciente de que essa abordagem é contrária orientação do Kubernetes.
Estou usando as tarefas do Kubernetes e a conexão de serviço do Kubernetes, mas não o AKS. Devo preocupar-me?
As suas tarefas continuarão a funcionar como antes.
O tipo de conexão do serviço Kubernetes será removido?
Nossas tarefas do Kubernetes funcionam com qualquer cluster do Kubernetes, independentemente de onde estejam sendo executadas. A conexão de serviço do Kubernetes continuará a existir.
Sou um cliente AKS e está tudo a correr bem, devo agir?
Não há necessidade de mudar nada. Se você estiver usando a conexão de serviço do Kubernetes e selecionou a Assinatura do Azure durante a criação, deve estar ciente das orientações do Kubernetes sobre o uso de tokens de longa duração.
Estou criando um ambiente Kubernetes e não tenho opção de usar conexões de serviço
Caso não consiga acessar seu AKS durante o tempo de criação do ambiente, você pode usar um ambiente vazio e definir a entrada connectionType para uma conexão de serviço do Azure Resource Manager.
Tenho o AKS configurado com o Azure Ative Directory RBAC e meu pipeline não funciona. Essas atualizações resolverão isso?
O acesso ao Kubernetes quando o RBAC do AAD está habilitado não está relacionado à criação de tokens. Para evitar um prompt interativo, suportaremos kubelogin em uma atualização futura.
Requerimentos
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Exigências | Nenhum |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
| Restrições de comando | Qualquer |
| Variáveis configuráveis | Qualquer |
| Versão do agente | Todas as versões de agente suportadas. |
| Categoria de tarefa | Desplegar |