Swirl:Docker Swarm 叢集管理的新選擇

noname發表於2018-03-14

SWIRL

GitHub 地址:https://github.com/cuigh/swirl

Swirl 是一個 Docker 管理工具,專注於 Swarm 叢集。

主要功能

  • Swarm 各元件管理,包括服務、網路、任務等
  • 映象與容器管理
  • Compose 管理與部署
  • 服務狀態監控(基於 Prometheus
  • 服務自動伸縮
  • 支援 LDAP 認證
  • 基於 RBAC 完整的許可權控制模型
  • 支援橫向擴充套件部署
  • 多語言支援
  • 更多功能...

Snapshots

首頁

Dashboard

服務列表

Service list

服務監控

Service stats

服務編排管理

Stack list

系統設定

Setting

配置

使用配置檔案

所有選項都可以通過 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}'

使用環境變數

3 個主要的設定支援通過環境變數來設定,便於以 Docker 方式部署。

Name Value
DB_TYPE mongo
DB_ADDRESS localhost:27017/swirl
DOCKER_ENDPOINT tcp://docker-proxy:2375
AUTH_TIMEOUT 4h

使用 Swarm 的 Config 功能

Docker 從 v17.06 版本起,內建了配置管理模組,服務可以直接掛載儲存在叢集中的配置檔案,因此你也可以通過這種方式來掛載 Swirl 的配置檔案。

部署

獨立部署

編譯後把 swirl 執行檔案和 config/assets/views 這 3 個目錄複製到伺服器任意目錄中,直接執行即可。

./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 方式

Swirl 專案中已經包含了一個簡單的 Compose 部署檔案,你可以使用 Docker 的 stack 命令直接部署

docker stack deploy -c compose.yml swirl

高階特性

Swirl 使用服務標籤來實現一些高階的管理功能,下表中的標籤是目前已經支援的。

名稱 描述 示例
swirl.scale 用於控制服務自動伸縮 swirl.scale=min=1,max=5,cpu=30:50

從原始碼構建

Swirl 使用 dep 作為依賴管理工具,下載原始碼後,你可以使用如下兩行簡單的命令來構建。

$ dep ensure
$ go build

許可證

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.

相關文章