0

我正在评估 knative 是否对我的项目有意义。我正在尝试创建一个连接到第三方 API 的服务。我想知道从 knative 的角度来看,存储需要定期更新的第三方 API 令牌的最佳策略是什么。

  • 秘密是要走的路吗?我已经尝试过了,但我认为无法从 pod 修改秘密,对吧?
  • 对于这个用例,传统的 k8 部署是否更有意义?
  • 从 knative 服务存储数据的正确方法是什么?
4

1 回答 1

0

Knative 是 Kubernetes 的一个插件。您将在 knative 中管理秘密,就像在 Kubernetes 中管理秘密一样。 https://kubernetes.io/docs/concepts/configuration/secret/

使用 Knative 时使用 Pod,如果使用 Kubernetes Deployment 或 DeamonSet,则使用相同类型的 Pod。 https://kubernetes.io/docs/concepts/workloads/pods/

现在就您而言,第 3 方 API 令牌。不知道您的用例,但我熟悉的是使用 API 密钥的概念,您可以将其放入 kubernetes 密钥中,然后您的 Pod 将在您的应用程序启动时访问。

您将使用密钥请求令牌(也称为刷新令牌),然后使用此令牌访问 API。您将在内存中保留它,当即将到期时,您使用刷新令牌刷新令牌。

因此,如果您的 Pod 在缩减时关闭会发生什么情况,这可能是在正常的 kubernetes 中,而不是必要的 knative。您想将该令牌存储在某个地方,比如缓存吗?人们在这种情况下会做什么,他们会将其保存在 memcache 或 redis 中,因此如果出现新的 pod,它将检查缓存中是否有最近的令牌,如果有效,则使用它,如果无效或找不到,则使用 API 密钥从 Secret 中获取新的令牌。 https://zapier.com/engineering/apikey-oauth-jwt/

没有更多细节很难更准确地回答。

于 2021-03-26T19:53:15.420 回答