
stackgres/jobsStackGres Operator Kubernetes Jobs 容器镜像是 StackGres 开源项目([***] StackGres Operator 管理 PostgreSQL 集群时所需的 Kubernetes Jobs 任务。该镜像与 StackGres Operator 深度集成,负责执行各类数据库运维自动化任务,是 StackGres 实现 PostgreSQL 集群生命周期管理的关键支撑。
SGCluster、SGBackup、SGRecovery 等)深度联动,支持通过自定义资源配置任务参数。SGBackupConfig CRD,执行定时或手动触发的 PostgreSQL 全量/增量备份。SGRecovery CRD 触发数据恢复任务,支持基于备份集或时间点的恢复。postgresql.conf)变更后,执行配置同步与服务重载任务。该镜像通常由 StackGres Operator 自动调度和管理,无需用户手动运行。任务触发及参数配置通过 StackGres 自定义资源(CRD)完成。以下为关键使用流程和配置项说明。
通过创建/更新 StackGres CRD 触发对应任务,Operator 会自动生成并调度 Kubernetes Job,使用本镜像执行具体操作。常见触发场景:
| 任务类型 | 触发方式 | 关联 CRD |
|---|---|---|
| 备份任务 | 创建 SGBackup 资源或配置 SGBackupConfig 自动备份 | SGBackup、SGBackupConfig |
| 恢复任务 | 创建 SGRecovery 资源指定恢复源 | SGRecovery |
| 初始化配置 | 创建 SGCluster 资源时指定初始化脚本 | SGCluster |
任务参数通过 CRD 字段定义,Operator 会将其转换为环境变量或配置文件注入 Job 容器。核心参数示例:
| 参数类别 | 说明 | CRD 配置路径示例 |
|---|---|---|
| 数据库连接信息 | PostgreSQL 实例地址、端口、用户名、密码(由 Operator 从 Secrets 自动注入) | SGCluster.spec.postgres.exporter.user |
| 备份任务参数 | 备份类型(全量/增量)、存储位置(S3/GCS/本地)、压缩算法 | SGBackup.spec.backupType、SGBackupConfig.spec.storage |
| 恢复任务参数 | 恢复源(备份 ID 或时间点)、目标集群 | SGRecovery.spec.source、SGRecovery.spec.target |
Job 容器运行时由 Operator 注入的关键环境变量(部分示例):
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
POSTGRES_HOST | 目标 PostgreSQL 实例地址 | my-postgres-cluster-primary |
POSTGRES_PORT | 数据库端口 | 5432 |
POSTGRES_USER | 数据库用户名(具备运维权限) | stackgres_replication |
BACKUP_TYPE | 备份类型 | full(全量)/ incremental(增量) |
STORAGE_BACKEND | 备份存储后端 | s3 / gcs / local |
创建 SGBackup 资源触发手动备份(需提前配置 SGBackupConfig):
yamlapiVersion: stackgres.io/v1 kind: SGBackup metadata: name: manual-backup-01 namespace: stackgres spec: sgCluster: my-postgres-cluster # 目标集群名称 sgBackupConfig: default-backup-config # 引用的备份配置
应用后,StackGres Operator 会自动创建 Kubernetes Job,使用本镜像执行备份任务,可通过 kubectl get jobs -n stackgres 查看任务状态。
如需调试,可手动运行镜像(需挂载必要的 Secrets 和配置文件):
bashdocker run -it --rm \ -e POSTGRES_HOST=my-postgres-cluster-primary \ -e POSTGRES_PORT=5432 \ -e POSTGRES_USER=stackgres_replication \ -e POSTGRES_PASSWORD=$(kubectl get secret -n stackgres my-postgres-cluster-postgres-secret -o jsonpath='{.data.password}' | base64 -d) \ -e BACKUP_TYPE=full \ stackgres/jobs:latest # 替换为实际镜像标签(如 1.5.0)
kubectl logs <job-pod-name> -n <namespace> 查看,用于故障排查。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务