DockerCompose支持规范
用户提供可以正常运行的 DockerCompose 定义文件,Rainbond 将解析此文件并分别读取内部的所有组件的关键配置,包括:组件名称、镜像名称及仓库地址、环境变量、依赖关系(启动顺序)、持久化存储、组件端口。基于这些属性创建 Rainbond 组件抽象,再通过 Rainbond 的组件抽象模型的管理运行机制部署于底层的 Kubernetes 集群。从而实现 DockerCompose 到 Kubernetes 的转化。
其中较为关键的是依赖关系、DockerCompose 中组件之间建立依赖关系使用的是 Docker 的同网络空间原理,结合 Docker 默认的 DNS 组件对依赖组件别名进行域名解析从而实现组件间通信。这种模式在 Kubernetes 场景中无法直接实现,但是基于 Rainbond 的默认 ServiceMesh 机制,就实现了一直的效果,Rainbond dns 组件将解析组件别名到, 组件通过别名访问其他组件时,实际就是访问组件本地的代理,本地的 ServiceMesh Sidecar 容器完成组件动态发现和负载均衡。 从效果上看与单机运行的 DockerCompose 是一致的,但是实际上整个应用已经是在集群环境下分布式运行,每一个组件都可以运行多个实例。
创建方式及注意事项
有以下几点注意事项
- 如果 DockerCompose 配置中设置有需要读取环境变量的信息,请先手动完成更改。Rainbond 不支持动态基于环境变量渲染 DockerCompose 配置。
- 确保 yaml 格式的 DockerCompose 配置正常,否则无法通过检测。
- 5.1.3 及以后版本中 Rainbond 只会从 DockerCompose 配置中读取属性,不再从镜像从解析属性。尽量将有用的属性信息(环境变量、端口、存储)显式配置。
镜像仓库账号密码设置
- 整体设置
在 DockerCompose 表单设置中可以添加镜像仓库账号密码,此设置将在此 DockerCompose 中的所有镜像生效,如果个别镜像不需要账号密码或账号不同,请使用分别设置方式。
设置账号
设置密码