云原生容器内的一次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

相关推荐
运维栈记7 小时前
如何排错运行在Kubernetes集群中的服务?
云原生·容器·kubernetes
阿里云云原生9 小时前
直播回顾丨详解阿里云函数计算 AgentRun,手把手带你走进 Agentic AI 生产时代
云原生
叫致寒吧15 小时前
zookeeper与kafka
分布式·zookeeper·云原生
HitpointNetSuite16 小时前
云原生与 AI:NetSuite 如何塑造亚太中端市场
人工智能·云原生
Selegant16 小时前
Quarkus vs Spring Boot:谁更适合云原生时代的 Java 开发?
java·spring boot·云原生
2501_9399090517 小时前
Zookeeper及Kafka
分布式·zookeeper·云原生
古城小栈17 小时前
云原生安全:Falco 容器运行时监控
安全·云原生
运维行者_18 小时前
APM 性能监控是什么?从应用监控与网站监控了解基础概念
网络·数据库·云原生·容器·kubernetes·智能路由器·运维开发
乂爻yiyao18 小时前
Java 的云原生困局与破局
java·开发语言·云原生
会飞的小蛮猪18 小时前
K8s-1.29.2二进制安装-第三章(Master组件安装)
云原生·容器·kubernetes