문제 해결
Deployflow 서비스 사용 중 발생할 수 있는 주요 문제와 해결 방법을 안내합니다.
Pod가 Pending 상태로 멈춤
Deployflow로 동기화한 뒤 Pod가 Pending 상태이고, 애플리케이션의 상태가 Missing으로 표시될 수 있습니다.
대상 클러스터에 워커 노드가 없으면 Pod를 스케줄할 수 없습니다. 이 경우 이벤트에 no nodes available to schedule pods 메시지가 표시될 수 있습니다.
▶️ 해결 방법: Kubernetes Engine에서 노드 풀을 생성하거나 기존 노드 풀의 노드 수를 1대 이상으로 설정한 뒤, Pod가 다시 스케줄되는지 확인하세요.
ImagePullBackOff 발생
Deployflow로 배포한 Pod에서 ImagePullBackOff가 발생할 수 있습니다.
프라이빗 Container Registry 이미지를 사용하는 경우, 대상 네임스페이스에 이미지 Pull 시크릿이 없거나 Deployment에 imagePullSecrets가 지정되어 있지 않으면 이미지를 가져올 수 없습니다.
▶️ 해결 방법: Pod가 배포되는 네임스페이스에 이미지 Pull 시크릿을 생성하고, Deployment의 imagePullSecrets에 해당 시크릿 이름을 지정하세요.
애플리케이션 생성 버튼 비활성화
애플리케이션 생성 화면에서 [생성] 버튼이 비활성화될 수 있습니다.
애플리케이션 생성에 필요한 필수 항목이 누락되면 [생성] 버튼이 활성화되지 않습니다.
▶️ 해결 방법: 애플리케이션 이름, 배포 클러스터, 네임스페이스, 소스 리포지토리, 소스 브랜치, 배포 방식, 배포 경로를 모두 입력했는지 확인하세요.
동기화 후 상태가 갱신되지 않음
동기화 후 상태가 바로 갱신되지 않을 수 있습니다.
동기화 작업은 완료되었지만 화면의 상태 조회가 지연될 수 있습니다.
▶️ 해결 방법: [최신화]를 클릭해 상태를 다시 조회하세요. 상태가 계속 비정상으로 표시되면 리소스의 이벤트와 로그 탭에서 실패 원인을 확인하세요.
매니페스트 경로를 찾을 수 없음
Deployflow에서 매니페스트 경로를 찾지 못할 수 있습니다.
배포 경로는 리포지토리 루트 기준 상대 경로로 입력해야 합니다.
▶️ 해결 방법: 배포 경로를 리포지토리 루트 기준 상대 경로로 입력하세요. 예를 들어 매니페스트가 리포지토리의 k8s 디렉터리에 있으면 k8s로 입력합니다.
Blue/Green 트래픽 스위칭 후 화면이 바뀌지 않음
Blue/Green 트래픽 스위칭 후에도 화면이 기존 버전으로 보일 수 있습니다.
트래픽 스위칭이 완료되지 않았거나 브라우저에 기존 응답이 남아 있으면 기존 화면이 계속 보일 수 있습니다.
▶️ 해결 방법: 배포 전략 상태가 Green Active인지 확인한 뒤, 같은 Service URL을 브라우저에서 새로고침하여 다시 접속하세요.
Service의 EXTERNAL-IP가 Pending 상태로 유지됨
배포된 리소스 중 LoadBalancer 타입의 Service가 EXTERNAL-IP를 할당받지 못하고 <pending> 상태로 유지될 수 있습니다.
로드 밸런서 생성이 지연되었거나, 쿼터가 부족하거나, 퍼블릭 IP 설정이 누락되면 EXTERNAL-IP가 <pending> 상태로 유지될 수 있습니다. 이는 Deployflow 자체의 문제가 아니라 대상 클러스터와 연동된 쿠버네티스 엔진(K8sE) 설정 문제일 가능성이 높습니다.
▶️ 해결 방법: 1~2분 정도 대기한 뒤 상태를 다시 확인하세요. 퍼블릭 IP가 필요한 Service라면 openstack-internal-load-balancer: 'false' 설정이 적용되었는지 확인하고, 로드 밸런서 생성 실패 메시지가 있는지 Service 이벤트를 확인하세요. 클러스터 및 노드 상태 등 쿠버네티스 엔진 설정은 Kubernetes Engine 문제 해결 가이드를 참고하여 확인해 주세요.
Green Pod가 CrashLoopBackOff 상태가 됨
Blue/Green 배포에서 Green Pod가 CrashLoopBackOff 상태가 될 수 있습니다.
Green 버전 애플리케이션 오류 또는 환경 변수·시크릿 설정 문제로 Pod가 반복해서 재시작될 수 있습니다.
▶️ 해결 방법: 리소스 상세의 로그와 이벤트 탭에서 실패 원인을 확인하세요. 로컬에서 확인하는 경우 kubectl logs와 kubectl describe pod 명령을 사용할 수 있습니다.