首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go Micro和Consul的网真由于服务发现失败而导致错误

Go Micro和Consul的网真由于服务发现失败而导致错误
EN

Stack Overflow用户
提问于 2019-01-31 14:21:41
回答 1查看 152关注 0票数 0

我在我的应用程序中使用go-micro,目前我使用consul进行本地开发,但是当我将我的服务部署到登台和生产环境中时,我使用的是Kubernetes。我读到过关于Telepresence1的文章,它基本上是一个双代理,允许您访问对Kubernetes服务的依赖。所以我试着使用网真。此本地代码是使用网真部署的,使用测试命名空间创建新的部署,并允许其访问同一群集中不同命名空间中的另一个服务。然而,我的服务有这样的错误:

代码语言:javascript
复制
2019/01/29 13:11:18 stat
/var/run/secrets/kubernetes.io/serviceaccount: no such file or direct

这有点奇怪,因为当我的服务不需要在Kubernetes集群中有任何依赖时,我可以使用相同的方法。另外,我在Google Cloud上使用GKE,每个名称空间都使用RBAC。

1

EN

回答 1

Stack Overflow用户

发布于 2019-02-08 15:07:28

这是因为,默认情况下,带有kubernetes的go micro将尝试找到能够在集群中部署应用程序所需的默认服务帐户。仅当我们在新部署模式中使用网真时,此选项才适用。因为Telepresence将创建一个新部署来打开代理连接,以便我们能够访问群集的所有资源。

我设法使用网真和go-micro来运行我的代码,我所要做的就是创建:

代码语言:javascript
复制
sudo mkdir -p /var/run/secrets/kubernetes.io/

然后使用symlink:

代码语言:javascript
复制
sudo ln -s $TELEPRESENCE_ROOT/var/run/secrets/kubernetes.io/serviceaccount/ /var/run/secrets/kubernetes.io

然后运行:

代码语言:javascript
复制
go main.go --selector=static --server_address=0.0.0.0:<port>

这里的静态标志是重要的1

参考文献: 1. https://github.com/micro/go-plugins/tree/master/selector/static

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

https://stackoverflow.com/questions/54454510

复制
相关文章

相似问题

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