-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/45801/
-----------------------------------------------------------
Review request for mesos, Jie Yu and Qian Zhang.
Bugs: MESOS-5127
https://issues.apache.org/jira/browse/MESOS-5127
Repository: mesos
Description
-------
Currently the `LIBPROCESS_IP` environment variable was being set to
the Agent IP if the environment variable has not be defined by the
`Framework`. For containers having their own IP address (as with
containers on CNI networks) this becomes a problem since the command
executor tries to bind to the `LIBPROCESS_IP` that does not exist in
its network namespace, and fails. Thus, for containers launched on CNI
networks the `LIBPROCESS_IP` should not be set, or rather is set to
"0.0.0.0", allowing the container to bind to the IP address provided
by the CNI network.
Diffs
-----
src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
f43ab071de42de16d330cfd2a3b76563bcb173c9
Diff: https://reviews.apache.org/r/45801/diff/
Testing
-------
Started a slave with the following flags:
Flags at startup: --appc_simple_discovery_uri_prefix="http://"
--appc_store_dir="/tmp/mesos/store/appc" --authenticate_http="false"
--authenticatee="crammd5" --cgroups_cpu_enable_pids_and_tids_count="false"
--cgroups_enable_cfs="false" --cgroups_hierarchy="/sys/fs/cgroup"
--cgroups_limit_swap="false" --cgroups_root="mesos"
--container_disk_watch_interval="15secs" --containerizers="mesos"
--default_role="*" --disk_watch_interval="1mins" --docker="docker"
--docker_kill_orphans="true" --docker_registry="/home/vagrant/docker/builds/"
--docker_remove_delay="6hrs" --docker_socket="/var/run/docker.sock"
--docker_stop_timeout="0ns" --docker_store_dir="/tmp/mesos/store/docker"
--enforce_container_disk_quota="false"
--executor_environment_variables="{"LIBPROCESS_IP":"0.0.0.0"}"
--executor_registration_timeout="1mins"
--executor_shutdown_grace_period="5secs" --fetcher_cache_dir="/tmp/mesos/fetch"
--fetcher_cache_size="2GB" --frameworks_home="" --gc_delay="1weeks"
--gc_disk_headroom="0.1" -he -h
adoop_home="" --help="false" --hostname_lookup="true"
--http_authenticators="basic" --image_providers="docker"
--image_provisioner_backend="copy" --initialize_driver_logging="true"
--ip="172.28.128.7" --isolation="filesystem/linux,docker/runtime,network/cni"
--launcher_dir="/home/vagrant/mesosphere/mesos/build/src" --logbufsecs="0"
--logging_level="INFO" --master="172.28.128.7:5050"
--network_cni_config_dir="/home/vagrant/cni/config"
--network_cni_plugins_dir="/home/vagrant/dev/go/cni/bin"
--oversubscribed_resources_interval="15secs" --perf_duration="10secs"
--perf_interval="1mins" --port="5051" --qos_correction_interval_min="0ns"
--quiet="false" --recover="reconnect" --recovery_timeout="15mins"
--registration_backoff_factor="1secs" --revocable_cpu_low_priority="true"
--sandbox_directory="/mnt/mesos/sandbox" --strict="true" --switch_user="true"
--systemd_enable_support="true"
--systemd_runtime_directory="/run/systemd/system" --version="false"
--work_dir="/home/vagrant/mesos_data_sla
ve/"
Ran `mesos-execute` with a docker-image and with a CNI network specified. The
docker image was a Ubuntu 14.04 image, and the command specified was
"ifconfig". Ensured that the container was launched succesfully and the task
FINISHED succesfully, with the correct IP address.
Thanks,
Avinash sridharan