首页 > 解决方案 > 如何在 Kubernetes 中修改 continue 令牌的默认过期时间?

问题描述

在此页面https://kubernetes.io/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks上,有一个将在短时间内过期的继续令牌(默认为 5 分钟)。

我发现当 kubernetes 控制器管理器在我的集群中执行 cronjob syncall() 功能时,此令牌总是过期并停止按计划创建作业的 cronjob。

以下是kubernetes-controller-manager中的日志:

E0826 11:26:45.441592 1 cronjob_controller.go:146] 无法提取 cronJobs 列表:提供的 continue 参数太旧,无法显示一致的列表结果。您可以在没有 continue 参数的情况下启动一个新列表,或者在此响应中使用 continue 标记来检索剩余的结果。继续使用提供的令牌会导致列表不一致 - 在返回第一个块到现在可能显示在列表中的时间之间创建、修改或删除的对象。

所以我想知道能否修改Kubernetes中continue token的默认过期时间,怎么做?

谢谢。

标签: kuberneteskubernetes-cronjobkubernetes-apiserver

解决方案


这是etcd的默认设置。对 etcd 的任何身份验证请求都将在 5 秒的到期间隔内产生。这是由于压实间隔。好消息是您可以使用该选项将其更改为kube-apiserver中的--etcd-compaction-interval选项。

此外,看起来在 5 分钟内执行一个简单的 GET实际上会延长令牌超时时间。

✌️


推荐阅读