1. Swarm
1.1. 集群
1.1.1. 功能截图
1.1.2. 知识点
说明Docker Swarm是docker集群管理工具,支持应用创建、更新、收缩、扩容、还原、删除、服务编排等。
Docker Swarm的节点有manager和worker两种角色。manager为管理节点,负责整个集群的管理工作包括集群配置、服务调度等所有跟集群有关的工作,worker为工作节点,主要负责运行相应的服务来执行任务(task)。
1.1.3. 功能详述
Docker Swarm集群列表可以创建、新增、删除集群,查询每个集群基本状态,占用资源。也可以对集群每个节点进行升级、降级、删除、强制脱离等操作。
创建
该功能可以创建新的swarm集群,点击创建按钮在弹出窗口输入集群编号、集群名称、服务器IP字段,点击创建进行创建新的集群。
字段说明:
- 集群编号:集群唯一标识
- 集群名称:集群名称
- 服务器IP:要创建集群的服务器地址
添加
该功能可以添加已经存在的swarm集群,点击添加按钮在弹出窗口输入集群编号、集群名称、任意管理节点的IP字段,点击添加已经存在的swarm集群。
字段说明:
- 集群编号:集群唯一标识
- 集群名称:集群名称
- 任意管理节点IP:要添加集群的任意管理节点IP地址
加入集群
该功能可以为指定的集群添加新的节点,在弹出的窗口中输入节点IP,是否为管理节点,点击添加即可。
字段说明:
- 节点IP:要加入的集群的新节点地址
- 是否管理节点:加入的节点是否为管理节点,不开启按钮为工作节点,开启按钮为管理节点,默认不开启
删除集群
该操作只是删除NTC数据库的swarm集群信息,不会影响swarm集群自生运行情况。删除了可以通过添加再次新增回来。
修改节点
修改功能可以修改节点的状态、节点角色和节点标签。
节点状态说明:
active:表示调度程序可以将任务分配给节点;
pause:表示调度程序不会将新任务分配给节点,但现有任务仍在运行;
drain:表示调度程序不会将新任务分配给节点;调度程序关闭所有现有任务并在可用节点上。
节点角色说明:
manager:修改为管理节点,负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
worker:修改为工作节点,主要负责运行相应的服务来执行任务(task)。
节点标签:
可以给节点添加标签,应用可以根据节点标签部署到指定节点。
降级
可以通过降级功能将管理节点降级为工作节点。注:只有最后一个有效管理节点不允许降级,可以通过强制脱离。
脱离
通过该功能将该节点脱离集群,脱离之后节点的状态为down,通过集群列表还是能查询到该节点。
注意注意:脱离之前节点必须为工作节点。
删除
脱离之后可以通过删除功能来彻底脱离集群,删除之后集群列表将查询不到该节点。
容器监控
点击容器监控按钮跳转到容器监控页面。
1.2. 应用
1.2.1. 功能截图
1.2.2. 知识点
应用部署分为部署包创建和镜像创建两种方式,部署包创建的流程是上传部署包->构建镜像->上传镜像到镜像仓库->创建应用,镜像创建的流程是选择镜像->创建应用。
1.2.3. 功能详述
应用支持创建、部署、更新、收缩、扩容和删除应用,以及查看操作历史、修改应用配置和对部署操作进行还原,以及支持容器视图和应用视图的切换。
列表查看
点击应用菜单展示应用列表页面,应用菜单支持创建、部署、重载配置、收缩、扩容和删除应用,以及查看操作历史、修改应用配置和对部署操作进行还原。
字段说明:
- 应用:应用编号,不能重复,不同集群间的应用编号也不能相同
- 镜像:创建应用所使用的镜像版本
- 调度模式:集群调度模式,支持副本和全局两种模式,副本模式表示可以手动指定集群中部署应用的实例数,swarm会尽可能均匀地将各个副本分布在整个集群中,保证应用满足相应的实例数,全局模式表示集群中每个可用节点满足有且只有一个应用实例
- 启动/总数:启动的应用实例数和应用实例总数
- 端口映射:将容器内部端口映射到外部宿主机端口,因为容器是资源隔离的,宿主机无法通过容器IP和端口访问容器
- 状态:应用状态,目前有全部启动、部分启动和全部停止三种状态
- 配置:容器配置
- 操作:操作类型,包括收缩、扩容、更新等
- 操作结果:操作结果日志,点击可以查看操作日志
- 任务编号:Swarm最小调度单元,一个相当于一个容器
- 状态:任务状态,包括运行,关闭,失败等
- 节点:节点主机名
- 更新时间:任务更新时间
创建
点击创建按钮跳转到创建应用页面,输入相应信息创建应用,并且可以查看操作结果日志,应用创建分为部署包创建和镜像创建两种方式,部署包创建的流程是上传部署包->构建镜像->上传镜像到镜像仓库->创建应用,镜像创建的流程是选择镜像->创建应用。
字段说明:
- 应用编号:应用编号,不能重复,不同集群间的应用编号也不能相同
- 部署集群:选择应用部署到指定Swarm集群
- 部署方式:应用部署方式,支持部署包创建和镜像创建两种方式,部署包方式表示通过上传应用部署包来部署应用,部署包格式目前支持tar和tar.gz包,镜像方式表示通过镜像来部署应用
- 部署包上传:上传部署包,目前支持tar和tar.gz包,该选项只有部署方式选择部署包创建时才生效
- 仓库:镜像仓库,目前支持Harbor私有仓库
- 镜像:创建应用所使用的镜像,支持展示仓库中存在的镜像列表,该选项只有部署方式选择镜像创建时才生效
- 版本:镜像的版本,支持展示镜像的版本列表,该选项只有部署方式选择镜像创建时才生效
- 调度模式:集群调度模式,支持副本和全局两种模式,副本模式表示可以手动指定集群中部署应用的实例数,swarm会根据节点的资源使用情况来进行调度和部署应用,保证应用满足相应的实例数,全局模式表示集群中每个可用节点满足有且只有一个应用实例
- 实例数:部署的实例数,该选项只有调度方式选择副本时才生效
- 端口映射:将容器内部端口映射到外部宿主机端口,保证应用从集群外可以访问,host表示宿主机端口,container表示容器端口,支持多个端口的映射,支持TCP和UDP两种协议的端口映射,默认TCP协议,并且支持Ingress和Host两种发布模式,Ingress模式表示可以保证通过Swarm集群内任一节点的IP都能访问该应用,即使当前节点没有运行应用实例,Host模式表示应用只能通过运行应用实例的节点来访问,默认Ingress模式
- 环境变量:可以给应用配置环境变量
- 数据卷:数据卷是将容器内数据直接映射到宿主机环境的指定文件目录之中,使容器可以持久化和共享数据,因为容器无法持久化数据,当容器删除的时候,容器中保存的数据会丢失。目前支持Volume和Bind两种,Volume是Docker官方提供的数据持久化目录,可以在不同宿主机系统间移植,Bind可以是宿主机系统的任意目录,不可移植。Volume和Bind都可以进行读写和只读挂载,只读挂载表示容器内无法对挂载的目录进行写操作
- 选择网络:选择应用运行的网络
- 最小内存:设置应用运行的最小内存
- 最大内存:限制应用运行的最大使用内存
- 最小CPU:设置应用运行的最小CPU
- 最大CPU:限制应用运行的最大使用CPU
- 位置约束:位置约束可以使应用部署在指定的节点上,如果有多个条件,必须所有条件都要满足
- 命令:容器启动使用的命令,覆盖Dockerfile里的ENTRYPOINT指令
- 参数:容器启动使用的命令参数,覆盖Dockerfile里的CMD指令
- 重启策略:重启策略是指应用停止后,是否重新启动应用的一个策略,支持总是、不重启和失败重试三种策略,总是表示不管遇到什么错误都进行重新启动容器,不重启表示不管遇到什么错误都不重启,失败重试表示容器以非0状态码退出时重新启动容器,可以设置重启失败的次数
- 时间间隔:重启失败后,重试之间的时间间隔,该选项只有重启策略选择失败重试时才生效
- 重试次数:重启的重试次数,该选项只有重启策略选择失败重试时才生效,默认为0
- 超时时间:重启的超时时间,在规定时间没有重启成功则表示重启失败,默认为0
部署
应用新建成功后,如果需要更新版本,就需要用到应用部署,点击部署按钮进入部署页面:
应用部署分为部署包创建和镜像创建两种方式,分为3个步骤 :
- 选择应用:选择本次部署的应用,支持同时部署多个应用。
- 获取部署包:如果是部署包创建方式,支持多种方式,本地上传:可以直接从本地上传全量部署包,版本仓库:所有的部署包最后都会上传到版本仓库,可以直接选择,SFTP获取:可以从指定的SFTP服务器获取全量部署包,服务器上传:从NTC服务器直接选择部署包;如果是镜像创建方式,支持镜像仓库获取。
2. 正在部署:应用开始部署,点击操作结果可以实时查看部署日志。
重载配置
选择需要重载配置的应用,点击重载配置按钮进行重载,可以点击操作结果查看操作日志,重载配置操作表示Swarm集群重新调度和部署当前版本和配置应用。
历史
点击历史按钮跳转到操作历史页面,通过点击列表可以查看详细应用信息和操作日志,并且可以根据时间和集群字段进行搜索。
还原
对部署类操作可以点击还原按钮将应用还原到操作前版本。
删除
点击删除按钮可以删除应用,支持删除多个应用,如果当前应用包含非docker实例,则无法删除应用,需要到资源中心删除。
收缩扩容
点击scale按钮,输入实例总数,如果输入总数小于当前总数,则为收缩操作,如果输入总数等于当前总数,则为更新操作,如果输入总数大于当前总数,则为扩容操作。只有当调度模式为副本时,收缩扩容操作才生效。
修改配置
点击配置修改按钮修改应用配置。
字段说明:
- 并行任务数:同时更新的最大实例数,默认为1,0表示同时更新所有实例。
- 时间间隔:更新之间的时间间隔。
- 失败后操作:更新后启动失败时所采取的措施,支持继续和暂停两种操作,继续表示当前更新失败后继续更新其他的实例,暂停表示当前更新失败后暂停更新后面的实例。
- 更新策略:更新任务策略,支持先启动新版本和先停止旧版本两种操作,先启动新版本表示更新时先启动新版本实例,更新成功后再停止旧版本实例,防止更新失败导致旧版本实例不可用,先停止旧版本表示更新时先停止旧版本实例,再启动新版本实例。
任务日志
点击任务日志按钮查看任务日志。
任务信息
点击任务信息按钮查看任务信息,如果任务状态不是为运行状态,可以通过任务信息查看导致任务无法成功运行的错误信息。
容器详情
点击容器详情按钮可以跳转到容器概览页面,查看容器的详细信息。
容器视图切换
点击应用视图按钮,可以跳转到应用列表页面,应用页面点击容器视图按钮,可以跳转到容器列表页面。
应用列表查看
点击应用视图按钮展示应用列表页面。
字段说明:
- 应用:应用编号,不能重复
- 应用名称:应用的名称
- 启动/总数:启动的应用实例数和应用实例总数
- 应用状态:应用状态,目前有全部启动、部分启动和全部停止三种状态
- 实例:应用实例编号,不能重复
- 实例名称:应用实例名称
- 当前版本:应用实例当前版本
- IP:应用实例IP地址
- 端口:应用探针管理端口
- 状态:实例状态
- 操作:包括容器详情和诊断
容器详情
点击容器详情按钮,跳转到容器详细信息页面。
诊断
点击诊断按钮,跳转到应用详情页面,详细操作请前往应用中心菜单->应用诊断室->诊断单元。
传统部署切换
当容器化部署应用运行出现问题或者不想继续使用容器应用,这种场景下我们需要提供传统和容器应用之间的快速一键切换,可以快速做到一键的方式切换到传统部署方式,在切换失败,支持还原操作。传统部署切换的前提是宿主机需要安装代理节点agent。
点击应用视图按钮,切换到应用页面,修改应用配置。
选择应用,点击传统部署切换按钮,将会进行容器应用和传统应用的切换,点击操作结果可以查看操作日志,点击刷新按钮可以查看最新应用状态。
传统部署还原
点击历史按钮,进入操作历史页面,点击还原按钮,将传统应用还原为容器应用,点击查询按钮可以查询还原操作的日志。