云原生容器内的一次pg_repack排错和解决过程

postgresql的pg_repack 这个cronjob一直执行不了。

排错过程:

  1. 用命令 kubectl describe job pg-repack-scheduler-manual-wv82r -n xxx没有查看用有用信息
  2. 想办法进它启动的pod查看,于是在执行pg_repack.sh命令前,先加一个睡眠时间,如下:
yaml 复制代码
- command:
  - sh
  - -c
  - sleep 60000 && ./pg_repack.sh
  1. run cronjob, 进入其起来后的pod, 手动执行./pg_repack.sh,可以看到报错信息是pg_repack 和postgresal数据库里面的版本不匹配
html 复制代码
pg_repack failed with error: program 'pg_repack 1.4.7' does not match database library 'pg_repack 1.4.8'

解决过程

  1. 将Dockerfile中的pg_repack下载地址改掉

  2. 用podman 重新构建image,并上传到远程仓库.(如果是docker,命令中直接把podman换成docker就行了)

powershell 复制代码
podman build -t gxxx.io/xxx/pg-repack:1.4.8-13.5 .
podman images
podman push gxxx.io/xxx/pg-repack:1.4.8-13.5

注意,如果在执行pg_repack命令时,如:pg_repack --dry-run --table category_aspects,遇到如下错误

ERROR: pg_repack failed with error: You must be a superuser to use pg_repack

此时,可以在命令后面加-k 参数掠过superuser检查pg_repack --dry-run --table category_aspects -k

相关推荐
阿里云云原生41 分钟前
告别 30 分钟故障演练!ChaosBlade AI 让混沌工程像“聊天”一样简单
人工智能·阿里云·云原生·chaosblade
IT策士1 小时前
第30篇 k8s之Ingress 基础:域名路由与 Ingress Controller
云原生·容器·kubernetes
Dongwoo Jeong14 小时前
微服务架构(MSA)是如何诞生的?
微服务·云原生·架构
半旧夜夏14 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
阿里云云原生14 小时前
实战解析:如何用自然语言驱动混沌工程?Blade AI Agent 实现故障演练全链路自动化
云原生
张忠琳15 小时前
【kubernetes v1.21】(kubelet 1)Kubelet 核心架构与启动流程
云原生·架构·kubernetes·kubelet
宇明一不急17 小时前
k8s HPA storageclass configmap
云原生·容器·kubernetes
ZzzZZzzzZZZzzzz…19 小时前
Docker + K8s集群搭建实战:1 Master+2 Node,含Harbor私有仓库与软路由
docker·云原生·容器·kubernetes·容器编排·集群部署·cri-dockerd
Waay20 小时前
K8s新手实操|emptyDir卷超详细实战(附完整命令+核心理解)
云原生·容器·kubernetes
liux352820 小时前
K8s 核心接口:CNI、CSI、CRI、LB 一篇讲透
云原生·容器·kubernetes