Talos833头像
关注

基于TencentOS的PVM部署CubeSandBox故障定位排查

具体安装流程参考: PVM 部署 | CubeSandbox

一、安装 PVM 宿主机内核RPM 包依赖冲突

rpm -ivh --oldpackage kernel-*.rpm 错误:依赖检测失败: kernel-headers 被 kernel-headers-6.6.69_opencloudos9.cubesandbox.pvm.host_g0de43d6b3bcd-1.x86_64 取代

错误是 RPM 包依赖冲突(Obsoletes/Provides 替代关系),不是普通缺少依赖

报错:

错误:依赖检测失败:
kernel-headers 被 kernel-headers-6.6.69_opencloudos9.cubesandbox.pvm.host_g0de43d6b3bcd-1.x86_64 取代

意思:

你正在安装的旧 kernel-*.rpm 包要求:

kernel-headers

但是系统当前已经安装了:

kernel-headers-6.6.69_opencloudos9.cubesandbox.pvm.host_g0de43d6b3bcd-1.x86_64

这个 OpenCloudOS 定制版 headers 声明:

Obsoletes: kernel-headers

也就是:

我已经替代 kernel-headers,不允许同时安装旧的 kernel-headers


1. 先查看当前 kernel 包

执行:

rpm -qa | grep kernel

例如:

kernel-6.6.69_opencloudos9.cubesandbox.pvm.host
kernel-headers-6.6.69_opencloudos9.cubesandbox.pvm.host

2. 查看你准备安装的 RPM

ls -lh kernel-*.rpm

检查版本:

rpm -qp kernel-*.rpm

例如:

kernel-6.6.69_opencloudos9.cubesandbox.pvm.host
kernel-headers-6.6.69_opencloudos9

解决方案1(推荐):一起安装匹配版本 headers

不要只安装:

rpm -ivh --oldpackage kernel-*.rpm

先确认目录:

ls

应该包含:

kernel-core-xxx.rpm
kernel-modules-xxx.rpm
kernel-headers-xxx.rpm
kernel-devel-xxx.rpm

然后:

rpm -ivh --oldpackage \
kernel-core-*.rpm \
kernel-modules-*.rpm \
kernel-headers-*.rpm \
kernel-devel-*.rpm

解决方案2:强制忽略冲突(不推荐)

如果只是回滚 kernel:

rpm -ivh --oldpackage --replacepkgs --nodeps kernel-*.rpm

或者:

rpm -Uvh --oldpackage --replacepkgs --nodeps kernel-*.rpm

风险:

  • DKMS 模块可能失败
  • NVIDIA 驱动可能无法编译
  • kubelet/containerd 模块可能异常

解决方案3:先卸载新版 headers

如果你明确要降级:

查看:

rpm -qa | grep kernel-headers

卸载:

rpm -e kernel-headers-6.6.69_opencloudos9.cubesandbox.pvm.host_g0de43d6b3bcd-1.x86_64

然后:

rpm -ivh --oldpackage kernel-headers-旧版本.rpm

注意:

如果当前系统依赖它:

dnf repoquery --whatrequires kernel-headers

先确认


解决方案4(OpenCloudOS 推荐)

OpenCloudOS 不建议直接 rpm 降级。

建议使用 dnf:

查看可用版本:

dnf list kernel --showduplicates

安装指定版本:

dnf downgrade kernel-6.6.xx

如果仓库没有:

dnf install ./kernel-*.rpm

让 dnf 自动处理依赖:

dnf install ./kernel-core*.rpm \
             ./kernel-modules*.rpm \
             ./kernel-headers*.rpm

5. 安装后检查

查看 grub:

grubby --default-kernel

查看所有 kernel:

grubby --info=ALL | grep kernel

重启:

reboot

验证:

uname -r

推荐解决方案:

dnf install ./kernel-*.rpm

二、CubeSandbox 默认虚拟网络 CIDR 和宿主机 eth0 网段冲突

CubeSandbox 默认虚拟网络 CIDR 和宿主机 eth0 网段冲突

宿主机:

eth0:
192.168.0.6/24

route:
192.168.0.0/24

CubeSandbox 默认:

cubevs CIDR:
192.168.0.0/18

范围:

192.168.0.0 - 192.168.63.255

包含:

192.168.0.0/24

所以冲突

CubeSandbox 的 PVM 网络要求:

cubevs 虚拟网络不能和宿主机已有网卡、路由、DNS 网段重叠


方案1(推荐):修改 CubeSandbox 网络 CIDR

选择一个没有冲突的私网

例如:

10.250.0.0/16

重新安装:

curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh \
| CUBE_PVM_ENABLE=1 \
  MIRROR=cn \
  CUBE_SANDBOX_NETWORK_CIDR=10.250.0.0/16 \
  bash

推荐规划

环境:

192.168.0.0/24

已经用于:

  • 物理网络
  • K8s 节点
  • MinIO
  • 服务访问

建议 CubeSandbox 单独:

CubeSandbox VM Network:

10.250.0.0/16

例如:

用途网段
宿主机管理192.168.0.0/24
Kubernetes Pod10.244.0.0/16
CubeSandbox PVM10.250.0.0/16

避免后续冲突


方案2:使用其他 192.168 网段

也可以:

例如:

CUBE_SANDBOX_NETWORK_CIDR=192.168.100.0/24

安装:

curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh \
| CUBE_PVM_ENABLE=1 \
MIRROR=cn \
CUBE_SANDBOX_NETWORK_CIDR=192.168.100.0/24 \
bash

但是如果未来接入:

  • VPN
  • 云专线
  • Kubernetes
  • Proxmox bridge

容易再次冲突

生产不建议


方案3:跳过检查(不建议)

日志提示:

CUBE_SANDBOX_NETWORK_CIDR_SKIP_CONFLICT_CHECK=1

例如:

curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh \
| CUBE_PVM_ENABLE=1 \
MIRROR=cn \
CUBE_SANDBOX_NETWORK_CIDR_SKIP_CONFLICT_CHECK=1 \
bash

但是你的情况:

cubevs:
192.168.0.x

eth0:
192.168.0.x

后续一定可能出现:

  • PVM 无法通信
  • DNS异常
  • MinIO访问异常
  • sandbox实例启动失败

不推荐


如果已经失败安装,需要清理

先检查:

ls -la

看:

.one-click.env

以及:

systemctl list-units | grep cube

如果需要重新安装:

systemctl stop cube-sandbox*

删除旧配置:

rm -rf ~/.cube-sandbox

然后重新执行:

CUBE_SANDBOX_NETWORK_CIDR=10.250.0.0/16

安装前建议确认

宿主机:

ip addr
ip route
cat /etc/resolv.conf

尤其确认没有:

10.250.0.0/16

冲突

检查:

ip route | grep 10.250

没有输出即可


结合你之前的环境:

  • CubeSandbox v0.7.1
  • MinIO 192.168.0.6:9000
  • OpenCloudOS9
  • PVM/KVM 模式

建议直接使用:

CUBE_SANDBOX_NETWORK_CIDR=10.250.0.0/16

这是后续扩容、Kubernetes 集成、GPU PVM 节点比较安全的规划

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_38636133/article/details/166134247

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--