Docker Swarm 集群管理工具 swirl


原文链接: Docker Swarm 集群管理工具 swirl

SWIRL

Docker Pulls
Swirl

Swirl 是一个 Docker 管理工具,专注于 Swarm 集群。

Features

Swarm 各组件管理,包括服务、网络、任务等
镜像与容器管理
Compose 管理与部署
服务状态监控(基于 Prometheus)
服务自动伸缩
支持 LDAP 认证
基于 RBAC 完整的权限控制模型
支持横向扩展部署
多语言支持
更多功能...

Snapshots

Dashboard

Dashboard

Service list

Service list

Compose list

Compose list

Role editing

Role editing

Settings

Setting

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.

NameValue
DB_TYPEmongo
DB_ADDRESSlocalhost:27017/swirl
DOCKER_ENDPOINTtcp://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.

NameDescriptionExamples
swirl.scaleService auto scalingswirl.scale=min=1,max=5,cpu=30:50
swirl.metricsAdd additional metrics to service stats pageswirl.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.

`