Container Image Delivery
Container Image Delivery 관련 장애 문제 17개를 모았습니다. 검수된 문제부터 풀어 보세요.
먼저 읽을 가이드
CI cache가 잘못된 dependency graph를 복원할 때cache hit 이후에도 package.json, lockfile, artifact 기준이 서로 맞지 않는 상황CI/CD2분 읽기GitHub Actions 성공 후 rollout만 실패하는 경우빌드 로그는 정상인데 배포 대상 cluster나 runtime에서만 장애가 드러나는 상황CI/CD3분 읽기GitHub Actions는 성공했는데 배포만 실패할 때 점검 순서workflow는 green인데 rollout, promotion, health check 단계에서만 실패하는 상황CI/CD2분 읽기
추천 문제
검수된 문제를 먼저, 그다음 시나리오가 자세한 문제를 보여 줍니다.
CICD-002latest 태그로만 배포해 와서 장애가 났는데 롤백할 이미지를 모름프로덕션 배포 파이프라인이 오래전부터 이미지를 항상 api:latest 로 push하고, 쿠버네티스는 imagePullPolicy Always로 그 태그를 받아 왔습니다.검수CI/CD고급25분ProCICD-009브랜치 배포는 되는데 태그 릴리스에서만 배포 토큰이 비어 실패운영 배포는 두 가지 방식으로 합니다.검수CI/CD중급21분무료레지스트리 로그인은 성공했는데 docker push가 denied새 서비스의 GitHub Actions 워크플로를 다른 저장소에서 복사해 만들었습니다.검수CI/CD입문14분무료CICD-015병렬 배포 중 staging 캐시가 production에도 섞여 들어가는 문제환경 구분 없이 공유된 캐시 키 때문에 staging 결과가 production에 영향을 주는 사고를 다룹니다.CI/CD중급20분ProCICD-018pull request 이벤트에서만 테스트가 빠지는 경로 필터 오작동 문제변경 파일 경로 필터가 잘못되어 가장 중요한 PR 테스트가 누락되는 문제를 다룹니다.CI/CD입문16분무료CICD-020package registry rate limit 때문에 야간 빌드만 실패하는 문제낮에는 괜찮지만 특정 시간대 병렬 빌드가 몰리며 외부 패키지 레지스트리 제한에 걸리는 상황입니다.CI/CD중급22분Pro
모든 문제 17개
CICD-009브랜치 배포는 되는데 태그 릴리스에서만 배포 토큰이 비어 실패운영 배포는 두 가지 방식으로 합니다.검수CI/CD중급21분무료레지스트리 로그인은 성공했는데 docker push가 denied새 서비스의 GitHub Actions 워크플로를 다른 저장소에서 복사해 만들었습니다.검수CI/CD입문14분무료CICD-018pull request 이벤트에서만 테스트가 빠지는 경로 필터 오작동 문제변경 파일 경로 필터가 잘못되어 가장 중요한 PR 테스트가 누락되는 문제를 다룹니다.CI/CD입문16분무료CICD-030shallow clone runner에서 릴리스 노트 생성이 실패changelog 단계가 전체 git 이력에 의존하는데 shallow 체크아웃 설정이 필요한 태그와 커밋을 가립니다.CI/CD중급18분무료CICD-034워크플로 저장소는 신뢰되는데도 사설 GHCR 패키지 설치가 실패빌드가 GitHub에는 인증하는데 의존성 복원이 실패합니다 — 그 패키지가 별도 접근 통제를 가진 다른 사설 저장소에 있습니다.CI/CD중급19분무료CICD-002latest 태그로만 배포해 와서 장애가 났는데 롤백할 이미지를 모름프로덕션 배포 파이프라인이 오래전부터 이미지를 항상 api:latest 로 push하고, 쿠버네티스는 imagePullPolicy Always로 그 태그를 받아 왔습니다.검수CI/CD고급25분ProCICD-015병렬 배포 중 staging 캐시가 production에도 섞여 들어가는 문제환경 구분 없이 공유된 캐시 키 때문에 staging 결과가 production에 영향을 주는 사고를 다룹니다.CI/CD중급20분ProCICD-020package registry rate limit 때문에 야간 빌드만 실패하는 문제낮에는 괜찮지만 특정 시간대 병렬 빌드가 몰리며 외부 패키지 레지스트리 제한에 걸리는 상황입니다.CI/CD중급22분ProCICD-026승격 파이프라인이 이전 커밋의 오래된 이미지를 배포승격 단계가 쓰는 artifact 참조는 맞아 보이는데 레지스트리 정리 후 더 오래된 이미지 digest로 해석됩니다.CI/CD고급29분ProCICD-039ECR 라이프사이클 정리가 승격 manifest가 아직 참조하는 digest를 삭제운영 승격 manifest는 불변 digest를 가리키는데 지연된 배포 구간이 시작되기 전에 레지스트리 정리가 유일한 사본을 지웁니다.CI/CD중급22분ProCICD-054임시 runner 디스크가 레이어 export 중 가득 차 Buildx multi-arch 파이프라인이 실패이미지는 한 아키텍처에서는 잘 빌드되는데 임시 레이어와 캐시 export가 runner 디스크 예산을 넘으면 전체 배포 단계가 실패합니다.CI/CD고급26분ProCICD-059아티팩트 attestation은 있는데 배포 게이트가 엉뚱한 저장소 subject를 검증공급망 검증은 켜져 있는데 신뢰된 아티팩트가 거부됩니다 — admission이나 배포 게이트가 builder가 실제로 서명하는 것과 다른 저장소 신원을 기대합니다.CI/CD고급28분ProCICD-003검증 없는 프로덕션 배포 파이프라인에 승인 단계 추가하기환경별 배포 경계를 두고 승인 플로우와 스테이징 검증 절차를 설계하는 템플릿형 문제입니다.CI/CD입문15분ProCICD-053OCI Helm 차트 게시는 성공하는데 클러스터가 계속 직전 차트를 pull레지스트리는 새 chart artifact를 받는데 배포 job이 계속 이전 digest로 해석합니다 — chart 참조와 버전 올림이 함께 갱신되지 않았습니다.CI/CD중급20분ProCICD-017서명되지 않은 이미지가 섞여 배포 승인 정책에 막히는 문제보안 정책은 올바르지만 이미지 서명 체계가 누락되어 특정 서비스만 릴리스가 막히는 상황입니다.CI/CD중급21분ProCICD-055패키지 저장소가 바뀐 뒤에도 CodeBuild 로컬 캐시가 오래된 base 레이어를 재사용빌드 시간은 좋아 보이는데 만들어진 이미지가 조용히 더 오래된 패키지 baseline을 지닙니다 — 저장소 쪽 base 이미지 갱신에도 로컬 Docker 레이어 캐시가 살아남습니다.CI/CD중급21분ProCICD-022canary 배포는 health check를 통과하는데 백그라운드 작업이 실패웹 프로세스는 정상으로 보이는데 worker 이미지가 뒤처져 호환되지 않는 payload를 처리하기 시작합니다.CI/CD중급24분Pro