-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue in Media Streaming benchmark #87
Comments
Hi Esha, You can use Swarm to build an overlay network over which Docker containers running on different machines can communicate. Please take a look at these instructions and let me know if you face any problems: http://cloudsuite.ch//2015/12/20/swarm/ Cheers, |
Hi Alex, Thanks for replying. I am doing bandwidth experiments for client-server interaction as part of my research in cloud. So for this I need the client to be outside the cloud setup. I have my media streaming server running in one of the VMs in OpenStack and the client is installed in another machine outside the OpenStack servers. I want to create a client-server scenario which can represent real world media streaming service where multiple clients from different machines can stream media services from the media streaming server. Do you think this is doable without using swarm as I do not prefer the client-server to be running in the same overlay network? Many thanks. |
Swarm creates an overlay network to create a "virtual" cluster and hence facilitate managing all the participating nodes. While I haven't specifically tried your deployment scenario, I don't think its use is limited within a single physical cluster. Swarm is not functionally required, but it's useful once the number of nodes you use starts growing. Using directly the IPs should work, but you should make sure the client and server machines can reach each other and the used ports are open (in this case, port 80). As a first step, can you try repeating the process you posted above using a client and a server machine within the same OpenStack cluster? |
Hi Alex, As per your advice I have created a swarm and also an overlay network. Swarm nodes are working fine and I can create any docker service using the official images from docker hub, like redis, nginx, etc, it just works without any issues. But if I try to use the images from your cloudsuite or my private repo, it fails to start. Swarm issues with images from private registry: In my case I am building an image on the nodes in the cluster and also I have tried to use the images from my docker hub registry. I can pull the images from my hub registry in each of the swarm nodes but it doesn't work with docker service create command. Thus, it seems that I can only use images from official docker hub and not if I build the image and push/pull from my docker hub registry. I have tried to debug this issue and attempted different possible solutions but nothing worked for me. These are my start commands: Note: The commands given in http://cloudsuite.ch//2015/12/20/swarm/ for running a service doesn't work in my swarm mode as those are for older version of swarm. Hence I have used 'docker service create' commands found in https://docs.docker.com/engine/reference/commandline/service_create/ ubuntu@swarmmasternew:/$ sudo docker login ubuntu@swarmmasternew:/$ sudo docker service create --name streaming_dataset --network swarm-network --constraint "node.id==ffx5v6f1ddnxtb1g8434q27dn" --with-registry-auth mydockerID/repository:dataset But with service ls I see that the service fails to start: ubuntu@swarmmasternew:/$ sudo docker service ls ubuntu@swarmmasternew:/$ sudo docker service ps streaming_dataset And this keeps showing pending even after 3-4 hours. CloudSuite related issue in swarm mode: Then I tried to run dc-server from cloudsuite and this time I didn't pull the image from my registry. These are the commands that I used: ubuntu@swarmmasternew:/$ sudo docker service create --name dc-server --network swarm-network --constraint "node.id==ffx5v6f1ddnxtb1g8434q27dn" -d cloudsuite/data-caching:server -t 4 -m 4096 -n 550 ubuntu@swarmmasternew:/$ sudo docker service ps dc-server After an hour or so when I executed the service ps command I found that now its running. ubuntu@swarmmasternew:/$ sudo docker service ps dc-server However, now the problem is shown in dc-client which can't connect to the dc-server and also if I run the dc-client directly on the swarm node it fails to attach to the swarm overlay network as we have to deploy it via the swarm manager. ubuntu@swarm2:~$ sudo docker run -it --net swarm-network --name dc-client cloudsuite/data-caching:client bash Then I tried to run it by removing the --net flag and although it was created it couldn't connect to the server. Below are the steps which I followed: sudo docker run -it --name dc-client cloudsuite/data-caching:client bash
In the docker_servers.txt file I have entered the IP and port of the swarm node in which the dc-server is running. Then I tried the following which failed with "Connection error" message: memcache@2036dbdf7c8a:/usr/src/memcached/memcached_client$ ./loader -a ../twitter_dataset/twitter_dataset_unscaled -o ../twitter_dataset/twitter_dataset_30x -s docker_servers.txt -w 4 -S 30 -D 4096 -j -T 1 nProcessors on system: 4 host: 10.0.0.103 Next, I have tried to create the dc-client from the manager node; it starts but shut-downs quickly - as it obviously cannot get into bash from the manager to some other node as expected. Below are the commands that I have tried for this: ubuntu@swarmmasternew:/$ sudo docker service create --name dc-client --network swarm-network --constraint "node.id==rcx96urvzsyrvfy9cwttn152n" cloudsuite/data-caching:client bash I would really appreciate if you could help me with the above issues. Many thanks, |
Please reopen if this problem still remains. |
Hello all,
I am trying to run media streaming benchmark by keeping the server in one machine and client in another machine. I have exposed and published the port while running the server as this should allow any incoming request from outside. I am wondering if I am doing anything wrong in port binding or in setting up the container network (I am using the User-defined networks i.e. streaming_network)
I have downloaded all sources from the CloudSuite github repo and followed the steps as below to run a test:
To build dataset*******
hostmachine1:
create network b/w client and server*******
hostmachine1:
To run the server*******
hostmachine1:
Now on another machine I have built the client by following the steps as below:
create network b/w client and server*******
hostmachine 2:
To run the client*******
hostmachine2:
This gives me an error msg:
This error is very obvious as I don't have the streaming dataset in host machine 2. I tried to replace the streaming_dataset with the container ID and streaming_server with the host IP
Then I removed the dataset and also I have changed the script hostlist.server(from files/run) by replacing streaming_server with my host machine 1's IP address. Then I tried to run the client to see if I can connect to the host machine 1 but once again it failed.
I was wondering if I need to change anything in the Dockerfile or in any of the given scripts? Can someone please advise me on how to run the streaming server and client containers in two different machines as the benchmark is designed to run both the server and client in the same host?
Many thanks,
Esha Barlaskar
The text was updated successfully, but these errors were encountered: