postgresql - 在 Kubernetes 集群中使用 pgAdmin 访问数据库
问题描述
在我当前的非 Kubernetes 环境中,如果我需要访问 Postgres 数据库,我只需设置一个 SSH 隧道:
ssh -L 5432:localhost:5432 user@domain.com
我试图弄清楚如何在我在 EKS 中设置的测试 Kubernetes 集群中做类似的事情,这不会带来很大的安全风险。例如,在入口控制中创建到数据库端口的路径是一个糟糕的主意。
集群将设置在 Postgres 位于 pod 中的位置,但所有数据都在持久卷声明中,因此当 pod 被销毁时数据仍然存在。
在这种设置中如何使用 pgAdmin 访问数据库?
解决方案
该kubectl
命令可以通过 kube-api将 TCP 端口转发到 POD
kubectl port-forward {postgres-pod-ID} 5432:5432
如果您不使用 cluster-admin 用户,则该用户需要绑定到允许其create
pods/portforward
在 pod 命名空间中的角色。
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: pg-portforward
rules:
- apiGroups: [""]
resources: ["pods/portforward"]
verbs: ["create"]
推荐阅读
- apache-spark - 在本地模式下理解 spark.default.parallelism
- airflow - 气流 dag 中两个任务之间的数据共享
- python - 如何添加一天以使其与原始日期时间相等?
- javascript - 创建堆叠预算与实际图表
- javascript - 使用 aspnet/signalr 通过 React 访问 Signal R
- ios - 在 Swift 中访问嵌套的 Firebase 数据
- php - gmail登录后cookie被删除
- azure-devops - 管道阶段执行不工作的条件
- php - 删除与模式 Laravel 5.7 匹配的 Redis 键
- amazon-sqs - 使用带有 amazon SQS 的一个队列的 Masstransit 的简单示例