mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
Merge branch 'master' into f-port-configs
This commit is contained in:
@@ -10,5 +10,45 @@ description: |-
|
||||
|
||||
Name: `java`
|
||||
|
||||
TODO
|
||||
The `Java` driver is used to execute Java applications packaged into a Java Jar
|
||||
file. The driver currently requires the Jar file be accessible via
|
||||
HTTP from the Nomad client.
|
||||
|
||||
## Task Configuration
|
||||
|
||||
The `java` driver supports the following configuration in the job spec:
|
||||
|
||||
* `jar_source` - **(Required)** The hosted location of the source Jar file. Must be accessible
|
||||
from the Nomad client, via HTTP
|
||||
|
||||
* `args` - (Optional) The argument list for the `java` command, space separated.
|
||||
|
||||
## Client Requirements
|
||||
|
||||
The `java` driver requires Java to be installed and in your systems `$PATH`.
|
||||
The `jar_source` must be accessible by the node running Nomad. This can be an
|
||||
internal source, private to your cluster, but it must be reachable by the client
|
||||
over HTTP.
|
||||
|
||||
## Client Attributes
|
||||
|
||||
The `java` driver will set the following client attributes:
|
||||
|
||||
* `driver.java` - Set to `1` if Java is found on the host node. Nomad determines
|
||||
this by executing `java -version` on the host and parsing the output
|
||||
* `driver.java.version` - Version of Java, ex: `1.6.0_65`
|
||||
* `driver.java.runtime` - Runtime version, ex: `Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)`
|
||||
* `driver.java.vm` - Virtual Machine information, ex: `Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)`
|
||||
|
||||
## Resource Isolation
|
||||
|
||||
The resource isolation provided varies by the operating system of
|
||||
the client and the configuration.
|
||||
|
||||
On Linux, Nomad will attempt to use cgroups, namespaces, and chroot
|
||||
to isolate the resources of a process. If the Nomad agent is not
|
||||
running as root many of these mechanisms cannot be used.
|
||||
|
||||
As a baseline, the Java jars will be ran inside a Java Virtual Machine,
|
||||
providing a minimum amount of isolation.
|
||||
|
||||
|
||||
@@ -10,5 +10,54 @@ description: |-
|
||||
|
||||
Name: `qemu`
|
||||
|
||||
TODO
|
||||
The `Qemu` driver provides a generic virtual machine runner. Qemu can utilize
|
||||
the KVM kernel module to utilize hardware virtualization features and provide
|
||||
great performance. Currently the `Qemu` driver can map a set of ports from the
|
||||
host machine to the guest virtual machine, and provides configuration for
|
||||
resource allocation.
|
||||
|
||||
The `Qemu` driver can execute any regular `qemu` image (e.g. `qcow`, `img`,
|
||||
`iso`), and is currently invoked with `qemu-system-x86_64`.
|
||||
|
||||
## Task Configuration
|
||||
|
||||
The `Qemu` driver supports the following configuration in the job spec:
|
||||
|
||||
* `image_source` - **(Required)** The hosted location of the source Qemu image. Must be accessible
|
||||
from the Nomad client, via HTTP.
|
||||
* `checksum` - **(Required)** The MD5 checksum of the `qemu` image. If the
|
||||
checksums do not match, the `Qemu` diver will fail to start the image
|
||||
* `accelerator` - (Optional) The type of accelerator to use in the invocation.
|
||||
If the host machine has `Qemu` installed with KVM support, users can specify `kvm` for the `accelerator`. Default is `tcg`
|
||||
* `host_port` - **(Required)** Port on the host machine to forward to the guest
|
||||
VM
|
||||
* `guest_port` - **(Required)** Port on the guest machine that is listening for
|
||||
traffic from the host
|
||||
|
||||
## Client Requirements
|
||||
|
||||
The `Qemu` driver requires Qemu to be installed and in your systems `$PATH`.
|
||||
The `image_source` must be accessible by the node running Nomad. This can be an
|
||||
internal source, private to your cluster, but it must be reachable by the client
|
||||
over HTTP.
|
||||
|
||||
## Client Attributes
|
||||
|
||||
The `Qemu` driver will set the following client attributes:
|
||||
|
||||
* `driver.qemu` - Set to `1` if Qemu is found on the host node. Nomad determines
|
||||
this by executing `qemu-system-x86_64 -version` on the host and parsing the output
|
||||
* `driver.qemu.version` - Version of `qemu-system-x86_64, ex: `2.4.0`
|
||||
|
||||
## Resource Isolation
|
||||
|
||||
The resource isolation provided varies by the operating system of
|
||||
the client and the configuration.
|
||||
|
||||
On Linux, Nomad will attempt to use cgroups, namespaces, and chroot
|
||||
to isolate the resources of a process. If the Nomad agent is not
|
||||
running as root many of these mechanisms cannot be used.
|
||||
|
||||
As a baseline, the Qemu images will be ran inside a virtual machine operated by
|
||||
Qemu, providing a minimum amount of isolation.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user