Kubernetes本地开发DB

时间:2018-06-02 07:21:13

标签: docker kubernetes

我使用docker(mac)的边缘版本设置了本地kubernetes集群。我的pod使用了我已经定义为我的数据库网址的env var。这些env变量在配置映射中定义为:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config 
data:
  DB_URL: postgres://user@localhost/my_dev_db?sslmode=disable

我应该在这里使用什么而不是localhost?我需要这个env var指向我的本地开发机器。

2 个答案:

答案 0 :(得分:1)

您可以使用计算机的专用局域网地址,但请确保您的数据库软件正在侦听所有网络接口,并且没有防火墙阻止传入流量。

如果您的局域网地址是动态的,如果您的网络设置提供了一个内部DNS名称,则可以使用指向您计算机的内部DNS名称。

另一种选择是在kubernetes集群中运行您的数据库:这样您可以使用它的service名称作为主机名。

答案 1 :(得分:0)

选项1-本地联网方法

如果您正在运行minikube,建议您查看以下问题的答案:Routing an internal Kubernetes IP address to the host system

选项2-隧道解决方案:连接到外部服务

一个非常简单但有点棘手的解决方案是使用类似ngrok的隧道工具:https://ngrok.com/

选项3-云原生开发(在k8s中运行所有程序)

如果您打算遵循白人的建议11,则可以使用 kubernetes原生开发工具(例如DevSpace(https://github.com/covexo/devspace)或Draft({ {3}})。两者都可以与minikube或其他自托管群集一起使用。