Развертывание и проверка высокодоступных действий GitHub в службе Azure Kubernetes (AKS)

В этой статье вы узнаете, как развернуть и проверить высокодоступные действия GitHub с помощью файлов Azure в службе Azure Kubernetes (AKS).

Примеры рабочих процессов GitHub Actions

Репозиторий содержит три примера рабочих нагрузок в папке рабочего процесса GitHub по умолчанию, чтобы протестировать локальные модули выполнения ARC:

  • dotnet-using-container.yml: сборка .NET с помощью контейнеров устанавливает пакет SDK для .NET и восстанавливает и публикует приложение на самом средстве выполнения.
  • dotnet-without-container.yml: сборка .NET без контейнеров использует функцию контейнера рабочего процесса для запуска контейнера пакета SDK для .NET и сборки внутри приложения внутри контейнера. Кэширование NuGet по умолчанию подключено к этому контейнеру.
  • container-service-test.yml. Рабочие процессы тестирования контейнеров и тестов служб также используют функцию контейнеров для создания контейнера Ubuntu и службы Redis. Оба контейнера запущены на одном AKS Pod. Кэширование NuGet также подключено по умолчанию к этому контейнеру.

Все три рабочего процесса имеют входной параметр для названия ARC runner, который будет использоваться в поле runs-on: вашего рабочего процесса. Это переменная ARC_RUNNER_SCALESET_NAME="arc-runner-set", которую мы определили ранее. Чтобы упростить тестирование, мы используем workflow_dispatch: параметр в трех рабочих процессах, чтобы запускать только эти рабочие процессы при запросе вручную. На вкладке "Действия GitHub" репозитория выберите один из рабочих процессов и запустите рабочую нагрузку.

После запуска рабочего процесса он запрашивает "раннер" для ARC, работающего в кластере AKS. Когда модуль выполнения, pod в Kubernetes, выделяется для задания, рабочий процесс выполняется там до завершения. Мы используем эфемерный подход runner, поэтому модуль pod, выполняющий рабочий процесс, уничтожается в конце и создается новый для следующего запуска рабочего процесса.

Удаление ресурсов

Когда вы будете готовы, вы можете удалить все ресурсы, созданные в этом руководстве, с помощью следующих команд:

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

Дальнейшие шаги

Дополнительные сведения о развертывании программного обеспечения с открытым кодом в Службе Azure Kubernetes (AKS) см. в следующей статье:

Соавторы

Корпорация Майкрософт поддерживает эту статью. Первоначальная версия была написана следующими участниками:

  • Хорхе Артерио | Старший адвокат по облачным технологиям
  • Джефф Паттерсон | Главный диспетчер продуктов
  • Рена Шах | Старший менеджер по продуктам
  • Шехар Сингх Сорот | Product Manager 2
  • Эрин Шаффер | Разработчик содержимого 2