总结: 我认为有一种方法可以暂时禁用对 pod/服务的访问,以便进行维护。在这种情况下:阻止对数据库的访问,以便可以恢复转储。
$ kubectl exec podwith-postgresql-59b77ffb7d-fc4xj dropdb dbname
dropdb: database removal failed: ERROR: database "dbname" is being accessed by other users
DETAIL: There are 10 other sessions using the database.
仅将 ReplicaSet 重新缩放为 0 或终止 Pod 并没有成功,因为 Kubernetes(或 Helm?)可以很好地恢复。
背景: 具体来说,我正在更新依赖于 Postgresql 图表作为默认数据库的 Helm 图表。在尝试升级之前,我做了应尽的调查并对数据库进行了 sql 转储。然后,事情变得一团糟,我想恢复转储,但由于创建了一个新的空数据库并且应用程序已在运行,我无法删除或替换现有数据库,因为与它有活动连接。