use*_*503 6 portforwarding kubernetes
尝试打开 Postgres 端口5432,以便可以从我的本地计算机访问它。该端口仅从 kubernetes pod 开放。
127.0.0.1:5432 <====> kubernetes-pod <=====> Postgres Server
Run Code Online (Sandbox Code Playgroud)
基本上我想通过本地计算机访问端口 5432,该端口只能从 kubernetes-pod 访问。我怎么做。
我尝试过,如果 postgres 服务器在同一个 pod 上运行(但我的情况除外),我认为这会起作用:
kubectl port-forward pod-5bf5c7df9b-xcjsf 5433:5432
Run Code Online (Sandbox Code Playgroud)
注意:PostgreSQL 服务器作为独立数据库服务器运行,只有 pod 可以访问该端口,我想从本地计算机访问 PostgreSQL 数据库端口。
实现此目的最简单、最好的方法是socat在 Pod 中使用。
您可以使用alpine/socat容器镜像来创建 Pod。然后使用 port-forward 进入此 pod,这会将连接转发到目标数据库。
步骤如下:
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
Run Code Online (Sandbox Code Playgroud)
kubectl apply -f my-postgresql-socat.yaml
Run Code Online (Sandbox Code Playgroud)
kubectl port-forward my-postgresql-socat 5432:5432
Run Code Online (Sandbox Code Playgroud)
您现在可以通过以下方式访问您的数据库localhost:5432
kubectl delete pod my-postgresql-socat
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7050 次 |
| 最近记录: |