" apiserver的原因收到的错误不是非版本的"来自kube-apiserver的错误

时间:2015-12-16 22:04:53

标签: kubernetes

在将kubernetes从1.0.6升级到1.1.3时,我现在在滚动升级期间看到一堆以下错误,当我的任何kube master或etcd主机关闭时。我们目前有一个主人,有两个etcd主机。

2015-12-11T19:30:19.061+00:00 kube-master1 [err] [kube-apiserver] E1211 19:30:18.726490   26551 errors.go:62] apiserver received an error that is not an unversioned.Status: too old resource version: 3871210 (3871628)
2015-12-11T19:30:19.075+00:00 kube-master1 [err] [kube-apiserver] E1211 19:30:18.733331   26551 errors.go:62] apiserver received an error that is not an unversioned.Status: too old resource version: 3871156 (3871628)
2015-12-11T19:30:19.081+00:00 kube-master1 [err] [kube-apiserver] E1211 19:30:18.736569   26551 errors.go:62] apiserver received an error that is not an unversioned.Status: too old resource version: 3871623 (3871628)
2015-12-11T19:30:19.095+00:00 kube-master1 [err] [kube-apiserver] E1211 19:30:18.740328   26551 errors.go:62] apiserver received an error that is not an unversioned.Status: too old resource version: 3871622 (3871628)
2015-12-11T19:30:19.110+00:00 kube-master1 [err] [kube-apiserver] E1211 19:30:18.742972   26551 errors.go:62] apiserver received an error that is not an unversioned.Status: too old resource version: 3871210 (3871628)

我认为这些错误是由this new feature in 1.1引起的,默认情况下添加了--watch-cache选项。错误在滚动升级结束时停止。

我想知道如何解释这些错误,如果可以安全地忽略这些错误,以及如何更改系统以避免它们在未来(对于长期解决方案)。

1 个答案:

答案 0 :(得分:2)

是 - 正如您所建议的那样,这些错误与在apiserver中从内存缓存中提供服务的新功能有关。

所以,如果我理解正确的话,这里发生的是: - 您升级(或通常重新启动)apiserver - 这会导致所有现有的手表连接终止 - 一旦apiserver成功启动,它就会重新生成其内部内存缓存 - 由于手表可能有一些延迟,因此客户(更新手表连接)可能略微落后 - 这导致产生这样的错误,并迫使客户重新开始并从新点开始观看

IIUC,这些错误仅在升级期间出现并在之后消失 - 所以这很好。

换句话说 - 此类错误可能会在更新时出现(或者通常在重新启动apiserver后立即出现)。在这种情况下,他们可能会被安全地忽略。

事实上,那些不应该是错误 - 我们可能会将它们改为警告。