작업에서 Raw Fork/Exec 태스크 드라이버 사용하기
작업에서 Raw Fork/Exec 태스크 드라이버 사용하기 (Use the Raw Fork/Exec task driver in a job)
이름: raw_exec
raw_exec 드라이버는 격리 없이 태스크에 명령을 실행하는 데 사용돼요. 또한 태스크는 Nomad 프로세스와 같은 사용자로 시작돼요. 따라서 매우 주의해서 사용해야 하며 기본적으로 비활성화되어 있어요.
기능, 클라이언트 요구 사항, 플러그인 구성은 Raw Fork/Exec 태스크 드라이버 구성을 참조하세요.
출처: 문서
본문
작업 구성 (Task configuration)
task "webservice" {
driver = "raw_exec"
config {
command = "my-binary"
args = ["-flag", "1"]
}
}
raw_exec 드라이버는 작업 명세에서 다음 구성을 지원해요:
-
command— 실행할 명령. 반드시 제공해야 해요. 호스트에 존재하는 바이너리를 실행한다면 경로는 절대 경로여야 해요.artifact에서 다운로드한 바이너리를 실행한다면, 경로는 할당의 루트 디렉토리에서 상대 경로일 수 있어요. -
args— (선택)command에 대한 인수 목록. 환경 변수 또는 해석 가능한 Nomad 변수에 대한 참조는 태스크 실행 전에 해석돼요. -
cgroup_v1_override— (선택) 컨트롤러 이름에서 경로로의 맵. 태스크는 이 cgroup에 추가돼요. 이 cgroup이 존재하지 않으면 태스크는 실패해요. 경고: 다른 Nomad 드라이버의 cgroup과 충돌해 의도하지 않은 부작용이 있을 수 있어요. -
cgroup_v2_override— (선택) 태스크를 통합 cgroup 경로에 추가해요. 경로는 cgroupfs 루트에 상대적이거나 절대적일 수 있어요. 경고: 다른 Nomad 드라이버의 cgroup과 충돌해 의도하지 않은 부작용이 있을 수 있어요.
Linux에서 프로덕션 가이드에 따라 Nomad 클라이언트를 강화했다면 raw_exec 드라이버를 사용하는 태스크에 task.user 필드를 설정할 수 없어요. Windows에서 Nomad가 시스템 서비스로 실행 중이라면 덜 권한이 있는 서비스 사용자를 지정할 수 있어요. 예를 들어 NT AUTHORITY\LocalService, NT AUTHORITY\NetworkService처럼요.
-
oom_score_adj— (선택) 태스크가 OOM 킬되기 쉬운 정도를 나타내는 양의 정수(Linux에서만 유효). 기본값은 0이에요. -
work_dir— (선택) 태스크에 대한 사용자 지정 작업 디렉토리를 설정해요. 이 경로는 절대 경로여야 해요.nomad alloc exec를 사용할 때도 작업 디렉토리가 바뀌어요. -
denied_envvars— (선택) 드라이버가 태스크 환경에서 지워야 하는 환경 변수 목록을 전달해요. "*" 와일드카드를 접두사 및/또는 접미사로 허용하는 globbing을 지원해요.
예제 (Examples)
노드에 존재하는 바이너리를 실행하려면:
task "example" {
driver = "raw_exec"
config {
# When running a binary that exists on the host, the path must be absolute/
command = "/bin/sleep"
args = ["1"]
}
}
artifact에서 다운로드한 바이너리를 실행하려면:
task "example" {
driver = "raw_exec"
config {
command = "name-of-my-binary"
}
artifact {
source = "https://internal.file.server/name-of-my-binary"
options {
checksum = "sha256:abd123445ds4555555555"
}
}
}