自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

動手搭建Shipyard,簡化跨主機(jī)的Docker容器集群管理

云計(jì)算
Shipyard(github)是建立在docker集群管理工具Citadel之上的可以管理容器、主機(jī)等資源的web圖形化工具。包括core和extension兩個版本,core即shipyard主要是把多個 Docker host上的 containers 統(tǒng)一管理(支持跨越多個host),extension即shipyard-extensions添加了應(yīng)用路由和負(fù)載均衡、集中化日志、部署等。

Shipyard(github)是建立在docker集群管理工具Citadel之上的可以管理容器、主機(jī)等資源的web圖形化工具。包括core和extension兩個版本,core即shipyard主要是把多個 Docker host上的 containers 統(tǒng)一管理(支持跨越多個host),extension即shipyard-extensions添加了應(yīng)用路由和負(fù)載均衡、集中化日志、部署等。

1. 幾個概念

engine

一個shipyard管理的docker集群可以包含一個或多個engine(引擎),一個engine就是監(jiān)聽tcp 端口的docker daemon。shipyard管理docker daemon、images、containers完全基于Docker API,不需要做其他的修改。另外,shipyard可以對每個engine做資源限制,包括CPU和內(nèi)存;因?yàn)門CP監(jiān)聽相比Unix socket方式會有一定的安全隱患,所以shipyard還支持通過SSL證書與docker后臺進(jìn)程安全通信。

rethinkdb

RethinkDB是一個shipyard項(xiàng)目的一個docker鏡像,用來存放賬號(account)、引擎(engine)、服務(wù)密鑰(service key)、擴(kuò)展元數(shù)據(jù)(extension metadata)等信息,但不會存儲任何有關(guān)容器或鏡像的內(nèi)容。一般會啟動一個shipyard/rethinkdb容器shipyard-rethinkdb-data來使用它的/data作為數(shù)據(jù)卷供另外rethinkdb一個掛載,專門用于數(shù)據(jù)存儲。

2. 搭建過程

修改tcp監(jiān)聽

Shipyard 要管理和控制 Docker host 的話需要先修改 Docker host 上的默認(rèn)配置使其監(jiān)聽tcp端口(可以繼續(xù)保持Unix socket)。有以下2種方式

1.sudo docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d啟動docker daemon。如果為了避免每次啟動都寫這么長的命令,可以直接在/etc/init/docker.conf中修改。

2.修改/etc/default/docker的DOCKER_OPTS

DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock"。這種方式在我docker version 1.4.1 in ubuntu 14.04上并沒有生效。

  1. 重啟服務(wù) 
  2. $ sudo docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d 
  3. 驗(yàn)證 
  4. $ netstat -ant |grep 4243 
  5. tcp6 0 0 :::4243 

啟動rethinkdb

shipyard(基于Python/Django)在v1版本時安裝過程比較復(fù)雜,既可以通過在host上安裝,也可以部署shipyard鏡像(包括shipyard-agent、shipyard-deploy等組件)。v2版本簡化了安裝過程,啟動兩個鏡像就完成:

  1. 獲取一個/data的數(shù)據(jù)卷 
  2. $sudo docker run -it -d --name shipyard-rethinkdb-data \ 
  3. --entrypoint /bin/bash shipyard/rethinkdb -l 
  4. 使用數(shù)據(jù)卷/data啟動RethinkDB 
  5. docker run -it -P -d --name shipyard-rethinkdb \ 
  6. --volumes-from shipyard-rethinkdb-data shipyard/rethinkdb 

部署shipyard鏡像

啟動shipyard控制器:

  1. sudo docker run -it -p 8080:8080 -d --name shipyard \ 
  2. --link shipyard-rethinkdb:rethinkdb shipyard/shipyard 

至此已經(jīng)可以通過瀏覽器訪問http://host:8080來訪問shipyard UI界面了。

第一次run后,關(guān)閉再次啟動時直接使用:

  1. sudo docker stop shipyard shipyard-rethinkdb shipyard-rethinkdb-data 
  2. sudo docker start shipyard-rethinkdb-data shipyard-rethinkdb shipyard 

#p#

圖示

登錄:

默認(rèn)用戶名/密碼為 admin/shipyard

主界面:

Dashboard展示在添加engine時指定的CPU以及內(nèi)存的使用情況。

容器:

shipyard管理的所有docker主機(jī)的所有容器,包括stop和running狀態(tài)的??梢灾苯狱c(diǎn)擊DEPLOY按鈕來從鏡像運(yùn)行出其他容器,與docker run的選項(xiàng)幾乎相同,可以限制CPU和內(nèi)存的使用,詳見shipyard的containers文檔。

容器操作:

可以stop、start、restart容器,通過LOGS可以看到容器日志輸出,SCALE可 以批量(規(guī)?;┎渴鹪撊萜鳎@個操作與容器的Type屬性息息相關(guān)。因?yàn)閟hipyard可以管理多個host的docker容器,所以啟動一個容器的 type可以是:service——可以在具有相同label的engine上運(yùn)行;unique——一個host上只允許某個鏡像的一個實(shí)例運(yùn) 行;host——在指定的host上運(yùn)行容器,啟動的時候通過--label host:<host-id>語法指定docker host。

