Implementación y prueba de acciones de GitHub de alta disponibilidad en Azure Kubernetes Service (AKS)

En este artículo, aprenderá a implementar y probar acciones de GitHub de alta disponibilidad con Azure Files en Azure Kubernetes Service (AKS).

Flujos de trabajo de ejemplo de Acciones de GitHub

El repositorio tiene tres cargas de trabajo de ejemplo en la carpeta de flujo de trabajo predeterminada de GitHub para probar los ejecutores de ARC autohospedados:

  • dotnet-using-container.yml: Compilación de .NET mediante contenedores instala el SDK de .NET y restaura, compila o publica la aplicación en el propio ejecutor.
  • dotnet-without-container.yml: la compilación de .NET sin contenedores usa la característica de contenedor de flujo de trabajo para ejecutar un contenedor del SDK de .NET y compilar dentro de la aplicación dentro del contenedor. El almacenamiento en caché de NuGet se monta de forma predeterminada en este contenedor.
  • container-service-test.yml: Los flujos de trabajo de pruebas para contenedores y servicios también usan la característica de contenedores para crear un contenedor de Ubuntu y un servicio de Redis. Ambos contenedores se ejecutan en el mismo pod de AKS. El almacenamiento en caché de NuGet también se monta de forma predeterminada en este contenedor.

Los tres flujos de trabajo tienen un parámetro de entrada para el nombre del ejecutor de ARC que se usará en el runs-on: campo del flujo de trabajo. Esta es la ARC_RUNNER_SCALESET_NAME="arc-runner-set" variable que definimos anteriormente. Para facilitar las pruebas, usamos la workflow_dispatch: opción en los tres flujos de trabajo para ejecutar solo esos flujos de trabajo cuando se solicita manualmente. En la pestaña Acciones de GitHub del repositorio, seleccione uno de los flujos de trabajo y ejecute la carga de trabajo.

Una vez que se ejecuta el flujo de trabajo, solicita a un ejecutor a ARC que se ejecute en el clúster de AKS. Una vez que este ejecutor, un pod en Kubernetes, se asigna para el trabajo, el flujo de trabajo se ejecuta allí hasta su finalización. Usamos el enfoque del ejecutor efímero, por lo que el pod que ejecuta el flujo de trabajo se destruye al final y se crea uno nuevo para la siguiente ejecución de flujo de trabajo.

Eliminación de los recursos

Cuando esté listo, puede eliminar todos los recursos creados en esta guía mediante los siguientes comandos:

# Delete ARC runners scale sets 

helm delete "${ARC_RUNNER_SCALESET_NAME}" -n "${NAMESPACE_ARC_RUNNERS}" --wait 

# Delete ARC runners scale set controller 

helm delete "${ARC_CONTROLLER_NAME}" -n "${NAMESPACE_ARC_CONTROLLER}" --wait 

# Delete Azure File share configurations 

kubectl delete -f ./install/arc-runners-set-pv-pvc.yaml --wait 
kubectl delete -f ./install/arc-runners-storage-class-files.yaml --wait 

# Delete secrets 

kubectl delete secret azure-storage-secret -n arc-runners --wait 
kubectl delete secret ${ARC_RUNNER_GITHUB_SECRET_NAME} -n arc-runners --wait 

# Delete container runner configmap pod spec 

kubectl delete -f ./install/arc-runners-set-container-pod-spec.yaml --wait 

# Delete namespaces 

kubectl delete namespace ${NAMESPACE_ARC_RUNNERS} 
kubectl delete namespace ${NAMESPACE_ARC_CONTROLLER} 

Pasos siguientes

Para más información sobre la implementación de software de código abierto en Azure Kubernetes Service (AKS), consulte el siguiente artículo:

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores:

  • Jorge Arterio | Promotor sénior de la nube
  • Jeff Patterson | Administrador de productos principal
  • Rena Shah | Jefe de producto sénior
  • Shekhar Singh Sorot | Administrador de productos 2
  • Erin Schaffer | Desarrollador de contenido 2