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