Crane的部署和使用
Crane是数人云开源的一款基于swarmkit的容器管理平台。
开源地址:https://github.com/Dataman-Cloud/crane
功能
主机管理
- 节点概览:
id
、主机名
、角色
、可用性
、状态
、标签
、添加时间
等信息- id: 集群内的节点id
- 主机名: 集群内节点主机名
- 角色: 分为管理节点和工作节点,只有管理节点能调度server及节点角色。目前使用单管理节点。
- 可用性: 调度开关状态、可用通过
操作
菜单维护。停止调度
: 节点资源不可用,已经发布的任务会调度到其他可用资源。暂停调度
: 该节点资源暂时不接受新任务调度,已经发布的任务不受影响。正常调度
: 节点资源完全放开。 - 状态:分为
就绪
和下线
;就绪
状态指节点状态正常,下线
状态指节点已经离开群集、资源不可用。 - 标签:节点的label信息、配合服务发布时的资源调度时使用。
- 添加时间: 记录节点加入集群时间
- 节点操作:
- 连接主机:填写主机ip;点击连接,提示更新主机成功后,点击主机id,即可查询到主机详情。
- 基本信息:Docker相关信息和主机的基本信息
- 容器信息:主机上已有的容器统计信息
- 网络: 主机上现有网络信息
- 储存卷:主机上Docker的存储卷信息
- 镜像:节点上已有的Docker镜像
- 编辑标签:为主机编辑标签,便于服务发布时的策略调度使用。以
key``value
形式创建。 - 停止调度:节点资源不可用,已经发布的任务会调度到其他可用资源。
- 暂停调度: 该节点资源暂时不接受新任务调度,已经发布的任务不受影响。
- 恢复调度: 节点资源恢复使用完全放开。
- 删除主机:将主机从集群中删除,需要状态为下线状态。
- 连接主机:填写主机ip;点击连接,提示更新主机成功后,点击主机id,即可查询到主机详情。
应用管理
目前所有发布的应用都会在应用首页展示,支持对应用的更新、删除、扩展、监控、日志查询、详情查询、连接容器终端等操作。
应用更新: 在应用面板处选择待更新的应用,点击应用名称进入应用详情
--操作
--更新
,跳转到服务更新
界面,修改所需改动的信息,点击更新
即可完成更新操作。
注: 服务的网络模式以及服务模式不可更改,更新时会按照之前设置的更新策略执行,也可以更新更新策略
。更新策略
和容错策略
的变更不会触发容器重启。
应用扩展: 在应用面板处选择待更新的应用,点击应用名称进入应用详情
--操作
--修改任务数
,修改的任务数会立即生效。不受更新策略影响。
应用删除:
在应用面板处选择待删除的应用,点击应用名称进入应用详情
,点击删除应用
,应用会立即被删除,且不能恢复,删除需谨慎 注: 若应用内多个服务,不能删除单个服务。
服务详情
在应用面板选择应用名称下的服务名称,会跳转到服务详情
界面。
任务列表:展示服务运行到所有任务数,点击每个任务最右侧的
+
,可以展示该任务的历史状态,即使修改过任务数,改处仍然可以找到任务的历史纪录,以及异常原因。- 容器详情:点击容器的id,可以跳转到
容器详情
界面: - 详情界面:展示了容器的
基础信息
、环境变量
、端口映射
、网络配置
、容器标签
、存储卷
、启动命令
等 - 日志:该容器的实时日志信息。
- 实时监控:获取容器实时的cpu、内存、网络io的使用情况。
- 变更:记录容器的层结构变化。
- 终端webssh:点击该按钮,可用直接连接到该容器内部,无需登录远程主机,无需主机口令,一键进入。
注: 监控信息及日志信息实时展示,暂不支持导出。
- 容器详情:点击容器的id,可以跳转到
日志:该服务所有容器的实时日志信息的聚合,另外,日志中的关键词如 Error, Warning 会高亮显示。
实时监控;服务的监控信息概览,同时显示不同任务的资源使用情况。
详情:发布应用时设置的服务信息。
入口列表:提供服务的外部访问地址。同时提供nginx的配置信息和haproxy的配置信息,便于用户管理。
持续部署:如果该服务需要更新镜像,可以通过该命令直接更新,可用对接内部运维流程;需要保证:镜像地址确定可用。运行命令的主机可用连通服务端。
网络管理
内置 overlay 网络实现应用网络隔离和独立的网络规划能力, 在创建应用时可以为服务指定相应的网络。
创建网络
docker1.12默认带有两种overlay网络,ingress
和docker_gwbridge
;
ingress
Swarm manager使用ingress
负载均衡,创建服务时做的端口映射作为service的默认VIP,virtual IP地址作为服务请求的入口。基于virtual IP进行负载均衡.集群内的ingress网络是基于节点端口模式的,集群内的每个监听这个端口的节点,都可以为那个服务路由流量。
需要注意的是,即使指定了自定义网络,做了端口映射的服务也会自动添加ingress网络。
docker_gwbridge
default_gwbridge
网络只能用在非内部的网络环境下,连接到多主机网络的容器会自动连接到docker_gwbridge网络。这种网络模式让容器可以和集群外产生外部连接,并且在每个worker节点上创建。
your_own_overlay
如果有规划网络的需要,容器间做网络隔离,可用通过自定义网络实现。
点击创建网络
按钮,填写网络信息后创建
即可。
- 网络名称: 必须为数字或英文
- 子网:示例:172.20.0.0/16
- 网关:示例:172.20.10.1
- ip范围:示例 172.20.10.0/24;可用ip从172.20.10.1~172.20.10.254。
- 内部网络:如果为是,该网络不提供与集群外的通讯。
- 标签:设置标签后,在发布新服务时可用通过标签选择网络。
网络管理:
除了ingress
网络,均可在界面点击删除
按钮操作。 如果想对已经创建的网络做更新操作,需要删除后重新创建。
部署
- 请确保 docker 安装版本 >=1.12 并正常运行, 我们可以通过命令
docker version
或者docker info
来确认 docker 的运行状态(如何安装和配置 docker 请参考 https://docs.docker.com/engine/installation/)。%E3%80%82) - 请确保 docker-compose 已经正确安装(如何安装 docker-compose 请参考 https://docs.docker.com/compose/install/)。%E3%80%82)
- docker,swarm 本身对操作系统还有一些设置需求,譬如主机时钟同步,selinux,docker daemon tcp 服务开启等。这些会在程序安装时自动进行检查, 请在安装时按提醒进行相应设置。
- 执行内测邮件中的安装命令,在安装过程中会提醒你输入当前主机的 IP 。
- 安装成功后通过浏览器访问 http://$IP 即可,默认用户名:admin@admin.com 密码:adminadmin