我已经在 Kubernetes(由 Rancher 管理的 k3s)中设置了 Postgres,它似乎运行良好,但为了查看数据库,我尝试添加一个 pgadmin4 pod。
我首先尝试添加图像dpage/pgadmin4
而不进行任何其他配置(除了端口 80 的节点端口以及 PGADMIN_DEFAULT_EMAIL 和 PGADMIN_DEFAULT_PASSWORD 环境变量),出现以下错误,从那时起尝试了一些事情:
0.0.0.0
如果不支持 IPv6,请将 PGADMIN_LISTEN_ADDRESS 环境变量设置为- 为 /var/lib/pgadmin 添加卷挂载(来自 longhorn)
pod 启动失败,日志消息如下:
NOTE: Configuring authentication for SERVER mode.
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
[2022-03-30 08:27:31 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2022-03-30 08:27:31 +0000] [1] [ERROR] Retrying in 1 second.
[2022-03-30 08:27:32 +0000] [1] [ERROR] Retrying in 1 second.
[2022-03-30 08:27:33 +0000] [1] [ERROR] Retrying in 1 second.
[2022-03-30 08:27:34 +0000] [1] [ERROR] Retrying in 1 second.
[2022-03-30 08:27:35 +0000] [1] [ERROR] Retrying in 1 second.
[2022-03-30 08:27:36 +0000] [1] [ERROR] Can't connect to ('0.0.0.0', 80)
似乎有两点不对:
- sudo 错误,这是由于 pgadmin4 以用户 ID 5050 开头导致的,但我不知道如何解决这个问题
- gunicorn 无法监听 80 端口
我不太熟悉 Kubernetes,所以我不知道有哪些方法可以解决这个问题。
在此先感谢您的帮助。
答案1
在自己使用 Rancher 在 Kubernetes 上排除故障后,我发现您需要一个 init 容器才能开始使用。从 UI 来看,这可能有点棘手,但您必须转到工作负载部分才能找到它。(单击省略号)。确保将您的 pgadmin 卷安装在特定位置,为了方便起见,我们将其称为 /var/lib/pgadmin
使用图像busybox并运行命令:
chown -vR 5050:5050 /var/lib/pgadmin
然后您还需要将部署的环境变量设置为高于 1024 的值,我选择了 5050,使用环境变量:
PGADMIN_LISTEN_PORT: 5050