kobolog / gorb

IPVS on steroids – REST API, heartbeats, service discovery and more
GNU Lesser General Public License v3.0
809 stars 83 forks source link

Works on Docker-machine on Mac OSX? #23

Closed greglearns closed 8 years ago

greglearns commented 8 years ago

Great presentation at DockerCon!

Running the most recent version of Docker-machine, and using Ubuntu:15.04 or Alpine:latest, I'm unable to run ipvsadm. No matter what I do, I get this error (any ideas?):

bash-4.3# ipvsadm modprobe: can't change directory to '/lib/modules': No such file or directory Can't initialize ipvs: Protocol not available Are you sure that IP Virtual Server is built in the kernel or as module?

~/c/ipvs ❯❯❯ docker version ⏎ Client: Version: 1.10.0 API version: 1.22 Go version: go1.5.3 Git commit: 590d5108 Built: Thu Feb 4 18:18:11 2016 OS/Arch: darwin/amd64

Server: Version: 1.10.0 API version: 1.22 Go version: go1.5.3 Git commit: 590d5108 Built: Thu Feb 4 19:55:25 2016 OS/Arch: linux/amd64

kobolog commented 8 years ago

Hey,

IPVS support is definitely still in boot2docker images: https://github.com/boot2docker/boot2docker/blob/master/kernel_config#L972

Try to run:

$ docker-machine ssh default # or whatever machine name you use
$ sudo modprobe ip_vs

This should load the IPVS kernel module. Normally ipvsadm does it for you automatically though, so I'm not sure what happened there. Note that you should run ipvsadm and modprobe with sudo, since it requires kernel access.

greglearns commented 8 years ago

solved by adding --privileged when running the container that will use ipvsadm, as well as upgrading to the newest version of docker-machine.