docker深さ2-swarmmodeベースのサービス発見と登録
docker深さ2-swarmmodeベースのサービス発見と登録
2017/10/20
注:【未完待続】ラベルは、今研究を続ける暇がないことを示しています.その後、補充します.今から共有してください.友达が考えと助けを必要としているかもしれません.
2017/10/20
注:【未完待続】ラベルは、今研究を続ける暇がないことを示しています.その後、補充します.今から共有してください.友达が考えと助けを必要としているかもしれません.
、
1、
1) swarm mode
2) go python agent docker api/sdk 。
3)docker api/sdk
* docker api and sdk exp
* api ref: https://docs.docker.com/engine/api/v1.30/
* sdk go: https://godoc.org/github.com/moby/moby/client
* [howto]
* # curl -s --unix-socket /var/run/docker.sock http:/v1.30/nodes |jq . |more
* # curl -s --unix-socket /var/run/docker.sock http:/v1.30/services |jq . |more
* # curl -s --unix-socket /var/run/docker.sock http:/v1.30/tasks |jq . |more
4)
https://github.com/opera443399/ops/blob/master/doc/Go/src/abc.com/demo/demoDockerAPI/app.go
https://github.com/sergkh/docker-etcd-registrator/blob/master/register.py
2、
docker service -> swarm mode manager -> my_test_etcd_registrator -> net_etcd -> LB+confd
3、 sergkh
4、 ,
、 sergkh
1、
docker network create --driver overlay net_etcd
1: overlay , ping
2: docker stack compose , service overlay ,
2、 etcd
docker service create --name my_test_etcd \
--network net_etcd \
--publish 2379:2379 \
--publish 2380:2380 \
--detach=true \
--constraint 'node.role == manager' \
quay.io/coreos/etcd:latest etcd \
--advertise-client-urls http://my_test_etcd:2379 \
--listen-client-urls http://0.0.0.0:2379
3、 etcd
curl 127.0.0.1:2379/v2/keys/
curl -X PUT 127.0.0.1:2379/v2/keys/services -d key1='value1'
curl 127.0.0.1:2379/v2/keys/services
4、
docker service create --name my_test_etcd_registrator \
--network net_etcd \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--env ETCD_HOST="my_test_etcd" \
--env ETCD_PORT="2379" \
--env BASE_DIR="/service" \
--env UPDATE_INTERVAL="30" \
--env RUN_ONCE="False" \
--detach=true \
--constraint 'node.role == manager' \
sergkh/docker-etcd-registrator
5、
( , )
6、
1)sergkh docker-etcd-registrator python , fork 。
https://github.com/sergkh/docker-etcd-registrator/blob/c294b60cfb49a5213d9942b2ef4f99827435c182/register.py#L30
descr['address'] = '{0}:{1}'.format(service.name, ports[0]['TargetPort'])
TargetPort PublishedPort
、 ,
( )
1、TODO
agent
agent
ZYXW、
1、https://github.com/sergkh
https://github.com/sergkh/docker-etcd-registrator
https://hub.docker.com/r/sergkh/nginx-autoproxy/
2、docker api
https://docs.docker.com/engine/api/v1.3
3、docker sdk go
https://godoc.org/github.com/moby/moby/client