gpt4 book ai didi

kubernetes - kubectl 端口转发到远程 postgres 端口

转载 作者:行者123 更新时间:2023-12-02 01:47:27 24 4
gpt4 key购买 nike

尝试打开 Postgres 端口 5432 以便可以从我的本地计算机访问它。该端口仅从 kubernetes pod 打开。

127.0.0.1:5432 <====> kubernetes-pod <=====> Postgres Server

基本上我想让端口 5432 可以通过我的本地机器访问,该端口只能从 kubernetes-pod 访问。我该怎么做。

我试过,如果 postgres 服务器运行在同一个 pod 上,我认为这会起作用,而我的情况不是这样:

kubectl port-forward pod-5bf5c7df9b-xcjsf 5433:5432

注意:PostgreSQL 服务器作为独立的数据库服务器运行,只有 pod 可以访问该端口,我想从我的本地计算机访问 PostgreSQL 数据库端口。

最佳答案

完成此操作的最简单和最佳方法是在 pod 中使用 socat

您可以使用 alpine/socat container image创建 pods 。然后在这个 pod 中使用 port-forward,它将连接转发到目标数据库。

步骤如下:

  1. 创建文件my-postgresql-socat.yaml:
apiVersion: v1
kind: Pod
metadata:
name: my-postgresql-socat
labels:
name: my-postgresql-socat
spec:
containers:
- name: my-postgresql-socat
image: alpine/socat
command: ["socat", "-dd", "tcp4-listen:5432,fork,reuseaddr", "tcp4:my-postgresql-host:5432"]
resources:
limits:
memory: "64Mi"
cpu: "50m"
ports:
- containerPort: 5432
  1. 创建一个广告连播
kubectl apply -f my-postgresql-socat.yaml
  1. 运行本地端口转发:
oc port-forward my-postgresql-socat 5432:5432

您现在可以通过 localhost:5432 访问您的数据库

  1. 完成后,删除 pod:
kubectl delete pod my-postgresql-socat

关于kubernetes - kubectl 端口转发到远程 postgres 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70762591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com