新建部署

在部署列表页面上点击“新建部署”可将镜像部署到服务内。

新建部署 - 图1

部署配置

在新建部署时,先添加部署名称,再根据不同配置类型进行设置。目前我们支持三种配置类型:默认类型、YAML、JSON。

默认类型

默认类型需要进行一下配置:

  • 部署名称:该名称会作为内网域名的一部分,要求符合dns命名规范。
  • 部署描述:部署的详情描述,默认为空,可不填。
  • 部署类型:目前支持kubernetes的DeploymentDaemonSetReplication Controller三种类型的部署。
    • Deployment: 该类型部署的启动/停止/扩容/缩容/升级/回滚所有操作均有kubernetes维护;
    • Replication Controller: 该类型部署的启动/停止/扩容/缩容/升级/回滚所有操作均有DomeOS来维护;
    • DaemonSet: 该类型部署在选定的主机上启动且只启动一个实例,扩容缩容行为对应与主机的重新筛选。
  • 实例个数:定义了部署启动时默认的实例数量。
  • 集群:在已有集群中选择需要部署的集群。
  • namespace:您需要选择一个已有的namespace或新建一个namespace(namespace的意义,详见集群管理的集群设置)
  • 工作场景:生产或测试,该项在集群的主机配置中设置。
  • 主机标签:(主机标签的意义,详见集群管理的主机设置)。定义了以上条件后,您可以查看筛选出了哪些主机,系统会在您筛选出的主机上部署您的应用。
  • 网络模式:您可以选择使用overlay或host网络模式部署。注意:host模式下不能使用健康检查;更多host相关说明,详见“Host网络”部分。
  • 访问模式:在overlay网络下,可以选择“禁止访问”、“对内服务”。对内服务的部署,只能在集群内通过内网域名访问,并且支持粘性会话。在host网络下,可以选择“禁止访问”和“允许访问”。如果允许访问,则需要指定暴露的端口数。新建部署 - 图2新建部署 - 图3配置好之后,点击“下一步”进行容器配置。DomeOS v0.6版以后,支持通过“复制已有部署”的方式,快速、方便的使用已有部署的配置来配置新的部署,并可在其基础上进行修改。新建部署 - 图4
  • 镜像配置:您要选择需要部署的镜像。由于DomeOS集群采用Kubernetes架构,您可以在一次部署时选择多个镜像同时部署。每个镜像会启动一个容器,各个镜像的容器整体构成一个实例(Pod)。实例是升级回滚、扩容缩容等部署运维管理的最小单位。选好镜像后,您需要对每个镜像进行配置。选择镜像版本、是否开启自动部署、设定拉取策略、挂载存储、添加配置、添加启动命令与启动参数、添加环境变量、设定容器大小和健康检查、就绪性检查、添加日志。

    • 挂载存储:需要指定存储类型、挂载类型、存储挂载路径及该存储所挂载容器的具体位置。目前DomeOS支持的存储类型有主机目录实例内目录两种,挂载类型又只读和读写两种,路径需要指定到运行容器的绝对路径。

      • 主机目录(HostPath)需要指定运行主机上的绝对路径,这就需要保证该路径在部署实例运行的主机上存在并可用,该路径下所有文件的修改会同步到主机上的对应路径。
      • 实例内目录(EmptyDir)是为了一个实例内多种镜像公用存储路径时使用,该路径下所有存储文件与实例具有相同的生命周期,当实例销毁时所有文件也立即销毁。新建部署 - 图5
    • 自动部署(请慎用!):开启后,当通过工程构建产生该镜像的新版本时,会自动触发升级。该功能应该只针对运行中状态的部署生效,其他状态的部署不受影响。若运行中部署同时存在多个版本,则不触发自动升级。拥有developer以上权限的人可以配置跟随升级,跟随升级不需要在项目中配置。

新建部署 - 图6

新建部署 - 图7

  • 日志:需要输入日志文件的所在路径,并选择是否自动收集和自动删除。日志收集采用kafka+flume形式,通过flume采集日志并上传到kafka里,要使用日志收集功能需要在集群下配置日志收集参数,日志收集功能只针对默认类型配置。日志收集时我们会在启动pod中增加一个flume镜像,镜像内容可以参考:https://github.com/domeos/domeos-flume可以根绝该开源flume镜像进行相应的定制化。日志收集分为自动收集日志与自动删除日志:

新建部署 - 图8

如上图所示,自动收集日志与删除日志都需要针对到具体的文件名日志topic是需要提前在kafka种创建flume的日志收集镜像是通过配置了tail -F $LOGFILE进行日志,可以在之后增加具体的预处理命令,该命令必须以 "|" 开头删除日志是距上次文件修改时间起多少小时触发删除命令。

完成所有配置后,点击“提交”。

YAML/JSON配置

yaml,json自定义配置,这里只支持PodSpec的自定义配置对于部署的配置类型,一旦在创建时指定就不可以修改,升级回滚,扩容缩容操作只能针对一种部署的配置类型。在选择完成yaml或者json的相应参数后,DomeOS会生成已有的kubernetes rc参数,这部分内容由于需要和部署相关,所以不能提供修改。而PodSpec配置需要用户自己填写,需要注意的是,这里用户不需要输入配置开头的Spec,只用输入PodSpec的内容即可。同时,我们提供了基于yaml和json的配置样例,供用户参考,点击配置样例则生成对应的配置样例。

  1. containers:
  2. - image: "pub.domeos.org/registry:2.3"
  3. name: "test-container"
  4. volumeMounts:
  5. - mountPath: "/test-hostpath"
  6. name: "test-volume"
  7. volumes:
  8. - hostPath:
  9. path: "/opt/scs"
  10. name: "test-volume"

Json的配置样例如下:

  1. {
  2. "containers": [{
  3. "image": "pub.domeos.org/registry:2.3",
  4. "name": "test-container",
  5. "volumeMounts": [{
  6. "mountPath": "/test-hostpath",
  7. "name": "test-volume"
  8. }]
  9. }],
  10. "volumes": [{
  11. "hostPath": {
  12. "path": "/opt/scs"
  13. },
  14. "name": "test-volume"
  15. }]
  16. }

YAML和JSON所需基础配置相同,包括了实例个数、集群、工作场景、namespace、访问设置。

新建部署 - 图9

配置好之后,点击下一步,对YAML/JSON进行配置。您可以选择自己输入相应代码,或者点击“配置样例”,对样例进行修改。

新建部署 - 图10新建部署 - 图11

完成所有配置后,点击“提交”