Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Implemente la función de Azure en el clúster de Kubernetes.
Sintaxis
# 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.
Entradas
connectionType
-
tipo de conexión servicio
string
. Obligatorio. Valores permitidos: Azure Resource Manager
, Kubernetes Service Connection
. Valor predeterminado: Kubernetes Service Connection
.
Seleccione un tipo de conexión de servicio de Kubernetes.
-
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 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 configuración de la conexión de servicio.
Para obtener más información, vea Comentarios.
dockerRegistryServiceConnection
-
conexión del servicio del registro de Docker
string
. Obligatorio.
Seleccione una conexión de servicio del registro de Docker.
de conexión de servicio de Kubernetes kubernetesServiceConnection
-
Alias de entrada: kubernetesServiceEndpoint
.
string
. Obligatorio cuando connectionType = Kubernetes Service Connection
.
Seleccione una conexión de servicio de Kubernetes.
azureSubscriptionConnection
-
de suscripción de Azure
Alias de entrada: azureSubscriptionEndpoint
.
string
. Obligatorio cuando connectionType = Azure Resource Manager
.
Seleccione 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 "Autorizar". Si su 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 el botón "Agregar" o "Administrar".
del grupo de recursos de azureResourceGroup
-
string
. Obligatorio cuando connectionType = Azure Resource Manager
.
Seleccione un grupo de recursos de Azure.
kubernetesCluster
-
del clúster de Kubernetes
string
. Obligatorio cuando connectionType = Azure Resource Manager
.
Seleccione un clúster administrado de Azure.
namespace
-
espacio de nombres de Kubernetes
string
.
Espacio de nombres de Kubernetes.
secretName
-
de nombre secreto
string
.
Secreto de Kubernetes que contiene datos de configuración de funciones (por ejemplo, AzureWebJobsStorage: Azure storage connection string
).
dockerHubNamespace
-
del espacio de nombres de Docker Hub
string
.
Espacio de nombres de Docker Hub. Necesario para el repositorio privado de Docker Hub.
de nombre de aplicación de appName
-
string
. Obligatorio.
Nombre de la aplicación. Los objetos de Kubernetes creados usan este nombre. Esto debe seguir las convenciones de nomenclatura de Kubernetes para los nombres de recursos.
del directorio raíz de functionRootDirectory
- Function
string
.
Directorio raíz de la función. Debe contener host.json. La compilación e inserción de Docker se realiza desde este directorio.
waitForStability
-
esperar de estabilidad
boolean
. Valor predeterminado: true
.
Espere a que los objetos de Kubernetes lleguen al estado deseado.
argumentos de arguments
-
string
.
Pase argumentos al comando . Por ejemplo:
--no-docker --tipo-servicio NodePort.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
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 opciones siguientes.
- KubeConfig
- Cuenta de servicio
- Suscripción a Azure
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, crea un clúster privado o el clúster tiene cuentas locales deshabilitadas. En estos casos, Azure DevOps no se puede conectar al clúster en el momento de la configuración de la conexión de servicio y verá una pantalla de 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 inmovilizado Carga de espacios de nombres.
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 de crear 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?
Está usando la conexión del servicio Kubernetes con la opción 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 guía 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 guía de Kubernetes.
Uso las tareas de Kubernetes y la conexión del servicio 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 del servicio 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 entrada connectionType
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.
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
Capacidades | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Cualquiera |
variables settable | Cualquiera |
Versión del agente | Todas las versiones de agente admitidas. |
Categoría de tarea | Desplegar |