engine管理:

一 個engine就是一個docker daemon,docker daemon下啟動著多個containers,可以對engine限制一個整體的CPU和內(nèi)存限制,shipyard通過TCP端口連接daemon。 需要注意的是docker client與server的版本問題:(因?yàn)閟hipyard目前還在快速的完善過程,不同版本的docker應(yīng)該是向下兼容的)

  1. curl -X GET http://172.29.88.223:4243/v1.15/containers/json 
  2. client and server don't have same version (client : 1.15, server: 1.13

3. shipyard-cli

目前圖形化界面能做的操作其實(shí)很少,正在強(qiáng)大的是通過shipyard提供的命令行窗口(稱作Shipyard CLI)進(jìn)行管理,參考http://shipyard-project.com/docs/usage/cli/
啟動命令行交互模式:

  1. sudo docker run --rm -it shipyard/shipyard-cli 

使用它甚至可以替代docker客戶端。

  1. sean@seanubt:~$ sudo docker run -it shipyard/shipyard-cli 
  2. shipyard cli> shipyard help 
  3. NAME: 
  4. shipyard - manage a shipyard cluster 
  5. USAGE: 
  6. shipyard [global options] command [command options] [arguments...] 
  7. VERSION: 
  8. 2.0.8 
  9. COMMANDS: 
  10. login login to a shipyard cluster 
  11. change-password update your password 
  12. accounts show accounts 
  13. add-account add account 
  14. delete-account delete account 
  15. containers list containers 
  16. inspect inspect container 
  17. run run a container 
  18. stop stop a container 
  19. restart restart a container 
  20. scale scale a container 
  21. logs show container logs 
  22. destroy destroy a container 
  23. engines list engines 
  24. add-engine add shipyard engine 
  25. remove-engine removes an engine 
  26. inspect-engine inspect an engine 
  27. service-keys list service keys 
  28. add-service-key adds a service key 
  29. remove-service-key removes a service key 
  30. extensions show extensions 
  31. add-extension add extension 
  32. remove-extension remove an extension 
  33. webhook-keys list webhook keys 
  34. add-webhook-key adds a webhook key 
  35. remove-webhook-key removes a webhook key 
  36. info show cluster info 
  37. events show cluster events 
  38. help, h Shows a list of commands or help for one command 
  39. GLOBAL OPTIONS: 
  40. --help, -h show help 
  41. --generate-bash-completion 
  42. --version, -v print the version 
  43. 登錄shipyard 
  44. shipyard cli> shipyard login 
  45. URL: http://172.29.88.205:8080 
  46. Username: admin 
  47. Password: 
  48. 查看containers 
  49. shipyard cli> shipyard containers 
  50. 啟動一個容器 
  51. shipyard cli> shipyard run --name nginx:1.7.6 --container-name web_test \ 
  52. --cpus 0.2 \ 
  53. --memory 64 \ 
  54. --type service \ 
  55. --hostname nginx-test \ 
  56. --domain example.com \ 
  57. --link redis:db \ 
  58. --port tcp/172.29.88.205:81:8081 \ 
  59. --port tcp/::8000 \ 
  60. --restart "on-failure:5" \ 
  61. --env FOO=bar \ 
  62. --label dev \ 
  63. 查看容器日志(只能接容器ID,暫不能使用容器名) 
  64. shipyard cli> shipyard logs ff2761d 
  65. 關(guān)閉并移除容器 
  66. shipyard cli> shipyard destroy <container_id> 

試用后覺得shipyard的web只實(shí)現(xiàn)了最基本的功能,如果需要方便的從web管理docker集群的話,還需要做很多定制工作。

原文鏈接:http://seanlook.com/2014/12/29/docker-shipyard-centralized-management-webui/

責(zé)任編輯:Ophira 來源: seanlook
相關(guān)推薦

2023-09-15 10:15:43

Docker網(wǎng)絡(luò)

2022-07-20 15:19:17

容器Docker

2020-02-05 14:31:04

兩種互通方法

2024-01-02 08:00:00

云計(jì)算容器Docker

2020-10-23 17:21:51

容器CaaS技術(shù)

2018-09-06 14:29:13

容器主機(jī)存儲

2014-12-15 10:40:40

DockerSwarm集群管理

2022-09-15 08:31:11

主從復(fù)制模式Docker

2016-10-31 15:33:57

DockerMySQL容器管理

2024-03-07 16:03:56

RedisDocker

2016-06-15 10:35:59

云計(jì)算

2022-04-15 09:30:00

Kubernetes云計(jì)算多云

2020-05-13 07:00:00

K9SKubernetes集群

2014-11-11 15:25:00

Dockerambassador云計(jì)算

2017-03-28 10:20:24

Docker通信分析

2017-11-28 09:21:53

LinuxWindowsDocker

2017-02-14 16:39:56

docker容器化主機(jī)

2021-08-31 07:00:26

Kubernetes Clusternet開源

2015-11-09 09:52:23

Docker1.9跨主機(jī)網(wǎng)絡(luò)新特性

2017-07-11 13:30:12

RedisDockerLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號