Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes K8S使用相同机密的部署之间的同步_Kubernetes - Fatal编程技术网

Kubernetes K8S使用相同机密的部署之间的同步

Kubernetes K8S使用相同机密的部署之间的同步,kubernetes,Kubernetes,在我的k8s集群中,我有两个部署:一个用于使用给定的密钥对生成JWT,另一个用于使用相同的密钥对验证JWT。 两个部署都使用相同的k8s密钥,其中包含密钥/密钥对。 当我想要撤销/更新该密钥对时,如何在部署之间创建一致性?实际上,我希望所有生成的JWT都将得到验证,尽管有两个不同的微服务,但不一定两个微服务的所有POD都会立即更新以使用新密钥。 如何防止此类验证失败的错误警报?在您的头盔图表或Kustomize清单中,将机密内容的哈希设置为pod模板上的注释,当机密内容更改时,将自动触发重新部署

在我的k8s集群中,我有两个部署:一个用于使用给定的密钥对生成JWT,另一个用于使用相同的密钥对验证JWT。
两个部署都使用相同的k8s密钥,其中包含密钥/密钥对。
当我想要撤销/更新该密钥对时,如何在部署之间创建一致性?实际上,我希望所有生成的JWT都将得到验证,尽管有两个不同的微服务,但不一定两个微服务的所有POD都会立即更新以使用新密钥。

如何防止此类验证失败的错误警报?

在您的头盔图表或Kustomize清单中,将机密内容的哈希设置为pod模板上的注释,当机密内容更改时,将自动触发重新部署


或者,您的软件可以检测文件中的更改并重新加载它们。

不可能有一个通用的解决方案来解决此问题:您必须自己协调所有各方

常见的解决方案是发布一个新的秘密,让所有参与者都接受这两个秘密


然后在一段时间后停止发布旧版本,并将其从所有地方删除。

为什么不为两者使用相同的机密?(这确实需要在同一名称空间中运行两者)我实际上使用了相同的机密。更新“机密”后,我会对这两个展开进行卷展栏更新。但这两种部署的pod并不同步——理论上,用户可以从未更新的pod获得jwt,然后当他去验证时——K8S可能会将他的请求重定向到“新”pod(具有新的秘密)——他的请求将失败。我怎么能阻止它?@YosiKarl秘密轮换通常是在两端(或至少接收端)都支持两个版本一段时间的情况下实现的。我同意,但如何解决一个竞赛,其中一个POD使用新密钥和以下请求(包含JWT)生成JWT被发送到一个使用旧关键点的吊舱?这无法解决在部署卷展中途发生的比赛问题。除了设置更好的关键点旋转系统外,没有其他解决方案。使用一个活动密钥和多个允许的密钥,而不是单个签名密钥。发卡机构仅使用活动密钥发行,但检查器将允许任何允许的密钥。因此,在更改关键点时,您可以将活动关键点移动到“允许”,然后创建一个新的活动关键点。“除了设置更好的关键点旋转系统之外,没有其他解决方案”-这就是我的观点:您的解决方案表明从一开始就存在一些问题。事实上(尽管它像银弹一样销售):-)