-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60600/#review181633
-----------------------------------------------------------




src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
Lines 1011 (patched)
<https://reviews.apache.org/r/60600/#comment257255>

    We are missing the `*` wildcard match option here,.i.e, if the 
`network_mode = CNI` and the `network_name` is not set it means it is the 
default DNS config for all the CNI networks. While setting up DNS we want to 
setup the DNS for the most specific match.


- Avinash sridharan


On July 25, 2017, 6:06 a.m., Qian Zhang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/60600/
> -----------------------------------------------------------
> 
> (Updated July 25, 2017, 6:06 a.m.)
> 
> 
> Review request for mesos, Avinash sridharan and Jie Yu.
> 
> 
> Bugs: MESOS-7709
>     https://issues.apache.org/jira/browse/MESOS-7709
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Set container DNS with `--default_container_dns` in CNI isolator.
> 
> 
> Diffs
> -----
> 
>   src/slave/containerizer/mesos/isolators/network/cni/cni.cpp 
> 831bc7d0774a0ad3c8cbd7f42d4a3f8bd34d3243 
> 
> 
> Diff: https://reviews.apache.org/r/60600/diff/4/
> 
> 
> Testing
> -------
> 
> sudo make check
> 
> 1. Start Mesos master.
> ```
> $ sudo ./bin/mesos-master.sh --work_dir=/opt/mesos
> ```
> 
> 2. Start Mesos agent.
> ```
> $ sudo ./bin/mesos-slave.sh --master=192.168.122.216:5050 
> --containerizers=mesos,docker --image_providers=docker 
> --image_provisioner_backend=aufs 
> --isolation=filesystem/linux,docker/runtime,network/cni,cgroups/cpu,cgroups/mem
>  --network_cni_config_dir=/opt/cni/net_configs 
> --network_cni_plugins_dir=/opt/cni/plugins --work_dir=/opt/mesos 
> --docker_store_dir=/opt/mesos/store/docker 
> --executor_registration_timeout=60mins 
> --default_container_dns=file:///home/stack/dns.json
> 
> $ cat /opt/cni/net_configs/net1 
> {
>     "name": "net1",
>     "type": "bridge",
>     "bridge": "br1",
>     "isGateway": true,
>     "ipMasq": true,
>     "ipam": {
>         "type": "host-local",
>         "subnet": "192.168.1.0/24",
>         "routes": [
>             { "dst": "0.0.0.0/0" }
>         ]
>     }
> }
> 
> $ cat /opt/cni/net_configs/net2 
> {
>     "name": "net2",
>     "type": "bridge",
>     "bridge": "br2",
>     "isGateway": true,
>     "ipMasq": true,
>     "ipam": {
>         "type": "host-local",
>         "subnet": "192.168.2.0/24",
>         "routes": [
>             { "dst": "0.0.0.0/0" }
>         ]
>     },
>     "dns": {
>         "nameservers": [ "8.8.4.4" ],
>         "domain": "net2.com",
>         "search": [ "yyy.com" ],
>         "options": [ "attempts:3" ]
>     }
> }
> 
> $ cat /home/stack/dns.json
> {
>   "mesos": [
>     {
>       "network_mode": "CNI",
>       "network_name": "net1",
>       "dns": {
>         "nameservers": [ "8.8.8.8" ],
>         "search": [ "xxx.com" ],
>         "options": [ "timeout:4" ]
>       }
>     }
>   ]
> }
> ```
> 
> 3. Launch a unified container with `mesos-execute`.
> ```
> $ sudo src/mesos-execute --master=192.168.122.216:5050 
> --task=file:///home/stack/task.json
> 
> $ cat /home/stack/task.json 
> {
>   "name": "test",
>   "task_id": {"value" : "test"},
>   "agent_id": {"value" : ""},
>   "resources": [
>     {
>       "name": "cpus",
>       "type": "SCALAR",
>       "scalar": {
>         "value": 0.1
>       }
>     },
>     {
>       "name": "mem",
>       "type": "SCALAR",
>       "scalar": {
>         "value": 32
>       }
>     }
>   ],
>   "command": {
>     "value": "sleep 300"
>   },
>   "container": {
>     "type": "MESOS",
>     "mesos": {
>       "image": {
>         "type": "DOCKER",
>         "docker": {
>           "name": "busybox"
>         }
>       }
>     },
>     "network_infos": [
>       {
>         "name": "net1"
>       },
>       {
>         "name": "net2"
>       }
>     ]
>   }
> }
> ```
> 
> 4. Check the DNS configuration of the unified container.
> ```
> $ ps -ef | grep sleep 
> root     20060 20037  2 21:45 ?        00:00:00 sh -c sleep 300
> root     20074 20060  0 21:45 ?        00:00:00 sleep 300
> 
> $ sudo nsenter -t 20060 -m -u -n cat /etc/resolv.conf           
> domain net2.com
> search yyy.com xxx.com
> options attempts:3 timeout:4
> nameserver 8.8.4.4
> nameserver 8.8.8.8
> ```
> 
> 
> Thanks,
> 
> Qian Zhang
> 
>

Reply via email to