Nomad 2.0.x 릴리스 노트
Nomad 2.0.x 릴리스 노트 (Nomad 2.0.x Release Notes)
다음과 같은 Nomad 업데이트를 발표하게 되어 기쁘게 생각해요.
출처: 문서
본문
Nomad 버전 지원 (Nomad version support)
2026년 4월부터 HashiCorp의 자체 관리(self-managed) 제품은 새로운 버전·릴리스·지원 모델을 채택해요. Nomad는 계속해서 봄과 가을 기능 릴리스를 목표로 하며, 필요에 따라 월간 업데이트를 제공해요. 이러한 변경은 IBM의 기업 소프트웨어 수명주기와 일치하여 IBM 소프트웨어 포트폴리오 전반에 걸쳐 일관된 지원을 보장해요.
| 버전 | 기본 지원 종료 (Base Support End) | 확장 지원 종료 (Extended Support End) | 지속 확장 지원 종료 (Ongoing Extended Support End) |
|---|---|---|---|
| 1.8.x (LTS) | 2026년 4월 30일 | 2026년 4월 30일 | 2026년 4월 30일 |
| 1.10.x (LTS) | 2027년 4월 30일 | 2027년 4월 30일 | 2027년 4월 30일 |
| 1.11.x | 2026년 10월 31일 | 2026년 10월 31일 | 2026년 10월 31일 |
| 2.0.x | 2028년 4월 30일 | 2029년 4월 30일 | 2032년 4월 30일 |
확장 지원(Extended Support)과 지속 확장 지원(Ongoing Extended Support)은 Enterprise 고객이 이용할 수 있는 선택적 유료 지원 패키지라는 점에 유의해요.
2.0.0 릴리스부터 HashiCorp Nomad의 기존 의미론적 버저닝(semantic versioning) 형식(X.Y.Z)은 IBM의 Version-Modification-Fix(V.M.F) 모델로 전환돼요. 이 매핑은 제품 전반에 걸쳐 수명주기 시점을 명확하고 일관되게 만드는 데 도움을 줘요.
- 4월 ("V" 마일스톤): 해당 버전에 대한 새 지원 수명주기를 시작해요.
- 10월 ("M" 마일스톤): 새 기능을 추가하지만 새 지원 수명주기는 시작하지 않아요.
- 매월 ("F" 수정): 패치 릴리스예요.
추가 세부 사항은 다음을 참고해요:
- IBM HashiCorp Self-Managed Product Support Lifecycle Addendum
- Changes to HashiCorp Self-Managed Enterprise Product Release Cadence and Support
- 2025년 3월 이전에 출시된 제품에 대한 HashiCorp 장기 지원(LTS) 릴리스. Nomad v1.10.x가 마지막 LTS 릴리스예요.
- IBM Software Support Lifecycle Policies
2.0.7 릴리스 하이라이트
릴리스 날짜: 2026년 9월 17일
페더레이션 리전 안정성 개선
페더레이션된 Nomad 클러스터에 영향을 줄 수 있는 몇 가지 버그를 수정했어요. 잘못된 복제 토큰이 페더레이션 팔로워 리전에서 네임스페이스나 노드 풀을 삭제할 수 있었고, 네임스페이스나 노드 풀이 페더레이션된 리전 간에 완전히 복제를 중단할 수 있었어요. 또한 Nomad가 노드 등록 중 노드 풀을 자동으로 추가한 후 차단 쿼리(blocking query)가 차단 해제되지 않는 버그도 수정했어요.
클라이언트 노드 아이덴티티 재생성
Nomad 클라이언트는 이제 만료된 노드 아이덴티티를 올바르게 재생성하려고 시도해요. 자세한 내용은 클라이언트 노드 아이덴티티 개념을 참고해요.
Nomad 네이티브 서비스를 위한 기본 워크로드 아이덴티티 정책
기본 워크로드 아이덴티티 정책은 이제 Nomad 네이티브 서비스에 대한 와일드카드 네임스페이스 쿼리를 허용해요.
접근성
일부 Enterprise 고객에게 영향을 주던 UI 접근성 색상 대비 문제를 수정했어요.
Changelog
개선 사항, 보안·버그 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.6 릴리스 하이라이트
릴리스 날짜: 2026년 9월 9일
HTTP 비활성화 서버 구성
HTTP/2 사용을 제어하고 WebSocket 업그레이드에 대한 origin 검사를 비활성화할 수 있는 새 구성 옵션을 추가했어요. 자세한 내용은 Nomad 에이전트 구성 일반 파라미터 문서를 참고해요.
재스케줄 지연을 1초까지 낮게 설정
어떤 상황에서는 작업 재스케줄 delay 파라미터 값을 기존 최솟값 5초보다 낮게 설정하고 싶을 수 있어요. 이 변경은 허용되는 최솟값을 1초로 업데이트해요.
무제한 시도와 함께 5초 미만의 값을 사용하면, Nomad는 할당에 근본적인 문제가 있고 어떤 Nomad 클라이언트에 위치하든 시작할 수 없는 상황에서 잠재적 스케줄링 쓰레싱(thrashing)을 알리기 위해 클라이언트에 경고를 반환해요.
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.5 릴리스 하이라이트
릴리스 날짜: 2026년 8월 11일
plan_apply_pipeline 서버 구성
plan_apply_pipeline 서버 구성 파라미터로 리더가 계획을 평가할 때 허용하는 미해결 계획(outstanding plans) 수를 지정해요. 자세한 내용은 plan_apply_pipeline 파라미터를 참고해요.
Nomad 서버 FIPS 140-3 컴플라이언스 (Enterprise)
fips1403 기능 이름으로 표시된 Nomad Enterprise 빌드는 FIPS 140-3 컴플라이언스에 대한 내장 지원을 포함해요. FIPS-140-3 컴플라이언스에 대한 특별한 필요가 없는 환경에서는 이러한 Nomad Enterprise 변형을 실행하지 않아야 해요. 자세한 내용은 FIPS 140-3 컴플라이언트 Nomad 서버 배포를 참고해요.
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.4 릴리스 하이라이트
릴리스 날짜: 2026년 7월 7일
태스크 드라이버 플러그인의 선택적 Init 및 Shutdown 함수
태스크 드라이버 플러그인은 이제 선택적 Init 및 Shutdown 함수를 지원해요. Nomad는 SetConfig 이후 Init을 호출하여 드라이버가 요청을 받기 전에 설정을 수행하도록 해요. Nomad가 드라이버를 종료할 때는 드라이버 프로세스가 종료되기 전에 정리를 수행하도록 Shutdown을 호출해요.
자세한 내용은 태스크 드라이버 플러그인 API 문서를 참고해요.
워크로드 아이덴티티가 없는 워크로드를 위한 Consul 토큰 폴백
Consul에 대해 워크로드 아이덴티티가 구성되지 않은 할당은 service 블록, template 블록, Consul 서비스 메시에 대해 Nomad 클라이언트 에이전트 자체의 Consul 토큰을 사용하도록 폴백해요.
template 블록의 경우, 워크로드 아이덴티티가 구성되지 않았을 때 태스크 템플릿이 Nomad 클라이언트 에이전트의 Consul 토큰을 사용하도록 허용하려면 클라이언트 template 블록 구성에서 use_client_consul_token = true로 설정해요.
자세한 내용은 워크로드 아이덴티티가 없는 Consul을 참고해요.
change_script 블록의 새 run_on_first_render 파라미터
change_script 블록의 run_on_first_render 파라미터는 초기 템플릿 렌더링 이후에 구성된 스크립트가 실행될지, 그리고 이후 템플릿 변경 시에도 실행될지를 제어해요. 초기 렌더링 이후 스크립트를 실행하려면 run_on_first_render = true로 설정해요.
자세한 내용은 change_script 블록 문서를 참고해요.
서버 조인 지원 중단
인증 없이 server join 명령이나 Join Agent API를 사용하는 것은 지원 중단됐어요. Nomad 2.1.0부터는 agent:write 권한이 있는 토큰을 사용해야 해요.
Nomad 2.1.0에서 다음 서버 구성 파라미터를 제거할 예정이에요.
대신 server.server_join을 사용해요.
자세한 내용은 Nomad 2.0.4 업그레이드 전용 문서를 참고해요.
Docker 태스크 드라이버 allowed_modes 구성 파라미터
allowed_modes 구성 파라미터는 pid, ipc, userns, uts 컨테이너 네임스페이스에 대한 허용 목록을 활성화해요. 자세한 내용은 Docker 태스크 드라이버 allowed_modes 파라미터 문서를 참고해요.
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.3 릴리스 하이라이트
릴리스 날짜: 2026년 6월 9일
작업 명세 그룹에 새 max_run_duration 필드 추가
배치(batch) 및 시스템 배치 작업의 경우 max_run_duration은 그룹 내 할당의 최대 실행 시간을 정의해요. 자세한 내용은 max_run_duration 파라미터 문서를 참고해요.
또한 nomad.client.allocs.max_run_duration.configured_seconds 및 nomad.client.allocs.max_run_duration.remaining_seconds 메트릭을 추가했어요. 자세한 내용은 할당 메트릭 참조 문서를 참고해요.
nomad acl token create 명령으로 사용자 지정 토큰 추가
nomad acl token create 명령은 이제 ACL 토큰 생성 시 사용자 지정 토큰 값을 지정하는 -token 플래그를 지원해요. 자세한 내용은 nomad acl token create 명령 참조를 참고해요.
클라이언트 초기화 시 노드를 ineligible로 표시
default_ineligible 클라이언트 구성 파라미터로 클라이언트 초기화 시 노드를 ineligible(부적격)로 표시해요. 자세한 내용은 default_ineligible 파라미터 문서를 참고해요.
API로 에이전트 구성 리로드 트리거
PUT /v1/agent/reload API 엔드포인트는 에이전트 구성의 리로드를 트리거해요. 자세한 내용은 Agent reload API 엔드포인트 참조 문서를 참고해요.
워크로드 아이덴티티 추가 클레임
네임스페이스 구성에 따라 워크로드 아이덴티티에 추가 클레임을 추가할 수 있어요. 자세한 내용은 다음을 참고해요:
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.2 릴리스 하이라이트
릴리스 날짜: 2026년 5월 22일
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.1 릴리스 하이라이트
릴리스 날짜: 2026년 5월 12일
중요 보안 업데이트
이 릴리스에는 두 가지 중요 보안 업데이트가 포함돼 있어요.
- Logmon 설정은 이제 태스크가 logmon FIFO를 심볼릭 링크로 교체하여 호스트의 임의 파일을 읽는 것을 방지해요. 이 취약점은 CVE-2026-6959예요.
- 동적 호스트 볼륨 생성은 모든 코드 경로에서 플러그인 ID가 유효한 플러그인인지 검증하여, 승인된 사용자가 마치 플러그인인 것처럼 호스트에서 임의의 실행 파일을 실행하는 것을 방지해요. 이 취약점은 CVE-2026-7474예요.
주요 변경 사항 (Breaking changes)
docker와 같이 파일시스템 격리를 지원하는 태스크 드라이버는 이제 할당 로그 디렉터리가 읽기 전용으로 바인드 마운트돼요.
아웃바운드 RPC 연결 시간 초과 파라미터
dial_timeout 에이전트 구성 파라미터는 피어 에이전트에 대한 새 아웃바운드 RPC 연결을 설정하는 데 허용되는 최대 시간을 제어해요.
노드 한도 스케줄러 파라미터
배치 무작위화를 높이고 스케줄러 경합을 줄이려면 NodeLimitForFeasibilityChecks 스케줄러 구성 옵션을 설정해요. 자세한 내용은 다음 문서를 참고해요:
- 작업 스케줄링 성능
- 작업 명세 affinity 및 spread 구성 파라미터
- Scheduler Operator HTTP API
NodeLimitForFeasibilityChecks파라미터 nomad operator scheduler get-config명령 참조nomad operator scheduler set-config명령 참조
종료 지연이 구성되지 않은 작업 서비스에 대한 경고
Nomad는 서비스가 정의되었지만 태스크 수준의 어떤 서비스에도 shutdown_delay가 설정되지 않은 작업이 제출되면 경고를 발행해요.
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.
2.0.0 릴리스 하이라이트
릴리스 날짜: 2026년 4월 21일
Raft 로그 저장소를 Write-Ahead Log(WAL) 백엔드로 마이그레이션하는 명령
nomad operator raft migrate-backend 명령은 Raft 로그 저장소를 BoltDB 백엔드에서 Write-Ahead Log(WAL) 백엔드로 마이그레이션해요. BoltDB와 비교해 WAL 백엔드는 쓰기 중심 워크로드에 대해 더 나은 성능 특성을 제공해요. 그러나 일단 WAL로 마이그레이션하면 BoltDB로 되돌리려면 마이그레이션 전에 찍은 스냅샷에서 복원해야 해요.
다음을 추가했어요:
nomad operator raft migrate-backend명령 참조/v1/agent/selfAPI 엔드포인트 응답에 Raft 로그 저장소 세부 사항- 서버 구성에
raft_logstore파라미터 - Raft 로그 저장소 메트릭에 WAL 백엔드 메트릭
서버 구성의 raft_boltdb 파라미터를 지원 중단했어요.
IBM Passport Advantage Online(PAO) 사용을 위한 라이선스·구성 변경 (Enterprise)
기존 Nomad 라이선스 및 보고 기능을 확장하여 IBM PAO 라이선스의 파싱과 보고를 지원했어요.
Nomad 2.0에서 라이선스 로그와 오류 출력을 변경했어요. 스크립트가 오류 출력 텍스트에 의존하는 경우 스크립트화된 업그레이드에 영향을 줄 수 있어요.
| 유형 | 이전 출력 | 새 출력 |
|---|---|---|
| 오류 | "invalid license config: %w" |
"invalid license data: %w" |
| 오류 | "error initializing licensing validator: %w" |
(제거됨 — 함수 삭제) |
| 오류 | "failed to initialize nomad license: %w" |
"failed to set nomad license: %w" |
| 오류 | (없음 — 오류가 그대로 반환됨) | "failed to set nomad license: %w" |
| 오류 | "error validating license: %w" |
(제거됨) |
| 로그 (오류) | "failed to persist license" |
(제거됨) |
| 오류 | "failed to retrieve license: %w" |
(제거됨) |
| 오류 | "failed to convert license: %w" |
(제거됨) |
| 로그 (오류) | "license expired, please update license" (ErrorCh에서) |
"license is inactive, please update license" (ErrorCh에서) |
| 로그 (오류) | (없음) | "license expired, please update license" (이제 WarningCh에서) |
| 로그 (경고) | "license expiring" with time.Until(warnLicense.ExpirationTime).Truncate(time.Second) |
"license expiring" with status.TimeToExpire.String() (이제 StatusCh에서) |
| 오류 | "could not create reporting bundle: no snapshots" |
"no snapshots" |
Changelog
개선 사항, 보안 수정, 주요 변경 사항은 changelog에서 검토해요.