基于Rke2的Rancer2.6.5 Server,在创建下游集群时,通过修改默认数据存储位置data-dir,但loading CA cert仍然从/var/lib/rancher/rke2默认路径加载,导致失败

Rancher Server 设置

  • Rancher 版本:Rke2+Rancher2.6.5

下游集群信息

  • Kubernetes 版本: Rke2,最新版

问题描述:

基于Rke2的Rancer2.6.5 Server,在创建下游集群时,通过修改默认数据存储位置data-dir=/app/rancher/rke2/data,但下游集群创建时仍然从/var/lib/rancher/rke2默认路径加载,导致无法找到文件

结果:
/var/lib/rancher/rke2/server/tls下没有对应的ca所需要文件,在修改后的路径/app/rancher/rke2/data/server/tls下有ca文件

预期结果:
数据存在/app/rancher/rke2/data/下,并且应该从/app/rancher/rke2/data/下加载所需要的文件

截图:

其他上下文信息:

日志
May 24 13:44:56  rancher-system-agent[1624]: time="2022-05-24T13:44:56+08:00" level=error msg="error while appending ca cert to pool for probe kube-apiserver"
May 24 13:45:01 rancher-system-agent[1624]: time="2022-05-24T13:45:01+08:00" level=error msg="error loading x509 client cert/key for probe kube-apiserver (/var/lib/rancher/rke2/server/tls/client-kube-apiserver.crt//var/lib/rancher/rke2/server/tls/client-kube-apiserver.key): open /var/lib/rancher/rke2/server/tls/client-kube-apiserver.crt: no such file or directory"
May 24 13:45:01 rancher-system-agent[1624]: time="2022-05-24T13:45:01+08:00" level=error msg="error loading CA cert for probe (kube-apiserver) /var/lib/rancher/rke2/server/tls/server-ca.crt: open /var/lib/rancher/rke2/server/tls/server-ca.crt: no such file or directory"
May 24 13:45:01 rancher-system-agent[1624]: time="2022-05-24T13:45:01+08:00" level=error msg="error while appending ca cert to pool for probe kube-apiserver"

已经确认这是一个 bug,主要是因为下游的 rke2 集群修改了数据目录,但 rancher-system-agent.service 还是熬 默认的 /var/lib/rancher/rke2/server/tls 下去找证书导致的。 会尽快修复。

个人建议:最好别修改默认的数据目录,之前我修改了 docker 的默认 root dir,经常会导致一些奇怪的问题,:smile:

感谢老铁的指导意见,目前通过mount来挂载大容量目录到rancher的安装目录
其中,/app为大容量目录存储盘,如下:

mkdir -p /etc/rancher
mkdir -p /var/lib/rancher
mkdir -p /app/rancher/rke2/etc
mkdir -p /app/rancher/rke2/var

vi /etc/fstab # 增加两个启动挂载目录项
/app/rancher/rke2/etc /etc/rancher none bind 0 0
/app/rancher/rke2/var /var/lib/rancher none bind 0 0

1 个赞

吼吼……

感谢老铁

研发回复说: 通过 Rancher 创建的 rke2 集群,暂不支持修改 rke2 集群的 data-dir 目录

非常感谢!
现在用mount的方案解决,还算顺利 :grinning:

我用的全都是默认的,2.7.3但是还是报这样的错误。哎。。。。。在/var/lib/rancher/rke2/server/tls下找不到认证文件,no such file or directory

能否通过软链接方式将 /var/lib/rancher目录映射到挂载的大容量磁盘目录?