首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在豆荚之间分配外部顶端

在豆荚之间分配外部顶端
EN

Stack Overflow用户
提问于 2019-10-06 16:57:30
回答 1查看 29关注 0票数 0

我在k8s上部署了一个微服务,它可以与外部云服务对话。外部服务对每个apptoken可以调用多少次有api速率限制。我们可以预先创建多个应用程序。

我们通常运行2-5个吊舱,并希望每个吊舱都有一个标记,这样我们就避免了重叠和超过速率限制。

什么是最简单的方式,在开始的时候分配一个令牌给每个吊舱,因为所有的部署设置都是完全相同的,并且豆荚保持动态循环?

EN

回答 1

Stack Overflow用户

发布于 2019-10-06 20:03:39

正确的方式可能需要某种专门的服务来分发这些凭据。它可能会使用Kubernetes API来查看豆荚是否退出,或者要求服务定期发送心跳以保持当前令牌。共享Redis可以是一种轻量级的方式来维护状态,而不需要真正的服务器。如果你觉得很花哨,你可以写一个Kubernetes控制器,它可以看到用某种标签创建的豆荚,并创建一个具有这个秘密的匹配秘密对象。

如果您真的想避免这种情况,可以在StatefulSet中运行您的应用程序。这将具有按顺序分配pod名称的属性,myservice-0myservice-1、.,因此每个pod都知道它是哪一个。然后,您可以创建一个秘密与令牌,其中密钥的秘密是预期的荚名。服务需要代码从挂载的配置文件中检索值,或者init容器需要将正确的值复制到已知的位置。Kubernetes文档中复制的MySQL示例将讨论更多关于init容器设置的内容。如果您的吊舱经常停止,或者需要频繁地缩放设置,您可能会遇到一些操作上的问题,因为围绕StatefulSet利用率的限制(如果您有5个副本,就不能仅仅停止#2,必须停止编号最高的副本)。

另一种讨厌的方法是站起来一个几乎包含一个计数器的Redis容器。在您选择的语言中编写一个小脚本,将令牌作为文件挂载秘密,增加计数器(可能是环绕),并将n‘’th令牌写入文件。然后,您可以让部署作为init脚本运行。在这里,您可以很容易地使用相同的令牌运行两个吊舱,但如果它们按常规重新启动,时间不会太长。

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

https://stackoverflow.com/questions/58259444

复制
相关文章

相似问题

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