k8s部署的pod中如何修改Postgres数据库的配置。

一般在k8s的生产环境中的pod运行Postgre数据库都会同步运行Patroni进程。

1.首先进入数据库运行所在的pod 

kubectl exec -it -n [命名空间]  [pod名]

2.使用Patroni修改数据库配置。

patronictl edit-config [pod名]

3.此时就已经进入到数据库配置文件中来了。

4.接下来就是vim操作修改你要改的配置,然后wq保存配置

[root@postgres-database-cluster-1-0 data]# patronictl edit-config postgres-database-cluster-1
---
+++
@@ -18,7 +18,7 @@
     log_min_duration_statement: 500
     log_statement: ddl
     log_temp_files: 0
-    max_connections: 200
+    max_connections: 300
     max_replication_slots: 10
     max_wal_senders: 30
     port: 5432
 
Apply these changes? [y/N]: y
Configuration changed
~

5.退出后会看到提示你修改的配置并询问你是否保存 y 就可以。
此时还没有修改成功!。

6.在pod内重启一下postgres服务,重启完成后配置就会生效,此时就可以登入数据库检查配置是否生效了。

如果不知道如何重启可以 ps -ef | grep postgres 查到对应id 然后kill -9 这个进程号,等待重新拉起就行。(当然要containerd接管才行)

注意:kubectl delete pod 重新拉起的pod并不能更新配置。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes部署 PostgreSQL 数据库后,您可以使用 Kubernetes 提供的 StatefulSet 和 Persistent Volume Claim(PVC)来管理数据库实例和数据卷。要备份 PostgreSQL 数据库,您可以使用 Kubernetes CronJob 和 Kubernetes 提供的 PostgreSQL 客户端工具,如 pg_dump 和 pg_dumpall。 以下是备份 PostgreSQL 数据库的基本步骤: 1. 创建一个 CronJob 对象来定期运行备份任务。例如,以下 CronJob 配置将在每天凌晨 2 点运行备份任务: ```yaml apiVersion: batch/v1beta1 kind: CronJob metadata: name: pg-backup spec: schedule: "0 2 * * *" jobTemplate: spec: template: spec: containers: - name: pg-backup image: postgres:latest command: - /bin/bash - -c - pg_dump -U <username> -h <host> -d <database> > /backup/$(date +%Y-%m-%d_%H-%M-%S).sql env: - name: PGPASSWORD valueFrom: secretKeyRef: name: pg-secret key: password volumeMounts: - name: backup mountPath: /backup restartPolicy: OnFailure volumes: - name: backup persistentVolumeClaim: claimName: backup-pvc ``` 这里的 CronJob 会定期运行一个带有 pg_dump 命令的容器,将备份文件保存到名为 backup 的卷。您需要将 <username>、<host> 和 <database> 替换为您要备份的 PostgreSQL 数据库的用户名、主机和数据库名称。 2. 创建一个 PVC 以管理备份文件的持久化存储。例如,以下 PVC 配置将创建一个名为 backup-pvc 的 PVC,并将其绑定到名为 backup 的卷: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: backup-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` 这里的 PVC 会请求 10Gi 的存储空间,并将其绑定到一个可读写的节点上。 3. 创建一个 Secret 对象以存储 PostgreSQL 数据库的密码。例如,以下 Secret 配置将创建一个名为 pg-secret 的 Secret,其包含名为 password 的键和密码值: ```yaml apiVersion: v1 kind: Secret metadata: name: pg-secret type: Opaque data: password: <base64-encoded-password> ``` 这里的 <base64-encoded-password> 是经过 base64 编码的 PostgreSQL 数据库密码。 备份完成后,您可以使用 Kubernetes 提供的工具和命令来管理备份文件,例如使用 kubectl cp 命令将备份文件复制到本地计算机,或使用 kubectl logs 命令查看备份任务的日志。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值