如何解决通过 Skaffold 在 Kubernetes Pod 中进行本地主机通信
我正在本地 Docker-Desktop Kubernetes 集群中部署后端和前端。前端可通过 app.local
访问,后端可通过 app.local/backend
访问。
app.local 在我的 Macbook 上的主机文件中定义如下:
127.0.0.1 app.local
在我的浏览器中,我可以访问两个地址,但是前端正在通过 app.local/backend 从容器到后端进行内部 REST 调用,该调用适用于实际的远程 Kubernetes 集群。 (我知道这并不理想,应该改为调用 Kubernetes 服务,但让我们暂时保留这种情况)
来自容器内部的 wget 产生以下结果:
wget http://app.local/backend
--2021-05-20 16:50:05-- http://app.local/backend
Resolving app.local (app.local)... 127.0.0.1
Connecting to app.local (app.local)|127.0.0.1|:80... failed: Connection refused.
似乎前端从我的 Macbook 继承了主机条目,因为 app.local 正确解析为 127.0.0.1,但是我猜在这种情况下 127.0.0.1 是前端容器本身,这就是为什么后端不是在这种情况下达到。这个假设正确吗?
结论:在我的实际集群上这没有问题,这可能是因为我的实际域的 DNS 条目被解析为公共服务器的正确 IP 地址。
有什么办法可以优雅地解决这个问题,还是问题出在其他地方而我做出了错误的假设?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。