Files
k3s/010-中间件/002-postgresql/readme.md
2026-02-05 00:11:05 +08:00

2.1 KiB

PostgreSQL 16 部署说明

配置信息

  • 命名空间: postgresql
  • 版本: PostgreSQL 16 (Alpine)
  • 存储: 使用 Longhorn 提供 10Gi 持久化存储
  • 内存限制: 2GB
  • 访问地址: postgresql-service.postgresql.svc.cluster.local:5432

默认凭证

  • 用户名: postgres
  • 密码: postgres123
  • 数据库: postgres

⚠️ 安全提示: 生产环境请修改默认密码!

部署方式

bash deploy.sh

数据库配置

连接设置

  • 最大连接数: 100
  • 监听地址: 所有接口 (*)

内存配置

  • shared_buffers: 256MB
  • effective_cache_size: 1GB
  • work_mem: 4MB

WAL 配置

  • wal_level: replica (支持主从复制)
  • max_wal_size: 1GB

日志配置

  • 记录所有 SQL 语句
  • 记录执行时间

连接测试

在集群内部测试连接:

kubectl run pg-test --rm -it --image=postgres:16-alpine --env="PGPASSWORD=postgres123" -- psql -h postgresql-service.postgresql.svc.cluster.local -U postgres -c "SELECT version();"

数据持久化

PostgreSQL 数据存储在 Longhorn 卷上:

  • 数据目录: /var/lib/postgresql/data/pgdata
  • 可以通过 Longhorn UI 创建快照和备份到 S3

常用操作

查看日志

kubectl logs -n postgresql postgresql-0 -f

进入数据库

kubectl exec -it -n postgresql postgresql-0 -- psql -U postgres

创建新数据库

kubectl exec -n postgresql postgresql-0 -- psql -U postgres -c "CREATE DATABASE myapp;"

创建新用户

kubectl exec -n postgresql postgresql-0 -- psql -U postgres -c "CREATE USER myuser WITH PASSWORD 'mypassword';"
kubectl exec -n postgresql postgresql-0 -- psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE myapp TO myuser;"

备份与恢复

手动备份

kubectl exec -n postgresql postgresql-0 -- pg_dump -U postgres postgres > backup.sql

恢复备份

cat backup.sql | kubectl exec -i -n postgresql postgresql-0 -- psql -U postgres postgres

监控

查看数据库状态:

kubectl exec -n postgresql postgresql-0 -- psql -U postgres -c "SELECT * FROM pg_stat_activity;"