华为云CCE集群纳管GPU裸金属服务器由于CloudInit导致纳管失败的解决方案

举报
modelarts-dev-server 发表于 2023/06/09 11:17:09 2023/06/09
【摘要】 华为云CCE纳管GPU裸金属服务器,由于私有镜像中CloudInit未执行,导致纳管失败的解决方案。

1. 问题描述

笔者创建出3台GPU 裸金属服务器,  使用A节点制作镜像,用于在CCE纳管裸金属服务器时,使用该镜像; 但是纳管后发现服务器A纳管失败、剩下两台服务器纳管成功。

2. 问题定位

在CCE纳管过程中,需要通过cloudinit userdata机制拉取cce-agent, 但是在服务器上查看没有拉cce-agent的动作,理论上该动作是cloudinit中的脚本在创建时自动执行的,那可能是安装脚本没有注入userdata或者注入了但未执行。

经查看是userdata未执行, 那问题原因应该是服务器A制作镜像时没有清理残留目录导致,详细描述如下:

镜像里面/var/lib/cloud/instances残留了制作镜像机器(后面称模板机)的实例ID信息,如果制作镜像不清理/var/lib/cloud/* 就会导致用该镜像再重装“模板机”时cloud-init根据残留目录(含实例ID)判断已经执行过一次,进而不会再执行user-data里面的脚本

而使用该镜像的服务器B和C,由于实例ID信息和镜像中残留的服务器A实例ID不同, 就会执行user-data, 所以CCE能纳管成功。

3. 解决方案

核心的修复方法参考 https://support.huaweicloud.com/bpicg-bms/zh-cn_topic_0000001409069597.html

制作镜像前,清理/var/lib/cloud/目录下的所有信息,然后再制作镜像。CCE重新纳管服务器A时, 使用最新制作的镜像即可。

最后附上通过BMS制作私有镜像时,需要清理的文件:

执行下面命令,清理用户登录记录。
echo > /var/log/wtmp

echo > /var/log/btmp

执行下面命令,清理相应目录下的临时文件。
rm -rf /var/log/cloud-init*

rm -rf /var/lib/cloud/*

rm -rf /var/log/network-config.log

执行下面命令,清理残留配置信息。
SUSE操作系统:查看“/etc/sysconfig/network/”文件夹下有哪些以“ifcfg”开头的文件,删除除了“ifcfg-lo及ifcfg.template”以外的以“ifcfg”开头的文件。
查看文件命令:ll /etc/sysconfig/network/

删除文件命令:rm -rf /etc/sysconfig/network/ifcfgxxx

RedHat/CentOS/Oracle/Euler操作系统:查看“/etc/sysconfig/network-scripts/”文件夹下有哪些以“ifcfg”开头的文件,删除除了“ifcfg-lo”以外的以“ifcfg”开头的文件。
查看文件命令:ll /etc/sysconfig/network-scripts/

删除文件命令:rm -rf /etc/sysconfig/network-scripts/ifcfgxxx

Ubuntu操作系统:rm -rf /etc/network/interfaces.d/50-cloud-init.cfg
执行下面命令清除历史操作记录。
history -w;echo > /root/.bash_history;history -c;history -c;history -c;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。