codeabovelab / haven-platform

Haven is an open source Docker container management system. It integrates container, application, cluster, image, and registry management in one single place.
Apache License 2.0
282 stars 40 forks source link

Swarm support #2

Closed nickdoikov closed 7 years ago

nickdoikov commented 7 years ago

Hello , what you mean under "Swarm support"? Does it needs to install agents on each swarm node, or you have already implemented mechanism to manage swarm cluster via swarm master node (i mean docker swarm usage , not swarm mode)?

wayerr commented 7 years ago

https://github.com/codeabovelab/haven-platform#installation see: Step 5 So, your do not need to install on each node anything except docker and our agent (need python). On master node you can use swarm embedded into our app (it default behavior), or use custom swarm (it this case you need specify follow option (described here https://github.com/codeabovelab/haven-example-configuration/blob/master/cluster-manager.properties#L64 ): dm.swarm.configs.clusterName.hosts=addres-of-your-swarm-service:2375

nickdoikov commented 7 years ago

thanks . so agent less feature not implemented? thanks

wayerr commented 7 years ago

so agent less feature not implemented?

which agent you mean in agent less feature statement?

wayerr commented 7 years ago

Alss, if you mean our agent, it theoretically possible, but we use agent for gathering statistics from node, and no plans to throw out it.

When we implement support for docker in swarm mode, it possible but i can not guarantee it.

nickdoikov commented 7 years ago

Which kind of statistics you gather ? swarm api also provide some amount of stats (same as docker api can provide) + each node metrics and some other info

wayerr commented 7 years ago

Which kind of statistics you gather ?

See https://github.com/codeabovelab/haven-platform/blob/master/doc/agent.md#data-sent-by-agents-to-the-master

swarm api also provide some amount of stats

i know it

mchwang commented 7 years ago

@nickdoikov Any reason why you need to have it agentless? Is it for easy of installation on the nodes?

nickdoikov commented 7 years ago

main idea - use any quantity of docker nodes in swarm cluster . Any extra service can be a point of failure and should be managed and deployed during deployment. i do not see any sense to use external agent if you can easily get all listed info from swarm.

Also using pythoon agent instead of static binary(go compiled binary for example) can be a cause of problems on older systems or it needs to perform extra steps during provisioning.

in case of using swarm (not a swarm mode) - you already have to use KV (etcd,consul, zookeeper) for advertising nodes list, networks if present etc for swarm master.... (swarm standalone also need agent that advertise node to KV) .

Swarm standalone (as for me) more stable and more clear for using in big production installations instead of swarm mode with master auto election and on-board KV.

interair commented 7 years ago

Swarm standalone (as for me) more stable and more clear for using in big production installations instead of swarm mode with master auto election and on-board KV.

Currently external KV storage like etcd works more stable then embedded (especially raft part), but in future we plan to migrate to swarm mode. Regarding to agent for swarm mode we might will need to use agent for adding/removing node from cluster (clusters). Currently we use agent for gathering statistic and for notifying master about new nodes that is all