본문 바로가기
C.W.K.
Stream
Lesson 03 of 13 · published

러너 라벨과 라우팅

~9 min · labels, routing, matchmaking

Level 0견습생
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

GitHub가 러너를 고르는 방법

작업이 runs-on: [self-hosted, gpu, linux]라고 선언하면, GitHub는 세 가지 라벨을 모두 가진 러너를 찾아. 조건을 만족하는 러너가 여러 대면 가장 먼저 쉬고 있는 러너가 선택돼. 아예 없으면 러너가 사용 가능해질 때까지 큐에서 대기해.

일상적으로 필요한 라벨

  • 신뢰 계층trusted(자체 조직 코드만) vs untrusted(퍼블릭 PR).
  • 리소스 형태gpu, gpu-h100, large-mem, fast-disk.
  • 위치region-us, region-kr, internal-network.
  • 능력 버전 관리cuda12, node22. 러너 이미지를 업그레이드할 때 라벨을 바꿔두면, 전환 중인 옛 워크플로가 옛 러너를 계속 타겟하도록 유지할 수 있어.

그룹 라우팅

라벨 외에도 러너는 조직 수준의 러너 그룹으로 묶을 수 있어. 그룹을 쓰면 어느 워크플로나 저장소가 해당 러너를 쓸 수 있는지 제한할 수 있지. 하나의 러너 풀이 신뢰 수준이 다른 여러 저장소를 서빙할 때 이 그룹 기능을 활용해.

Code

가장 강력한 러너 매칭 패턴·yaml
  fast-test:
    # Prefer a fast runner if available; fall back to any
    runs-on: [self-hosted, fast-disk, linux]
    steps:
      - run: pytest

  any-runner:
    runs-on: [self-hosted, linux]
    steps:
      - run: pytest

External links

Exercise

러너 플릿의 라벨을 README에 문서화해 봐. 각 러너별로 어떤 라벨을 가지고 있는지, 어떤 종류의 작업을 받을 수 있는지, 누가 유지 보수하는지 나열해. 빠져있거나 오래된 라벨은 업데이트해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.