Infrastructure/Nomad
[Nomad] HashiCorp Nomad 오케스트레이션 이슈 정리
Potato_H
2024. 12. 16. 17:56
반응형
nomad job 스크립트 자동 재시작 기능 (restart policy)
Nomad는 작업이 죽었을 때 자동으로 재시작하거나 재배치를 시도할 수 있음
하지만 불필요하게 반복 재시작되면서 리소스를 과도하게 점유 할 수도 있음
restart {
attempts = 3 # 최대 재시도 횟수
interval = "5m" # 이 시간 내에 실패 횟수 초과하면 중단
delay = "15s" # 재시작 간격 둠
mode = "delay" # 즉시 중단
}
nomad job 스크립트 리소스 과소/과다 할당
Nomad는 작업이 죽었을 때 자동으로 재시작하거나 재배치를 시도할 수 있음
하지만 불필요하게 반복 재시작되면서 리소스를 과도하게 점유 할 수도 있음
resources {
cpu = 500 # MHz
memory = 256 # MB
}
서비스가 systemd와 겹쳐 충돌
Nomad로 실행 중인 서비스가 systemd에서 이미 돌아가고 있었음
sudo systemctl stop kong
sudo systemctl disable kong
# 모든 systemctl 서비스 종료 후 nomad에서 관리하도록 전환
Nomad 작업 로그 및 배포 상태 확인
에러의 원인들을 찾기 위해 작업이 정상적으로 할당되고 실행되었는지 확인이 필요
nomad alloc status {할당된id}
nomad logs {할당된id}
# stdout,stderr 로그를 통해 디버깅
Nomad 작업 실행 시 config 파일 반영이 안되는 문제
작업 실행 시 config 파일 경로를 상대 경로로 적거나, 잘못된 위치에 둠
config {
command = "/usr/bin/python3"
args = ["main.py", "--config", "/etc/servicename/config.conf"] # config 파일은 절대 경로로 명시
}
Nomad 실행 오류 (raw_exec 권한 문제)
Nomad 작업에서 실행할 바이너리의 경로가 잘못되었거나 실행 권한이 없었음
chmod +x 옵션으로 실행 권한 부여
반응형