빌드 대기열이 길어져 쿠버네티스 위의 자체 호스팅 러너를 늘렸습니다. 기존 러너 그룹(build-a)과 같은 라벨 linux-build를 붙인 새 러너 그룹(build-b)을 추가했는데, 그 뒤로 이미지 빌드 job이 가끔 실패합니다. 실패한 job을 다시 돌리면 성공하기도 해서 팀은 불안정한 테스트라고 생각하고 있습니다. 새 러너 그룹은 비용을 줄이려고 기존 설정을 간소화해 만들었습니다. 이미지 빌드가 실패하면 그 PR은 배포 대기열에서 빠지기 때문에 개발자들의 불만이 쌓이고 있습니다. 실패 로그는 늘 Docker 연결 오류로 같습니다.
같은 러너 라벨인데 일부 러너에서만 docker build가 데몬 연결 실패
빌드 대기열이 길어져 쿠버네티스 위의 자체 호스팅 러너를 늘렸습니다.
시나리오
단서
✗ 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: []
과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.
구독하면 이어서 볼 수 있어요
이 문제의 전체 시나리오와 점검 체크리스트, 복구 순서, 모범 풀이는 Pro 구독에서 열립니다.
먼저 볼 것
- 라벨이 같다고 러너의 능력이 같은 것은 아니다
- 가끔 실패하는 job에서 실패한 실행 환경 찾기
점검 체크리스트
- 실패한 job과 성공한 job이 돈 러너 이름
- 러너 그룹별 컨테이너·볼륨 구성 비교
- 라벨이 어떤 능력을 약속하는지 문서와 대조
복구와 재발 방지
같이 보면 좋은 질문
현장에서 본 비슷한 케이스