← 문제 라이브러리
CI/CD 중급 CICD-109 · 16분

같은 러너 라벨인데 일부 러너에서만 docker build가 데몬 연결 실패

빌드 대기열이 길어져 쿠버네티스 위의 자체 호스팅 러너를 늘렸습니다.

검수된 문제무료
시나리오

빌드 대기열이 길어져 쿠버네티스 위의 자체 호스팅 러너를 늘렸습니다. 기존 러너 그룹(build-a)과 같은 라벨 linux-build를 붙인 새 러너 그룹(build-b)을 추가했는데, 그 뒤로 이미지 빌드 job이 가끔 실패합니다. 실패한 job을 다시 돌리면 성공하기도 해서 팀은 불안정한 테스트라고 생각하고 있습니다. 새 러너 그룹은 비용을 줄이려고 기존 설정을 간소화해 만들었습니다. 이미지 빌드가 실패하면 그 PR은 배포 대기열에서 빠지기 때문에 개발자들의 불만이 쌓이고 있습니다. 실패 로그는 늘 Docker 연결 오류로 같습니다.

단서
실패·성공 기록
✗ build-image  runner: build-b-7kq2x   Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
✓ build-image  runner: build-a-3fz8m   Successfully built 4c1d2e9a7b10
러너 그룹 설정 비교 (일부)
# build-a
labels: [self-hosted, linux-build]
containers: [runner, dind]
volumes: [docker-sock]

# build-b
labels: [self-hosted, linux-build]
containers: [runner]
volumes: []

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • 라벨이 같다고 러너의 능력이 같은 것은 아니다
  • 가끔 실패하는 job에서 실패한 실행 환경 찾기
점검 체크리스트
  1. 실패한 job과 성공한 job이 돈 러너 이름
  2. 러너 그룹별 컨테이너·볼륨 구성 비교
  3. 라벨이 어떤 능력을 약속하는지 문서와 대조