在将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选项。错误在滚动升级结束时停止。
我想知道如何解释这些错误,如果可以安全地忽略这些错误,以及如何更改系统以避免它们在未来(对于长期解决方案)。
答案 0 :(得分:2)
是 - 正如您所建议的那样,这些错误与在apiserver中从内存缓存中提供服务的新功能有关。
所以,如果我理解正确的话,这里发生的是: - 您升级(或通常重新启动)apiserver - 这会导致所有现有的手表连接终止 - 一旦apiserver成功启动,它就会重新生成其内部内存缓存 - 由于手表可能有一些延迟,因此客户(更新手表连接)可能略微落后 - 这导致产生这样的错误,并迫使客户重新开始并从新点开始观看
IIUC,这些错误仅在升级期间出现并在之后消失 - 所以这很好。换句话说 - 此类错误可能会在更新时出现(或者通常在重新启动apiserver后立即出现)。在这种情况下,他们可能会被安全地忽略。
事实上,那些不应该是错误 - 我们可能会将它们改为警告。