Crane的部署和使用

Crane是数人云开源的一款基于swarmkit的容器管理平台。

开源地址:https://github.com/Dataman-Cloud/crane

功能

主机管理

  • 节点概览:id主机名角色可用性状态标签添加时间等信息
    • id: 集群内的节点id
    • 主机名: 集群内节点主机名
    • 角色: 分为管理节点和工作节点,只有管理节点能调度server及节点角色。目前使用单管理节点。
    • 可用性: 调度开关状态、可用通过操作菜单维护。停止调度: 节点资源不可用,已经发布的任务会调度到其他可用资源。暂停调度: 该节点资源暂时不接受新任务调度,已经发布的任务不受影响。正常调度: 节点资源完全放开。
    • 状态:分为就绪下线就绪状态指节点状态正常,下线状态指节点已经离开群集、资源不可用。
    • 标签:节点的label信息、配合服务发布时的资源调度时使用。
    • 添加时间: 记录节点加入集群时间
  • 节点操作:
    • 连接主机:填写主机ip;点击连接,提示更新主机成功后,点击主机id,即可查询到主机详情。
      • 基本信息:Docker相关信息和主机的基本信息
      • 容器信息:主机上已有的容器统计信息
      • 网络: 主机上现有网络信息
      • 储存卷:主机上Docker的存储卷信息
      • 镜像:节点上已有的Docker镜像
    • 编辑标签:为主机编辑标签,便于服务发布时的策略调度使用。以key``value形式创建。
    • 停止调度:节点资源不可用,已经发布的任务会调度到其他可用资源。
    • 暂停调度: 该节点资源暂时不接受新任务调度,已经发布的任务不受影响。
    • 恢复调度: 节点资源恢复使用完全放开。
    • 删除主机:将主机从集群中删除,需要状态为下线状态。

应用管理

目前所有发布的应用都会在应用首页展示,支持对应用的更新、删除、扩展、监控、日志查询、详情查询、连接容器终端等操作。

应用更新: 在应用面板处选择待更新的应用,点击应用名称进入应用详情--操作--更新,跳转到服务更新界面,修改所需改动的信息,点击更新即可完成更新操作。

注: 服务的网络模式以及服务模式不可更改,更新时会按照之前设置的更新策略执行,也可以更新更新策略更新策略容错策略的变更不会触发容器重启。

应用扩展: 在应用面板处选择待更新的应用,点击应用名称进入应用详情--操作--修改任务数,修改的任务数会立即生效。不受更新策略影响。

应用删除:

在应用面板处选择待删除的应用,点击应用名称进入应用详情,点击删除应用,应用会立即被删除,且不能恢复,删除需谨慎 注: 若应用内多个服务,不能删除单个服务。

服务详情

在应用面板选择应用名称下的服务名称,会跳转到服务详情界面。

  • 任务列表:展示服务运行到所有任务数,点击每个任务最右侧的+,可以展示该任务的历史状态,即使修改过任务数,改处仍然可以找到任务的历史纪录,以及异常原因。

    • 容器详情:点击容器的id,可以跳转到容器详情界面:
    • 详情界面:展示了容器的基础信息环境变量端口映射网络配置容器标签存储卷启动命令
    • 日志:该容器的实时日志信息。
    • 实时监控:获取容器实时的cpu、内存、网络io的使用情况。
    • 变更:记录容器的层结构变化。
    • 终端webssh:点击该按钮,可用直接连接到该容器内部,无需登录远程主机,无需主机口令,一键进入。

    注: 监控信息及日志信息实时展示,暂不支持导出。

  • 日志:该服务所有容器的实时日志信息的聚合,另外,日志中的关键词如 Error, Warning 会高亮显示。

  • 实时监控;服务的监控信息概览,同时显示不同任务的资源使用情况。

  • 详情:发布应用时设置的服务信息。

  • 入口列表:提供服务的外部访问地址。同时提供nginx的配置信息和haproxy的配置信息,便于用户管理。

  • 持续部署:如果该服务需要更新镜像,可以通过该命令直接更新,可用对接内部运维流程;需要保证:镜像地址确定可用。运行命令的主机可用连通服务端。

网络管理

内置 overlay 网络实现应用网络隔离和独立的网络规划能力, 在创建应用时可以为服务指定相应的网络。

创建网络

docker1.12默认带有两种overlay网络,ingressdocker_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网络,均可在界面点击删除按钮操作。 如果想对已经创建的网络做更新操作,需要删除后重新创建。

部署

  1. 请确保 docker 安装版本 >=1.12 并正常运行, 我们可以通过命令 docker version 或者 docker info来确认 docker 的运行状态(如何安装和配置 docker 请参考 https://docs.docker.com/engine/installation/)。%E3%80%82)
  2. 请确保 docker-compose 已经正确安装(如何安装 docker-compose 请参考 https://docs.docker.com/compose/install/)。%E3%80%82)
  3. docker,swarm 本身对操作系统还有一些设置需求,譬如主机时钟同步,selinux,docker daemon tcp 服务开启等。这些会在程序安装时自动进行检查, 请在安装时按提醒进行相应设置。
  4. 执行内测邮件中的安装命令,在安装过程中会提醒你输入当前主机的 IP 。
  5. 安装成功后通过浏览器访问 http://$IP 即可,默认用户名:admin@admin.com 密码:adminadmin