首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使k8s集群服务可供本地码头容器使用

使k8s集群服务可供本地码头容器使用
EN

Stack Overflow用户
提问于 2020-05-11 14:35:35
回答 1查看 72关注 0票数 0

我习惯于使用telepresence连接到集群,并在本地访问集群服务。

现在,我需要使集群中的服务对在本地中运行的一组应用程序可用。我们可以说这是反向用例。

我有一个应用程序运行在一个码头容器。它访问使用docker-compose部署的服务。它是通过使用网络来完成的:

代码语言:javascript
复制
docker network create myNetwork
// Make app 1 to use it
docker network connect myNetwork app1
// App 2 uses docker compose, so myNetwork is defined in it and here I just:
docker-compose up

我的app1正确地访问在app2中运行的容器/服务。但是,我仍然需要它来访问我的集群中的服务!

我尝试用telepresence构建一个从我的主机到集群的隧道,然后尝试像在我的主机中一样访问该服务。然而,这似乎不起作用。如果我进入我的app1容器并执行一个curl来查看服务名称是否解析:

curl:(6)无法解析主机: my_cluster_service_name

我的方法错了吗?我是不是错过了手术或考虑?我怎么能做到呢?

Docker版本:Docker version 19.03.8 for Mac

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-12 08:06:00

我已经找到解决问题的办法了。

解决方案不是尝试使用telepresence作为反向用例,而是使用带有k9sport-forward。在创建它时,重要的是不要离开设置为localhost的默认接口,并将0.0.0.0放在这里,以确保它侦听来自所有接口的通信。

然后,我从内部更改了容器,使服务在解析服务名称时指向主机的IP。使用更适合这种情况的方法:因为这不是一个生产环境,我只是尝试手动对主机IP进行硬编码,以检查是否实现了连接。

要指向集群的特定服务,您需要使用不同的端口,因为它们都将被映射到具有不同port-forwards的主机上。不再需要名称解析。

使用此配置,容器请求将到达主机,端口转发将其路由到集群。这种设置的连接性是可以的,问题已经解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61732276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档