PostgreSQL服务部署

1、部署服务

部署服务,公共的操作参考mysql配置,这里不再重复。

名称:dmm-pg12 (自定义,该名称同时做为服务名)

Docker镜像:172.16.102.2:5000/library/bitnami/postgresql:12.10.0

容器端口:5432(这里通过NodePort方式暴露,方便开发时连接)

环境变量:

POSTGRESQL_POSTGRES_PASSWORD:xxxxxxxx(postgres 账号密码)

POSTGRESQL_DATABASE:imp_adb (创建一个imp_adb数据库,根据业务自定义)

POSTGRESQL_USERNAME:imp (imp_adb数据库的用户)

POSTGRESQL_PASSWORD:xxxxxx (imp_adb数据库的用户密码)

1679909678170

配置PVC存储卷,根据业务自定义容量,请匆设置过大

1679909724908

容器路径:/bitnami/postgresql 子路径:postgresql (先这样配置,启动会失败,子路径是用于跟初始化容器对应)

1679984723956

容器启动错误:mkdir: cannot create directory ‘/bitnami/postgresql/data’: Permission denied ,因为当前容器没有权限将data的目录挂载到存储上,需要通过初始化容器,先进行授权。

2、添加初始化容器

初始化容器的目的是先创建一个目录,然后将权限提升,再启动pg数据库容器时才有权限将数据写入目录。

通过应用右侧的菜单选择添加Sidecar

1679983681428

名称:pd-data-directory-init (这个名称随意)

Sidecar类型:Init容器

Docker镜像:172.16.102.2:5000/library/busybox:1.36.0 (选择busybox是因为该容器很小,只有2M多)

1679983755508

  • 点击添加映射显示高级选项(命令在高级选项中)

1679983780617

添加映射,在创建的PVC添加

容器路径:/bitnami (这个也随意,保持跟镜像中的路径目录一致,这个目录是在busybox容器创建,我们目的是为了创建一个PG的数据目录,把这个目录写到对象存储中)

命令:sh -c 'mkdir -p /bitnami/postgresql && chmod 777 /bitnami/postgresql' 这个命令的目的是在容器路径/bitnami(这个需要一致)下创建一个postgresql目录,同时把该目录权限提升到最大(该权限可自行调整,只要容器有权限写入数据即可)

1679984647542

3、测试连接

配置完成后,点击启动,启动成功后,通过NodePort暴露的端口进行访问.

启动后,显示出来的端口,如:20683则为pg映射出来的端口,测试集群通过:172.16.103.10 进行服务器连接

1679918190089

1679918172063

上次更新:
编辑者: 李贤伟