【Deis文档】使用Deis之管理应用程序

注:本文翻译自Deis官方文档,无任何商业目的,转载请注明出处。

Deis 包含了许多工具管理已经部署的应用程序

扩展应用程序

部署在 Deis 的应用程序通过进程模型扩展。使用 deis scale 来控制容器的数量。

$ deis scale web=8
Scaling processes... but first, coffee!
done in 20s
=== peachy-waxworks Processes
--- web:
web.1 up (v2)
web.2 up (v2)
web.3 up (v2)
web.4 up (v2)
web.5 up (v2)
web.6 up (v2)
web.7 up (v2)
web.8 up (v2)

扩展是被进程类型管理的像定义在一个你的应用程序 repository 根目录下 Procfile 的 web 或 worker。

注意
Docker 应用程序可以使用 cmd 进程类型来扩展默认的容器命令

管理应用程序

Deis 应用程序为 admin tasks 使用一次性(one-off)的进程像数据库迁移和其他针对动态应用程序(live application)的命令。
使用 deis run 来在已经部署的应用程序上执行命令。
$ deis run ls -l total 28
-rw-r--r-- 1 root root 553 Dec 2 23:59 LICENSE
-rw-r--r-- 1 root root 60 Dec 2 23:59 Procfile
-rw-r--r-- 1 root root 33 Dec 2 23:59 README.md
-rw-r--r-- 1 root root 1622 Dec 2 23:59 pom.xml
drwxr-xr-x 3 root root 4096 Dec 2 23:59 src
-rw-r--r-- 1 root root 25 Dec 2 23:59 system.properties
drwxr-xr-x 6 root root 4096 Dec 3 00:00 target

共享应用程序

使用 deis sharing:add 允许另外的 Deis 用户在你的应用程序上合作。
$ deis sharing:add otheruser Adding otheruser to peachy-waxworks collaborators... done
使用 deis sharing 来看应用程序当前共享给谁了,以及使用 deis sharing:remove 来移除合作。
注意
合作者可以做应用程序它自己能做的任何事情,除了删除应用程序自己。
当工作的应用程序已经共享给你时, clone 原始的 repository 并试图 git push 任何变更到 Deis 之前,添加 Deis 的 git 远程实体。
$ git clone https://github.com/deis/example-java-jetty.git Cloning into 'example-java-jetty'... done
$ cd example-java-jetty
$ git remote add -f deis ssh://git@local.deisapp.com:2222/peachy-waxworks.git
Updating deis
From deis-controller.local:peachy-waxworks
* [new branch] master -> deis/master

排查应用程序

部署在 Deis 上的应用程序把日志记录当作事件流,Deis 从每个容器中聚合 stdout 和 stderr 使得可以非常容易的为你的应用程序排查问题。
使用 deis logs 从你已经部署的应用程序中浏览日志输出。
$ deis logs | tail Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.5]: INFO:oejsh.ContextHandler:started o.e.j.s.ServletContextHandler{/,null}
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.8]: INFO:oejs.Server:jetty-7.6.0.v20120127
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.5]: INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:10005
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.6]: INFO:oejsh.ContextHandler:started o.e.j.s.ServletContextHandler{/,null}
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.7]: INFO:oejsh.ContextHandler:started o.e.j.s.ServletContextHandler{/,null}
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.6]: INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:10006
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.8]: INFO:oejsh.ContextHandler:started o.e.j.s.ServletContextHandler{/,null}
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.7]: INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:10007
Dec 3 00:30:31 ip-10-250-15-201 peachy-waxworks[web.8]: INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:10008

限制应用程序

Deis 支持限制每个容器的 CPU 和内存共享。
使用 deis limits:set 通过进程类型限制内存:
$ deis limits:set web=512M Applying limits... done, v3
=== peachy-waxworks Limits
--- Memory
web 512M
--- CPU
Unlimited

你也可以使用 deis limits:set -c 限制 CPU 共享。CPU 共享在一个扩展上是从 0 到 1024。1024 是使用这台主机上的所有 CPU 资源。
注意
如果你限制资源到容器没有启动的点,limits:set 将会夯住。如果这个发生了,使用 CTRL-C 来中断 limits:set 并使用 limits:unset 来恢复。

隔离应用程序

Deis 支持在一组主机上使用 tags 隔离应用程序。
注意
为了使用 tags,你必须首先以合适的 key/value 信息启动你的主机。如果没有这样做,tag 命令将失败。通过读 Fleet 文档的 machine metadata 章节学习更多。
一旦你的主机被使用适合的 key/value 元数据配置,使用 deis tags:set 来限制这些主机的应用程序:

$ deis tags:set environ=prod
  Applying tags...  done, v4
  environ  prod
docker

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: