场景三:强制清理并回收死锁 IP 地址
云主机在平台已被删除,但由于底层异常,导致虚拟网卡端口(Port)成为“孤儿”,死锁占用了特定 IP(提示 IP 冲突或无法分配)。
操作节点: iStack 的主控制节点(Controller Node)
示例死锁 IP: 192.168.92.141
操作步骤:
-
登录控制节点并加载鉴权环境
SSH 登录到控制节点,加载 OpenStack 管理员环境变量(防止出现
Missing value auth-url报错):Bash
source /etc/kolla/admin-openrc.sh
# 备用路径:source ~/admin-openrc.sh -
查询目标 IP 绑定的端口 ID
执行以下命令,在网络组件(Neutron)中找出占用该 IP 的网卡:
Bash
openstack port list --fixed-ip ip-address=192.168.92.141
在输出的表格中,复制第一列的
ID值(例如d8a2b1...)。 -
强制删除端口释放 IP
使用刚刚复制的端口 ID 执行删除命令:
Bash
openstack port delete <复制的端口ID>
-
验证 IP 是否已释放
再次执行查询命令:
Bash
openstack port list --fixed-ip ip-address=192.168.92.141
如果返回结果为空表格,说明该 IP 已成功释放,可供其他云主机使用。
补充步骤:清理底层僵尸虚拟机外壳(可选)
如果该死锁 IP 是由于我们手动修改过底层 XML(例如加了 UEFI),导致云管平台下发删除指令时 libvirt 拒绝删除引发的,你需要回到该云主机原本所在的计算节点(宿主机),彻底抹除它的尸体:
-
登录该宿主机并进入容器:
docker exec -it gostack_libvirt bash -
强制抹除虚拟机定义及 NVRAM 残留:
Bash
virsh undefine <云主机ID> --nvram
No comments to display
No comments to display