
쿠버네티스에게 Github Actions 설치에 대해 묻다
두줄요약
Kubernetes에 GitHub 지원 ARC Runner Scale Sets를 설치해 자체 호스팅 러너를 운영하는 방식을 설명했습니다.\n자동 확장, IRSA 권한 제어, 커스텀 이미지와 컨테이너 모드 선택 기준을 다뤘습니다.
문제 상황
- GitHub-hosted 러너의 빌드 환경 제어 제약, 내부망 접근 보안 이슈, CI 시간·비용 비효율
- VM 기반 자체 호스팅의 과소·과다 프로비저닝에 따른 빌드 지연 또는 리소스 낭비
선택 이유
- Kubernetes 파드별 워크플로 특성에 맞춘 리소스 할당과 자동 확장
- 대기 러너 유지 및 빠른 파드 할당을 통한 Pending 시간 감소
- 커뮤니티 ARC 레거시화에 따른 미래 마이그레이션 비용 회피를 위해 GitHub 지원 Runner Scale Sets 모드 선택
구조와 흐름
- controller의 GitHub API 호출과 러너 상태 업데이트
- listener의 GitHub 서버 long-poll 연결 및 부족한 러너 레플리카 확장
- runner의 격리된 잡 실행 환경과 GitHub 서버 long-poll 연결
주의할 점
- minRunners를 업무 시간 수요에 맞추고 CronJob으로 조정하는 비용·속도 균형
- IRSA 기반 러너 그룹별 AWS 권한 제한과 커스텀 러너 이미지 구성
- dind의 Docker 이미지 빌드 편의성과 privileged 모드 보안 제약, kubernetes 모드의 높은 보안성과 빌드 방식 제한



