Rancher单节点容器无法启动

Rancher Server 设置

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

下游集群信息

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

用户信息

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

**主机操作系统:centOS7

**问题描述:安装rancher容器的虚拟机断电重启后,容器一直再尝试重新启动。

查看日志已放到最后了。

重现步骤:

**结果:目前下游k8s集群正常

**预期结果:rancher是否能修复,如果不能修复,如何重装rancher而不影响k8s。
(注:之前未导出kube config文件)

截图:

其他上下文信息:

日志
2024/01/13 14:36:15 [INFO] Rancher version v2.2.9 is starting
2024/01/13 14:36:15 [INFO] Rancher arguments {ACMEDomains:[] AddLocal:auto Embedded:false KubeConfig: HTTPListenPort:80 HTTPSListenPort:443 K8sMode:auto Debug:false NoCACerts:false ListenConfig:<nil> AuditLogPath:/var/log/auditlog/rancher-api-audit.log AuditLogMaxage:10 AuditLogMaxsize:100 AuditLogMaxbackup:10 AuditLevel:0}
2024/01/13 14:36:15 [INFO] Listening on /tmp/log.sock
2024/01/13 14:36:15 [INFO] Running etcd --data-dir=management-state/etcd
2024-01-13 14:36:15.233499 W | pkg/flags: unrecognized environment variable ETCD_UNSUPPORTED_ARCH=amd64
2024-01-13 14:36:15.233569 I | etcdmain: etcd Version: 3.2.13
2024-01-13 14:36:15.233578 I | etcdmain: Git SHA: Not provided (use ./build instead of go build)
2024-01-13 14:36:15.233600 I | etcdmain: Go Version: go1.12.10
2024-01-13 14:36:15.233607 I | etcdmain: Go OS/Arch: linux/amd64
2024-01-13 14:36:15.233616 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8
2024-01-13 14:36:15.233733 N | etcdmain: the server is already initialized as member before, starting as etcd member...
2024-01-13 14:36:15.234142 I | embed: listening for peers on http://localhost:2380
2024-01-13 14:36:15.234400 I | embed: listening for client requests on localhost:2379
2024-01-13 14:36:15.350272 I | etcdserver: recovered store from snapshot at index 174801773
panic: invalid page allocation: 0

goroutine 133 [running]:
github.com/rancher/rancher/vendor/github.com/coreos/bbolt.(*freelist).allocate(0xc001166480, 0x4f4a964, 0x1, 0xda6149e3f66353c9)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/bbolt/freelist.go:85 +0x2d8
github.com/rancher/rancher/vendor/github.com/coreos/bbolt.(*DB).allocate(0xc001084000, 0x4f4a964, 0x1, 0x0, 0xc00116c940, 0xc0010c6070)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/bbolt/db.go:906 +0xaf
github.com/rancher/rancher/vendor/github.com/coreos/bbolt.(*Tx).allocate(0xc00016a000, 0x1, 0x7f595b5e9000, 0x7357200, 0x0)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/bbolt/tx.go:477 +0x4a
github.com/rancher/rancher/vendor/github.com/coreos/bbolt.(*node).spill(0xc0010c6070, 0x10, 0x10)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/bbolt/node.go:368 +0x270
github.com/rancher/rancher/vendor/github.com/coreos/bbolt.(*Bucket).spill(0xc00016a018, 0x1bbffed3, 0x7333400)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/bbolt/bucket.go:568 +0x476
github.com/rancher/rancher/vendor/github.com/coreos/bbolt.(*Tx).Commit(0xc00016a000, 0x1bbff5fe, 0x7333400)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/bbolt/tx.go:160 +0xed
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend.(*batchTx).commit(0xc001166ea0, 0x0)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend/batch_tx.go:179 +0x7c
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend.(*batchTxBuffered).unsafeCommit(0xc001166ea0, 0x3f02400)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend/batch_tx.go:251 +0x49
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend.(*batchTxBuffered).commit(0xc001166ea0, 0x3ef8a00)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend/batch_tx.go:239 +0x80
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend.(*batchTxBuffered).Commit(0xc001166ea0)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend/batch_tx.go:226 +0x66
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend.(*backend).ForceCommit(0xc0000a19e0)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/backend/backend.go:165 +0x2f
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc.NewStore(0x4808b80, 0xc0000a19e0, 0x4830600, 0x73559e8, 0x4733c20, 0xc000ffa448, 0x1)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/kvstore.go:127 +0x3ed
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc.newWatchableStore(0x4808b80, 0xc0000a19e0, 0x4830600, 0x73559e8, 0x4733c20, 0xc000ffa448, 0xc0009e1f68)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/watchable_store.go:75 +0x76
github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc.New(...)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/mvcc/watchable_store.go:70
github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdserver.recoverSnapshotBackend(0xc0015c8300, 0x4808b80, 0xc0000a19e0, 0xc0017ae000, 0x5a02c, 0x5c000, 0xc001152080, 0x1, 0x1, 0x0, ...)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdserver/backend.go:74 +0xbd
github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdserver.NewServer(0xc0015c8300, 0xc0015c83b8, 0x0, 0x0)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdserver/server.go:378 +0x2855
github.com/rancher/rancher/vendor/github.com/coreos/etcd/embed.StartEtcd(0xc0015e2000, 0xc001614000, 0x0, 0x0)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/embed/etcd.go:157 +0x6dc
github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdmain.startEtcd(0xc0015e2000, 0x3d80b45, 0x6, 0x1, 0xc00160f240)
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdmain/etcd.go:186 +0x6a
github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdmain.startEtcdOrProxyV2()
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdmain/etcd.go:103 +0x13fb
github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdmain.Main()
        /go/src/github.com/rancher/rancher/vendor/github.com/coreos/etcd/etcdmain/main.go:39 +0x118
github.com/rancher/rancher/vendor/github.com/rancher/norman/pkg/kwrapper/etcd.runEtcd(0x47d0700, 0xc000bcf240, 0xc000bae840, 0x2, 0x2)
        /go/src/github.com/rancher/rancher/vendor/github.com/rancher/norman/pkg/kwrapper/etcd/etcd.go:68 +0xfe
created by github.com/rancher/rancher/vendor/github.com/rancher/norman/pkg/kwrapper/etcd.RunETCD
        /go/src/github.com/rancher/rancher/vendor/github.com/rancher/norman/pkg/kwrapper/etcd/etcd.go:24 +0x187

这个问题大概率是因为服务器断电,导致 rancher 内置的 etcd 丢数据或者其他原因,起不来。

如果有备份,就用备份恢复,如果没有,那没啥好办法了

rancher 无法启动,不会影响你下游的 K8s 集群,你依然可以通过 kubeconfig 去管理

您好,谢谢您的回复。
因为之前一直用rancher管理k8s,没有从管理界面下载kubeconfig文件,现在该怎么获取。

已经回复kubeconfig文件,可以管理下游K8S集群了,下一步我重新生成rancher容器,然后“导入现有的Kubernetes集群”吗,这样之前在通过rancher配置的k8s具体配置都可以读取到吗?
或者还有其它好的办法恢复。

只能重新导入,但 rancher 特定的数据是没有的,我也没其他办法了

我试试吧,谢谢您。

重新导入后,原来k8s里定义的命名空间和部署的工作负载等都没有,怎么可以把他读取到呢

你进入到 项目/命名空间 菜单,然后将对应的 命名空间 移动到 对应的项目下就行了

嗯嗯,非常感谢!