IT InfraTree 가이드

CI/CD 체크리스트

GitHub Actions 성공 후 rollout만 실패하는 경우

빌드 로그는 정상인데 배포 대상 cluster나 runtime에서만 장애가 드러나는 상황에서 먼저 볼 신호, CLI 확인 순서, 흔한 오진, 안전한 복구 방향을 정리한 InfraTree 가이드입니다.

Actions가 초록불인데 배포가 반영되지 않았다면, “CI 성공 ≠ 배포 성공”이다

워크플로가 성공으로 끝났다는 건 스텝이 0으로 종료했다는 뜻일 뿐, 새 버전이 실제로 떠서 트래픽을 받는다는 뜻이 아니다. 초록불과 실제 상태가 어긋나는 지점은 대개 셋 중 하나다.

1) 배포 스텝이 apply만 하고 결과를 기다리지 않는다

kubectl apply는 “요청을 접수했다”에서 0으로 끝난다. 새 ReplicaSet이 기동에 실패해도 워크플로는 성공이다. 배포 스텝은 반드시 rollout이 끝날 때까지 대기하는 게이트를 둬야 한다.

kubectl apply -f k8s/
kubectl rollout status deploy/<name> -n <ns> --timeout=120s   # 실패하면 여기서 비-0 종료

2) 이미지 태그가 새 빌드를 가리키지 않는다

CI가 커밋 SHA로 이미지를 빌드·푸시했는데 매니페스트는 여전히 :latest나 이전 태그를 참조하면, 클러스터 입장에선 바뀐 게 없다. 게다가 같은 태그를 재사용하고 imagePullPolicy: IfNotPresent면 노드가 캐시된 옛 이미지를 그대로 쓴다. 태그는 불변(커밋 SHA 또는 digest)으로 두는 게 안전하다.

kubectl get deploy <name> -n <ns> -o jsonpath='{.spec.template.spec.containers[0].image}'

3) context/namespace가 의도와 다르다

러너의 kubeconfig context가 스테이징을 가리키는데 프로덕션을 의도했다면, 배포는 “성공”하지만 엉뚱한 클러스터에 반영된다. 배포 스텝 앞에 kubectl config current-context와 대상 namespace를 명시적으로 출력·고정한다.

어긋남을 사후에 확인하는 법

kubectl rollout history deploy/<name> -n <ns>
kubectl describe deploy <name> -n <ns> | sed -n '/Conditions/,/Events/p'

Conditions의 Progressing / Available과 이미지 값만 봐도 “CI는 왜 성공했는데 반영이 안 됐는지”가 대부분 드러난다. 근본 해결은 불변 태그 + rollout status 게이트 + context 고정 세 가지다.

빠른 진단 체크리스트

  • CI 성공은 스텝 종료일 뿐, 배포 성공이 아님을 전제한다
  • 배포 스텝에 kubectl rollout status --timeout 게이트를 둔다
  • 매니페스트 이미지 태그가 새 빌드를 가리키는지 확인한다
  • 가변 태그 재사용 + IfNotPresent로 옛 이미지가 캐시되는지 본다
  • 이미지는 커밋 SHA·digest로 불변 고정한다
  • kubeconfig context·namespace가 의도와 같은지 출력·고정한다
  • rollout history·describe의 Conditions로 사후 확인한다
  • progressDeadline 초과로 멈췄는지·자동 롤백됐는지 본다

연결 허브

같이 보면 좋은 허브

관련 topic, symptom, vendor, certification 허브로 바로 이동할 수 있습니다.

ci-cd-workflow-debugging

ci-cd-workflow-debugging landing page grouping CI/CD troubleshooting searches around Workflow Reference Drift, ci-cd-workflow-debugging, Permission Denied.

Rollout Stuck

Rollout troubleshooting landing page focused on unhealthy promotions, pending rollout state, blocked approval flow, and release steps that look green until the final h...

GitHub

GitHub troubleshooting landing page focused on Actions workflows, runner behavior, artifact handling, and release-path failures.

AWS DevOps Engineer Professional

AWS DevOps Engineer Professional landing page focused on build and deploy failures, rollback-safe release design, GitHub Actions and pipeline drift, and exam-style Dev...

연결 가이드

같은 흐름의 가이드를 이어서 보기

같은 검색 의도에 가까운 다른 가이드를 묶어 보여줍니다.

대표 문제

이 가이드와 맞는 문제

가이드에서 읽은 점검 순서를 실제 문제로 연습할 수 있습니다.

다음 단계

가이드 다음으로 이어볼 흐름

허브, 대표 문제, 학습 허브 순서로 검색 흐름을 실제 연습으로 이어보세요.

FAQ

자주 묻는 질문

가이드 적용 전 확인하면 좋은 질문입니다.

GitHub Actions 성공 후 rollout만 실패하는 경우에서 가장 먼저 확인할 것은 무엇인가요?

마지막 오류 메시지보다 같은 실패가 반복되는 경계와 최근 변경 내역을 먼저 확인해야 합니다.

기술 용어와 명령어는 번역해야 하나요?

아니요. Kubernetes, Pod, systemd, npm ci, package.json 같은 기술 용어와 명령어는 원문 그대로 두고 설명 문장만 한국어로 정리합니다.

바로 복구 조치를 해도 되나요?

영향 범위와 원인 후보가 좁혀지기 전에는 전체 재시작이나 정책 완화처럼 되돌리기 어려운 조치를 피하는 것이 안전합니다.