在我通过python脚本创建实例之前,我创建了一个子网。
def subnet_create(self, network_id, **kwargs):
params = {'name': kwargs.get("name"),
'cidr': kwargs.get("cidr"),
'ip_version': 4,
'enable_dhcp': True}
body = {'subnet': {'network_id': network_id}}
body['subnet'].update(params)
return self.neutron_client.create_subnet(body=body).get("subnet")
之后我按代码创建一个实例:
compute_srv = self.nova_cli.instance_create(
compute_inst["name"],
compute_inst["image"],
compute_inst["flavor"],
key_name=compute_inst["key_name"],
user_data=compute_inst["user_data"],
security_groups=compute_inst["security_groups"],
nics=compute_inst["nics"])
地平线显示子网并且实例已成功创建,但是当我打开控制台页面时,终端有时显示实例无法附加到元数据服务器:
calling 'http://169.254.2169.254/2009-04-04/metadata/instance-id' failed
当前实例无法ping通子网网关,但来自其他子网的实例可以ping此实例。
每次都不会出现此问题。其他一些时候它可能显示实例已附加到元数据服务器,并且主机名,IP地址可以设置正确。
但是当我按地平线手动创建子网时,实例始终能够连接元数据服务器。
我很困惑,我已经在这里呆了大约一个星期。有谁知道为什么?非常感谢你。