Docker Swarm 集群管理工具 swirl
原文链接: Docker Swarm 集群管理工具 swirl
SWIRL
Swirl 是一个 Docker 管理工具,专注于 Swarm 集群。
Features
Swarm 各组件管理,包括服务、网络、任务等
镜像与容器管理
Compose 管理与部署
服务状态监控(基于 Prometheus)
服务自动伸缩
支持 LDAP 认证
基于 RBAC 完整的权限控制模型
支持横向扩展部署
多语言支持
更多功能...
Snapshots
Dashboard
Service list
Compose list
Role editing
Settings
Configuration
With config file
All options can be set with config/app.yml
.
name: swirl
banner: false
web:
address: ':8001'
authorize: '?'
swirl:
db_type: mongo
db_address: localhost:27017/swirl
# docker_endpoint: tcp://docker-proxy:2375
log:
loggers:
- level: info
writers: console
writers:
- name: console
type: console
layout: '[{L}]{T}: {M}{N}'
With environment variables
Only three main options can be set by environment variables for now.
Name | Value |
---|---|
DB_TYPE | mongo |
DB_ADDRESS | localhost:27017/swirl |
DOCKER_ENDPOINT | tcp://docker-proxy:2375 |
With swarm config
Docker support mounting configuration file through swarm from v17.06, so you can store your config in swarm and mount it to your program.
Deployment
Stand alone
Just copy the swirl binary and config/assets/views directories to the host, and run it.
./swirl
Docker
docker run -d -p 8001:8001 \
--mount type=bind,src=../../../var/run/docker.sock,dst=/var/run/docker.sock \
-e DB_TYPE=mongo \
-e DB_ADDRESS=localhost:27017/swirl \
--name=swirl \
cuigh/swirl
Docker swarm
docker service create \
--name=swirl \
--publish=8001:8001/tcp \
--env DB_ADDRESS=localhost:27017/swirl \
--constraint=node.role==manager \
--mount=type=bind,src=../../../var/run/docker.sock,dst=/var/run/docker.sock \
cuigh/swirl
Docker compose
docker stack deploy -c compose.yml swirl
Advanced features
Swirl use service labels to support some features, the labels in the table below are currently supported.
Name | Description | Examples |
---|---|---|
swirl.scale | Service auto scaling | swirl.scale=min=1,max=5,cpu=30:50 |
swirl.metrics | Add additional metrics to service stats page | swirl.metrics=java , swirl.metrics=go |
Build
Swirl use dep
as dependency management tool. You can build Swirl
$ dep ensure
$ go build
License
This product is licensed to you under the MIT License. You may not use this product except in compliance with the License. See LICENSE and NOTICE for more information.