Postgresql部署
链接: kubesphere搭建 postgres15
 因为我的是在另一台服务器使用kubesphere进行部署的,如果有和我一样情况的,可以参考上面的文档部署postgreasql。
注意事项:
 因为odoo不允许使用postgresql的默认用户,也就是postgres用户,因此我们需要创建一个其他的用户,此处我使用navicat进行演示如何创建用户
 
 
 说明:
 此处的可以创建数据库务必勾选,因为odoo会默认创建数据库,只有勾选了他才有权限进行创建
 其他的可以登录也要勾选,其他的可选择性的勾选,然后填写用户名和密码后,点击左上角的保存即可
odoo部署
1.创建configMap(字典配置)
 

 

odoo.conf内容
[options]
db_host = 数据库地址
db_name = 用户账号
db_user = 数据库名称
db_password = 用户密码
db_port = 端口号2.创建工作负载

 编辑基本信息
 
 配置容器组
#推荐使用国内镜像,否则k8s会出现拉不下的情况
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/odoo:18

配置容器端口

 勾选启动命令
 填写参数
-i base
解释:
 -i 参数是 --init 的简写,用于初始化(安装)指定的模块。
 base 是 Odoo 的一个核心模块,它是所有 Odoo 实例所依赖的基础模块。
 这会执行以下操作:
- 安装基础模块:Odoo 会安装 base 模块,这是 Odoo 系统的基础模块,提供了很多核心功能,如用户和权限管理、语言支持、公司配置等。
- 初始化数据库:如果是第一次启动 Odoo,base 模块会被用来初始化数据库的基本表结构和配置,确保 Odoo 能够正常启动并使用数据库。
- 可能会影响其他模块的安装:在安装 base 模块时,Odoo 可能会检查其他模块的依赖关系,并根据需要安装相关模块。
使用场景:
- 首次部署:在新环境下,通常会通过指定 -i base来初始化 Odoo 系统的基本模块和数据库结构。
- 数据库恢复后:如果你恢复了一个数据库,但没有安装过基本模块,或者出现了一些与 base 模块相关的问题,可以使用 -i base 来重新安装该模块。

 如果你使用的是 Docker 或 Kubernetes 中的容器启动 Odoo。例如,在 Dockerfile 或 Kubernetes 的 args 配置中,wait-for-psql.py 需要正确的参数:
python3 wait-for-psql.py --db_host $DB_HOST --db_port $DB_PORT --db_user $DB_USER --db_password $DB_PASSWORD --timeout 30
配置存储
 选择刚才创建好的字典,选择只读,挂载到/etc/odoo/即可
 
 
 如果没有配置odoo.conf可以使用环境变量,例如,在 Kubernetes Deployment 配置文件(YAML)中:
env:- name: DB_HOSTvalue: "your-database-service"  # 数据库服务的名称或 IP 地址- name: DB_PORTvalue: "5432"  # 默认的 PostgreSQL 端口- name: DB_USERvalue: "your_db_user"- name: DB_PASSWORDvalue: "your_db_password"
确保 DB_HOST, DB_PORT, DB_USER, 和 DB_PASSWORD 环境变量在 Odoo Pod 中可用。

 完成了之后点击创建
 
3.创建外部访问服务

基本信息
 
 指定工作负载
 
 
 完成了之后点击下一步

 最后勾选外部访问,选择 NodePort 即可点击创建
 
 IP为k8s任意节点,端口为30326
 
 默认账户密码为:admin/admin