我想了解如何管理部署在Kubernetes集群上的Postgres数据库。到目前为止,我可以使用Postgres映像部署一个pod。我还可以创建持久卷和持久卷声明,但有些事情我仍然不明白。
如果我有一个生产数据库,在某些时候,我需要修补数据库,该怎么做?是否有一种方法来执行SQL指令来更新模式和数据?
最简单的方法是通过端口转发连接到数据库,例如:
while true; do kubectl port-forward "$path" -n "$namespace" "$ports"; done
最好停止所有连接到这个数据库的下行pod。然后用你选择的Postgres客户端做你需要做的事情。
更健壮的是,引入一个像Flyway或Liquibase这样的工具来进行模式更改,它将在集群内部执行,并允许版本和跟踪数据库更改。