[ARVADOS] created: 71e1b1d62a71ad052487f5e8ecb8f36ae17ca8e1

git at public.curoverse.com git at public.curoverse.com
Sun Aug 2 10:07:24 EDT 2015


        at  71e1b1d62a71ad052487f5e8ecb8f36ae17ca8e1 (commit)


commit 71e1b1d62a71ad052487f5e8ecb8f36ae17ca8e1
Author: Brett Smith <brett at curoverse.com>
Date:   Sun Aug 2 10:07:16 2015 -0400

    6847: Handle Docker DNS in Docker daemon configuration.
    
    crunch-job currently uses the host's public IP address as a DNS
    resolver for containers.  This requires all compute nodes to run DNS,
    which isn't strictly necessary.  Remove this code, and document how to
    set nameservers in the Docker daemon configuration.

diff --git a/doc/install/install-compute-node.html.textile.liquid b/doc/install/install-compute-node.html.textile.liquid
index 767b8e3..f6ad379 100644
--- a/doc/install/install-compute-node.html.textile.liquid
+++ b/doc/install/install-compute-node.html.textile.liquid
@@ -24,12 +24,30 @@ On Red Hat-based systems:
 
 {% include 'note_python27_sc' %}
 
-h2. Set up Docker
+h2. Install Docker
 
 Compute nodes must have Docker installed to run jobs inside containers.  This requires a relatively recent version of Linux (at least upstream version 3.10, or a distribution version with the appropriate patches backported).  Follow the "Docker Engine installation documentation":https://docs.docker.com/ for your distribution.
 
 For Debian-based systems, the Arvados package repository includes a backported @docker.io@ package with a known-good version you can install.
 
+h2. Configure Docker
+
+Crunch runs jobs in Docker containers with relatively little configuration.  You may need to start the Docker daemon with specific options to make sure these jobs run smoothly in your environment.  This section highlights options that are useful to most installations.  Refer to the "Docker daemon reference":https://docs.docker.com/reference/commandline/daemon/ for complete information about all available options.
+
+The best way to configure these options varies by distribution.
+
+* If you're using our backported @docker.io@ package, you can list these options in the @DOCKER_OPTS@ setting in @/etc/default/docker.io at .
+* If you're using another Debian-based package, you can list these options in the @DOCKER_OPTS@ setting in @/etc/default/docker at .
+* On Red Hat-based distributions, you can list these options in the @other_args@ setting in @/etc/sysconfig/docker at .
+
+h3. Default ulimits
+
+Docker containers inherit ulimits from the Docker daemon.  However, the ulimits for a single Unix daemon may not accommodate a long-running Crunch job.  You may want to increase default limits for compute jobs by passing @--default-ulimit@ options to the Docker daemon.  For example, to allow jobs to open 10,000 files, set @--default-ulimit nofile=10000:10000 at .
+
+h3. DNS
+
+Your containers must be able to resolve the hostname in the ARVADOS_API_HOST environment variable (provided by the Crunch dispatcher) and any hostnames returned in Keep service records.  If these names are not in public DNS records, you may need to set a DNS resolver for the containers by specifying the @--dns@ address with the IP address of an appropriate nameserver.  You may specify this option more than once to use multiple nameservers.
+
 h2. Set up SLURM
 
 Install SLURM following "the same process you used to install the Crunch dispatcher":{{ site.baseurl }}/install/install-crunch-dispatch.html#slurm.
diff --git a/sdk/cli/bin/crunch-job b/sdk/cli/bin/crunch-job
index 13001e7..33e775f 100755
--- a/sdk/cli/bin/crunch-job
+++ b/sdk/cli/bin/crunch-job
@@ -868,13 +868,6 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
         $command .= "--memory=\${MEMLIMIT}k --memory-swap=\${SWAPLIMIT}k ";
       }
 
-      # Dynamically configure the container to use the host system as its
-      # DNS server.  Get the host's global addresses from the ip command,
-      # and turn them into docker --dns options using gawk.
-      $command .=
-          q{$(ip -o address show scope global |
-              gawk 'match($4, /^([0-9\.:]+)\//, x){print "--dns", x[1]}') };
-
       # The source tree and $destdir directory (which we have
       # installed on the worker host) are available in the container,
       # under the same path.

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list