如何从 kubernetes pod 连接到本地网络

问题描述 投票:0回答:1

我在几个树莓派上设置了一个 k8s 集群,用于本地开发。我正在尝试使用在本地网络中运行的数据库,但是我似乎无法让 Pod 连接到数据库。我尝试过使用服务和端点配置:

---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.database.host }}
  annotations:
    "helm.sh/hook-weight": "-2"
    "helm.sh/hook": pre-install,pre-upgrade
    "helm.sh/hook-delete-policy": before-hook-creation
spec:
  clusterIP: None
  ports:
    - port: {{ .Values.database.port }}
---
apiVersion: v1
kind: Endpoints
metadata:
  name: {{ .Values.database.host }}
  annotations:
    "helm.sh/hook-weight": "-2"
    "helm.sh/hook": pre-install,pre-upgrade
    "helm.sh/hook-delete-policy": before-hook-creation
subsets:
  - addresses:
      - ip: {{ .Values.database.ip }}
    ports:
      - port: {{ .Values.database.port }}
        name: {{ .Values.database.host }}

我可以确认端点和服务资源已创建,并且所有连接详细信息都正确,但我的应用程序(在 k8s 集群上运行)仍然无法连接到主机网络上的数据库。仔细阅读文档,听起来这些资源是用于从本地网络连接到集群的,而不是相反?有没有办法从 k8s 资源连接到本地网络上的服务?

运行结果

kubectl get pods -n kube-system

local-path-provisioner-5ff76fc89d-txj6k   1/1     Running   4          65d
metrics-server-86cbb8457f-r8q6w           1/1     Running   3          65d
coredns-7448499f4d-5646n                  1/1     Running   10         176d
csi-smb-node-9j5gm                        3/3     Running   3291       150d
csi-smb-controller-6c696945f8-8t6qj       3/3     Running   27         150d
csi-smb-controller-6c696945f8-ck5hh       3/3     Running   3361       150d
csi-smb-node-822bb                        3/3     Running   3260       150d
csi-smb-node-4nckf                        3/3     Running   3655       150d
kubernetes kubernetes-helm local-network
1个回答
0
投票

事实证明,问题不是 kubernetes 的问题,而是配置问题。我通过修改 postgres hba 配置文件以获得更广泛的 IP 地址来解决我遇到的问题。正如 @gohm'c 所提到的,有许多在线资源描述了如何修复我遇到的连接错误。感谢@gohm'c 在调试方面的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.