2.1 KiB
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;"