k8s部署odoo18(kubeshpere面板)

发布于:2024-12-18 ⋅ 阅读:(143) ⋅ 点赞:(0)

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 来重新安装该模块。

在这里插入图片描述
如果你使用的是 DockerKubernetes 中的容器启动 Odoo。例如,在 DockerfileKubernetesargs 配置中,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_HOST
    value: "your-database-service"  # 数据库服务的名称或 IP 地址
  - name: DB_PORT
    value: "5432"  # 默认的 PostgreSQL 端口
  - name: DB_USER
    value: "your_db_user"
  - name: DB_PASSWORD
    value: "your_db_password"

确保 DB_HOST, DB_PORT, DB_USER, 和 DB_PASSWORD 环境变量在 Odoo Pod 中可用。

在这里插入图片描述
完成了之后点击创建
在这里插入图片描述

3.创建外部访问服务

在这里插入图片描述

基本信息
在这里插入图片描述
指定工作负载
在这里插入图片描述
在这里插入图片描述
完成了之后点击下一步

在这里插入图片描述
最后勾选外部访问,选择 NodePort 即可点击创建
在这里插入图片描述
IP为k8s任意节点,端口为30326
在这里插入图片描述
默认账户密码为:admin/admin