在将kubernetes从1.0.6升级到1.1.3时,在滚动升级期间,当我的kube主机或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)我认为这些错误是由1.1中的这个新特性引起的,默认情况下添加了--watch-cache选项.这些错误在滚动升级结束时停止。
我想知道如何解释这些错误,如果可以安全地忽略它们,以及如何改变系统,以避免它们在未来(长期的解决方案)。
发布于 2015-12-17 09:09:07
是的--正如您所建议的,这些错误与从apiserver的内存缓存提供手表的新功能有关。
因此,如果我正确理解,这里发生的事情是:-您升级(或者通常是重新启动) apiserver -这导致所有现有的手表连接终止-一旦apiserver成功启动,它重新生成其内部内存缓存-因为手表可能会有一些延迟,客户端(正在更新他们的手表连接)可能稍微落后-这导致这样的错误,并迫使客户端重放,并开始观察从新的点。
IIUC,这些错误只出现在升级期间,并且在升级后消失--所以这很好。
换句话说,这类错误可能在更新时出现(通常是在apiserver重新启动后立即出现)。在这种情况下,它们可能被安全地忽略。
事实上,这些不应该是错误--我们可能会将它们更改为警告。
https://stackoverflow.com/questions/34322969
复制相似问题