我使用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指向我的本地开发机器。
答案 0 :(得分:1)
您可以使用计算机的专用局域网地址,但请确保您的数据库软件正在侦听所有网络接口,并且没有防火墙阻止传入流量。
如果您的局域网地址是动态的,如果您的网络设置提供了一个内部DNS名称,则可以使用指向您计算机的内部DNS名称。
另一种选择是在kubernetes集群中运行您的数据库:这样您可以使用它的service
名称作为主机名。
答案 1 :(得分:0)
如果您正在运行minikube,建议您查看以下问题的答案:Routing an internal Kubernetes IP address to the host system
一个非常简单但有点棘手的解决方案是使用类似ngrok的隧道工具:https://ngrok.com/
如果您打算遵循白人的建议11,则可以使用 kubernetes原生开发工具(例如DevSpace(https://github.com/covexo/devspace)或Draft({ {3}})。两者都可以与minikube或其他自托管群集一起使用。