피드로 돌아가기
Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States
Dev.toDev.to
Infrastructure

Docker Swarm Pending 상태 해결을 통한 클러스터 스케줄링 최적화

Docker Swarm Auto-healing: A Guide to Troubleshooting 'Pending' States

eldara2026년 4월 12일3intermediate

Context

리소스 집약적인 AI sidecar 및 고밀도 Edge Cluster 도입으로 인한 스케줄링 복잡도 증가. 표준 로그에 기록되지 않는 Pending 상태로 인해 병목 지점 파악 및 장애 복구 지연 발생.

Technical Solution

  • Resource Reservation 설정을 통한 하드웨어 가용 자원과 서비스 요구 사양 간의 불일치 해결
  • Placement Constraints 설정을 통한 특정 하드웨어(SSD, GPU) 기반의 노드 타겟팅 정밀화
  • Multi-Arch 환경에서 x86 및 ARM 노드 간 Volume/Network 동기화 상태 검증을 통한 배포 경로 확보
  • Node Health 및 Drain Mode 상태 확인을 통한 유효 스케줄링 대상 노드 필터링
  • SwarmCLI analyze 명령어를 통한 서비스 요구사항과 노드 상태 간의 자동 비교 분석 로직 적용

- `docker service ps --no-trunc` 명령어를 통한 Resource Insufficient 메시지 확인 - `docker node inspect`를 통한 Node Label과 Compose 파일의 Constraint 일치 여부 검토 - `docker inspect <task_id>`의 Status 및 Message 필드에서 상세 스케줄링 실패 원인 분석 - 30초 이상 Pending 지속 시 Node Health(Ready/Active) 상태 우선 점검

원문 읽기