GitHub Actions Runner Controller 0.14.0 출시: 멀티 레이블 지원으로 런너 관리 효율 UP!

by DD
2개월 전
조회수 8

GitHub Actions Runner Controller(ARC) 0.14.0 정식 출시, 멀티 레이블(Multi-label) 지원을 통해 런너(Runner) 확장성 향상

actions/scaleset 라이브러리로 클라이언트 전환, 커스텀 리소스 설정(Custom Resource Configuration) 옵션 추가

런너 설정 변경 시 자동 스케일링 중단 기능 도입, 일관성 없는 환경에서 작업 실행 방지

리스너(Listener) Pod 기본 OS를 리눅스(Linux)로 설정하여 OS 호환성 문제(OS Compatibility Issue) 해결

멀티 레이블(Multi-label) 지원을 통한 런너(Runner) 관리 효율 증대

본문에 따르면 ARC 0.14.0은 멀티 레이블(Multi-label) 지원을 통해 단일 런너 스케일 세트(Runner Scale Set)에 여러 레이블을 할당할 수 있도록 개선되었다.

이전 버전: 운영체제(Operating System), 하드웨어(Hardware) 등 조합별로 개별 스케일 세트(Scale Set) 생성 필요

개선 사항: 단일 스케일 세트 내에서 다양한 속성(Attribute) 정의 및 runs-on 선언에 활용 가능

효과: 런너(Runner) 관리 복잡성 감소 및 워크플로우(Workflow) 유연성 향상

결과적으로 다양한 환경 설정을 가진 런너(Runner)를 효율적으로 관리하고, 워크플로우(Workflow) 정의를 간소화할 수 있다.

actions/scaleset 라이브러리 도입과 아키텍처 변화

글에 따르면 ARC는 GitHub Actions 서비스 API(Service API) 통신을 위해 actions/scaleset 라이브러리를 사용하도록 변경되었다.

기존: 내부 클라이언트(Internal Client) 사용

변경 사항: 공개적으로 사용 가능한 Go 패키지(Go Package) 사용

장점: 플랫폼 팀(Platform Team) 및 인프라 제공업체(Infrastructure Provider)가 ARC와 동일한 클라이언트를 사용하여 맞춤형 자동 스케일링 솔루션(Custom Autoscaling Solution) 구축 가능

이러한 변화는 ARC의 유연성(Flexibility) 및 확장성(Scalability)을 높이고, 생태계 확장에 기여할 것으로 예상된다.

자동 스케일링 중단 기능 도입과 런너(Runner) 환경 일관성 확보

본문에서는 런너(Runner) 설정이 오래된 경우 ARC가 자동 스케일링(Autoscaling)을 중단하는 기능을 소개한다.

문제 상황: 런너(Runner)가 exit code 7로 종료될 경우, 오래된 설정(Outdated Configuration)으로 인해 작업(Job) 실행 문제 발생

해결 방안: 런너(Runner) 종료 시 자동 스케일링 중단, 새로운 설정 배포(New Configuration Rollout) 완료 시까지 런너(Runner) 프로비저닝(Provisioning) 방지

부가 조건: 런너(Runner) 릴리스(Release)에서 exit code 7 지원 필요, 런너 버전 지원 정책(Runner Version Support Policy)에 따라 기능 활성화 지연

결과적으로 런너(Runner) 환경의 일관성을 유지하고, 예기치 않은 오류(Unexpected Error) 발생 가능성을 줄일 수 있다.

리스너(Listener) Pod의 OS 기본 설정 및 호환성 개선

글에 따르면 리스너(Listener) Pod의 기본 노드 선택자(NodeSelector)를 kubernetes.io/os: linux로 설정하여 OS 호환성 문제(OS Compatibility Issue)를 해결했다.

문제점: 혼합 OS 클러스터(Mixed-OS Cluster)에서 리스너(Listener)가 윈도우(Windows) 노드에 스케줄링(Scheduling)되어 실행 실패(Execution Failure) 발생 가능성

해결 방안: 리스너(Listener) Pod가 리눅스(Linux) 노드에서 실행되도록 기본 설정

유연성: listenerTemplate 설정을 통해 기본 설정 변경 또는 제거 가능

결과적으로 다양한 OS 환경에서 ARC의 안정적인 운영을 지원하고, 사용자 편의성(User Convenience)을 향상시킬 수 있다.

Actions Runner Controller release 0.14.0