GitHub Actions Runner Controller 0.14.0 출시: 멀티 레이블 지원으로 런너 관리 효율 UP!
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)을 향상시킬 수 있다.