新建部署
在部署列表页面上点击“新建部署”可将镜像部署到服务内。
部署配置
在新建部署时,先添加部署名称,再根据不同配置类型进行设置。目前我们支持三种配置类型:默认类型、YAML、JSON。
默认类型
默认类型需要进行一下配置:
- 部署名称:该名称会作为内网域名的一部分,要求符合dns命名规范。
- 部署描述:部署的详情描述,默认为空,可不填。
- 部署类型:目前支持kubernetes的Deployment,DaemonSet,Replication Controller三种类型的部署。
- Deployment: 该类型部署的启动/停止/扩容/缩容/升级/回滚所有操作均有kubernetes维护;
- Replication Controller: 该类型部署的启动/停止/扩容/缩容/升级/回滚所有操作均有DomeOS来维护;
- DaemonSet: 该类型部署在选定的主机上启动且只启动一个实例,扩容缩容行为对应与主机的重新筛选。
- 实例个数:定义了部署启动时默认的实例数量。
- 集群:在已有集群中选择需要部署的集群。
- namespace:您需要选择一个已有的namespace或新建一个namespace(namespace的意义,详见集群管理的集群设置)
- 工作场景:生产或测试,该项在集群的主机配置中设置。
- 主机标签:(主机标签的意义,详见集群管理的主机设置)。定义了以上条件后,您可以查看筛选出了哪些主机,系统会在您筛选出的主机上部署您的应用。
- 网络模式:您可以选择使用overlay或host网络模式部署。注意:host模式下不能使用健康检查;更多host相关说明,详见“Host网络”部分。
- 访问模式:在overlay网络下,可以选择“禁止访问”、“对内服务”。对内服务的部署,只能在集群内通过内网域名访问,并且支持粘性会话。在host网络下,可以选择“禁止访问”和“允许访问”。如果允许访问,则需要指定暴露的端口数。配置好之后,点击“下一步”进行容器配置。DomeOS v0.6版以后,支持通过“复制已有部署”的方式,快速、方便的使用已有部署的配置来配置新的部署,并可在其基础上进行修改。
镜像配置:您要选择需要部署的镜像。由于DomeOS集群采用Kubernetes架构,您可以在一次部署时选择多个镜像同时部署。每个镜像会启动一个容器,各个镜像的容器整体构成一个实例(Pod)。实例是升级回滚、扩容缩容等部署运维管理的最小单位。选好镜像后,您需要对每个镜像进行配置。选择镜像版本、是否开启自动部署、设定拉取策略、挂载存储、添加配置、添加启动命令与启动参数、添加环境变量、设定容器大小和健康检查、就绪性检查、添加日志。
挂载存储:需要指定存储类型、挂载类型、存储挂载路径及该存储所挂载容器的具体位置。目前DomeOS支持的存储类型有主机目录和实例内目录两种,挂载类型又只读和读写两种,路径需要指定到运行容器的绝对路径。
- 主机目录(HostPath)需要指定运行主机上的绝对路径,这就需要保证该路径在部署实例运行的主机上存在并可用,该路径下所有文件的修改会同步到主机上的对应路径。
- 实例内目录(EmptyDir)是为了一个实例内多种镜像公用存储路径时使用,该路径下所有存储文件与实例具有相同的生命周期,当实例销毁时所有文件也立即销毁。
- 自动部署(请慎用!):开启后,当通过工程构建产生该镜像的新版本时,会自动触发升级。该功能应该只针对运行中状态的部署生效,其他状态的部署不受影响。若运行中部署同时存在多个版本,则不触发自动升级。拥有developer以上权限的人可以配置跟随升级,跟随升级不需要在项目中配置。
- 日志:需要输入日志文件的所在路径,并选择是否自动收集和自动删除。日志收集采用kafka+flume形式,通过flume采集日志并上传到kafka里,要使用日志收集功能需要在集群下配置日志收集参数,日志收集功能只针对默认类型配置。日志收集时我们会在启动pod中增加一个flume镜像,镜像内容可以参考:https://github.com/domeos/domeos-flume可以根绝该开源flume镜像进行相应的定制化。日志收集分为自动收集日志与自动删除日志:
如上图所示,自动收集日志与删除日志都需要针对到具体的文件名日志topic是需要提前在kafka种创建flume的日志收集镜像是通过配置了tail -F $LOGFILE进行日志,可以在之后增加具体的预处理命令,该命令必须以 "|" 开头删除日志是距上次文件修改时间起多少小时触发删除命令。
完成所有配置后,点击“提交”。
YAML/JSON配置
yaml,json自定义配置,这里只支持PodSpec的自定义配置对于部署的配置类型,一旦在创建时指定就不可以修改,升级回滚,扩容缩容操作只能针对一种部署的配置类型。在选择完成yaml或者json的相应参数后,DomeOS会生成已有的kubernetes rc参数,这部分内容由于需要和部署相关,所以不能提供修改。而PodSpec配置需要用户自己填写,需要注意的是,这里用户不需要输入配置开头的Spec,只用输入PodSpec的内容即可。同时,我们提供了基于yaml和json的配置样例,供用户参考,点击配置样例则生成对应的配置样例。
- 注:PodSpec定义参考http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_podspecYaml的配置样例如下:
containers:
- image: "pub.domeos.org/registry:2.3"
name: "test-container"
volumeMounts:
- mountPath: "/test-hostpath"
name: "test-volume"
volumes:
- hostPath:
path: "/opt/scs"
name: "test-volume"
Json的配置样例如下:
{
"containers": [{
"image": "pub.domeos.org/registry:2.3",
"name": "test-container",
"volumeMounts": [{
"mountPath": "/test-hostpath",
"name": "test-volume"
}]
}],
"volumes": [{
"hostPath": {
"path": "/opt/scs"
},
"name": "test-volume"
}]
}
YAML和JSON所需基础配置相同,包括了实例个数、集群、工作场景、namespace、访问设置。
配置好之后,点击下一步,对YAML/JSON进行配置。您可以选择自己输入相应代码,或者点击“配置样例”,对样例进行修改。
完成所有配置后,点击“提交”