잡 스펙의 `volume_mount` 블록

잡 스펙의 volume_mount 블록

volume_mount 블록은 태스크가 그룹 volume을 태스크에 어떻게 마운트해야 하는지 지정할 수 있게 해요.

출처: 문서

본문

배치 job -> group -> task -> **volume_mount**
job "docs" {
  group "example" {
    volume "certs" {
      type = "host"
      read_only = true
      source = "ca-certificates"
    }

    task "example" {
      volume_mount {
        volume      = "certs"
        destination = "/etc/ssl/certs"
        propagation_mode = "private"
      }
    }
  }
}

Nomad 클라이언트는 이 구성에 따라 볼륨을 태스크에 사용할 수 있게 하며, 클라이언트 구성이 그것이 의존하는 볼륨을 제거하도록 업데이트되면 할당을 실패시킬 거예요.

매개변수 (Parameters)

  • volume (string: "") - 마운트가 접근할 그룹 볼륨을 지정.

  • destination (string: "") - 볼륨이 태스크의 할당 안에서 마운트되어야 하는 위치를 지정.

  • read_only (bool: false) - 그룹 볼륨이 쓰기 가능할 때, 여기의 read_only 옵션을 사용해 마운트별로 read_only로 지정할 수 있어요.

  • propagation_mode (string: "private") - 중첩 볼륨의 마운트 전파 모드를 지정. 가능한 값:

    • private - 태스크가 중첩 마운트에 접근할 수 없음.
    • host-to-task - 태스크 밖에서 만들어진 새 마운트가 태스크 안에서 보일 수 있게 허용.
    • bidirectional - 태스크가 호스트의 새 마운트에 접근하고 새 마운트를 만들 수 있게 허용. 이 모드는 ReadWrite 권한이 필요해요.

경고: bidirectional 전파 모드는 태스크가 마운트를 만들고 종료 전에 제대로 정리하지 않으면 호스트 운영체제에 문제를 일으킬 수 있어 위험할 수 있어요.

  • selinux_label``(string: "") - 마운트의 SELinux 레이블을 지정. 이것은 Linux 호스트에서만, 그리고 태스크 드라이버가 지원할 때만 지원돼요. 자세한 내용은 태스크 드라이버 문서를 참고하세요. 가능한 값:

    • Z - 볼륨 내용이 컨테이너 간에 비공개이고 공유되지 않음을 지정.
    • z - 볼륨 내용이 컨테이너 간에 공유됨을 지정.

볼륨을 세밀하게 제어하기 위한 HCL2 보간 사용 예시는 Volume Interpolation을 참고하세요.

더 알아보기 (Learn more)