K3s.log日志询问

Rancher Server 设置

  • Rancher 版本:2.5.11
  • 安装选项 (Docker install/Helm Chart): docker run(单台启动)
    • 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:
  • 在线或离线部署:在线

下游集群信息

  • Kubernetes 版本:
  • Cluster Type (Local/Downstream):
    • 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等):

用户信息

  • 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):
    • 如果自定义,自定义权限集:

主机操作系统:

问题描述:
k3s.log日志里面有很多
watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
内容,这种是什么原因导致?我上网查看,说是etcd 版本过低导致,那么如何来升级etcd。

重现步骤:

结果:

预期结果:

截图:

其他上下文信息:

日志
W0801 10:39:23.798433      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:42:00.415557      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:43:16.857826      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:50:20.612507      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:53:00.958044      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:53:11.991349      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:57:15.321958      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 10:58:47.534209      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
time="2022-08-01T11:02:48.050659703Z" level=info msg="Cluster-Http-Server 2022/08/01 11:02:48 http: TLS handshake error from 10.42.0.85:48754: EOF"
time="2022-08-01T11:02:48.050834514Z" level=info msg="Cluster-Http-Server 2022/08/01 11:02:48 http: TLS handshake error from 10.42.0.85:48752: EOF"
W0801 11:05:00.190786      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:05:08.318112      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:07:14.735546      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:08:38.919880      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:13:02.188310      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:14:45.036361      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:15:26.976226      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:18:33.205951      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:23:21.535200      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:27:32.207368      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:28:47.153720      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
I0801 11:34:23.314446      54 trace.go:205] Trace[1046526770]: "Get" url:/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/kube-controller-manager,user-agent:k3s/v1.19.13+k3s1 (linux/amd64) kubernetes/99eadcc/leader-election,client:127.0.0.1 (01-Aug-2022 11:34:22.653) (total time: 661ms):
Trace[1046526770]: ---"About to write a response" 660ms (11:34:00.314)
Trace[1046526770]: [661.172985ms] [661.172985ms] END
W0801 11:34:26.822121      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:37:51.465395      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:39:35.898190      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:42:39.300150      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted
W0801 11:43:03.169575      54 watcher.go:207] watch chan error: etcdserver: mvcc: required revision has been compacted

k8s会不断向etcd写入数据,为了确保etcd存储不增长过快,kube-api会使用etcd的compact机制压缩数据。
这个压缩机制可以通过kube-api提供的一些参数控制,每次压缩时针对各个资源会删除一些旧的revision。如果watch时,恰好访问旧的revision且被compact机制清理,就会出现这样的日志响应。

一般来说,这种日志不影响使用。同时,冒然升级etcd并不可取,通常etcd和k8s版本之间存在某种依赖关系。

因为你使用的docker run方式部署Rancher,这种方式需要通过升级Rancher server镜像才能更新内置的k3s版本,进而更新etcd,所以无法单独更新local k3s集群,也无法单独更新etcd。

我在community office hour活动中,提到了一种使用单节点k3s with embedded etcd方式搭建Rancher,其实比single docker方式灵活。如果新搭建集群,可以考虑使用这种模式。

1 个赞

谢谢,非常感觉,明白了。