实例上的云初始化失败

实例上的云初始化失败

我使用 Autopilot Installer/MAAS 设置了 Ubuntu Openstack。当我尝试启动虚拟机时,cloud-init 无法获取元数据。以下是实例日志(部分)

cloud-init-nonet[25.04]: 静态网络现已启​​动
 * 开始配置网络设备[74G[ OK ]
Cloud-init v. 0.7.5 于 2015 年 3 月 20 日星期五 16:43:33 +0000 运行“init”。耗时 25.26 秒。
ci-info: +++++++++++++++++++++++++++网络设备信息++++++++++++++++++++++++++
ci 信息:+--------+------+--------------+---------------+-------------------+
ci-info:| 设备 | 启动 | 地址 | 掩码 | 硬件地址 |
ci 信息:+--------+------+--------------+---------------+-------------------+
ci 信息: |瞧 |真 | 127.0.0.1 | 255.0.0.0 | 。 |
ci 信息:| eth0 | 真| 192.168.1.21 | 255.255.255.0 | fa:16:3e:ab:ac:16 |
ci 信息:+--------+------+--------------+---------------+-------------------+
ci-info: +++++++++++++++++++++++++++++++路线信息++++++++++++++++++++++++++++++
ci 信息:+-------+-------------+---------+-----------+-----------+-----------+
ci-info:| 路线 | 目的地 | 网关 | Genmask | 接口 | 标志 |
ci 信息:+-------+-------------+---------+-----------+-----------+-----------+
ci 信息:| 0 | 192.168.1.0 | 0.0.0.0 | 255.255.255.0 | eth0 | U |
ci 信息:+-------+-------------+---------+-----------+-----------+-----------+
2015-03-20 16:43:33,409 - url_helper.py[警告]:调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[0/120s]:请求错误[HTTPConnectionPool(host='169.254.169.254',port=80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:34,422 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [1/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:43:35,431 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [2/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:43:36,435 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [3/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:43:37,440 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[4/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:38,444 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[5 / 120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101]网络不可达)]
2015-03-20 16:43:40,449 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[7/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:42,455 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[9/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:44,460 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[11/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:46,466 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[13 / 120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101]网络不可达)]
2015-03-20 16:43:48,472 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[15/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:51,484 - url_helper.py[警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[18/120s]:请求错误[HTTPConnectionPool(host='169.254.169.254',port=80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:54,491 - url_helper.py[警告]:调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[21/120s]:请求错误[HTTPConnectionPool(host='169.254.169.254',port=80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:43:57,503 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[24 / 120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101]网络不可达)]
2015-03-20 16:44:00,520 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [27/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:03,541 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [30/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:07,556 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [34/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:11,569 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [38/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:15,580 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [42/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:19,594 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [46/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:23,607 - url_helper.py[警告]:调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[50/120s]:请求错误[HTTPConnectionPool(host='169.254.169.254',port=80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:44:28,622 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [55/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:33,641 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[60/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:44:38,670 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [65/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:44:43,690 - url_helper.py[警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[70/120s]:请求错误[HTTPConnectionPool(host='169.254.169.254',port=80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:44:48,710 - url_helper.py [警告]:调用“http://169.254.169.254/2009-04-04/meta-data/instance-id”失败[75/120s]:请求错误[HTTPConnectionPool(host ='169.254.169.254',port = 80):url 的最大重试次数超出:/2009-04-04/meta-data/instance-id(原因:[Errno 101] 网络不可达)]
2015-03-20 16:44:54,726 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[81/120s]: 请求错误[HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:00,741 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[87/120s]: 请求错误[HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:06,757 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [93/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:12,770 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [99/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:18,790 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败 [105/120s]: 请求错误 [HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:25,805 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[112/120s]: 请求错误[HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:32,830 - url_helper.py[警告]: 调用‘http://169.254.169.254/2009-04-04/meta-data/instance-id’失败[119/120s]: 请求错误[HTTPConnectionPool(host='169.254.169.254', port=80): url: /2009-04-04/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 101] 网络不可达)]
2015-03-20 16:45:39,843 - DataSourceEc2.py[CRITICAL]: 126 秒后放弃来自 ['http://169.254.169.254/2009-04-04/meta-data/instance-id'] 的 md
2015-03-20 16:45:39,855 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [0/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:40,865 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [1/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:41,879 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [2/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:42,884 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [3/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:43,889 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [4/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:44,894 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [5/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:46,900 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [7/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:48,912 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [9/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:50,918 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [11/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:52,924 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [13/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:54,930 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [15/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:45:57,943 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [18/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:46:00,956 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [21/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]
2015-03-20 16:46:03,970 - url_helper.py[警告]: 调用‘http://192.168.1.20//latest/meta-data/instance-id’失败 [24/120s]: 请求错误 [HTTPConnectionPool(host='192.168.1.20', port=80): url://latest/meta-data/instance-id 的最大重试次数超出 (原因: [Errno 111] 连接被拒绝)]

值得注意的是,IP 从 169.254.169.254 变为 192.168.1.20(192.x 是 DHCP 代理 IP)。

我可以从哪里开始有什么想法吗?

答案1

您需要确保集群控制器配置正确,以便机器可以实际访问区域控制器元数据服务器。您可以使用以下命令执行此操作:

sudo dpkg-reconfigure maas-cluster-controller

并且需要输入区域控制器的IP地址,格式为:

http://<ip-address>/MAAS

答案2

就我的情况而言(使用 Ubuntu Juju 进行新安装),问题在于 neutron 配置错误,元数据服务器的 IP 地址错误。

这很好:http://techbackground.blogspot.ie/2013/06/metadata-via-dhcp-namespace.html

这让我想到:

root@neutron:/etc/neutron# cat metadata_agent.ini 
...
nova_metadata_ip = 192.168.100.151
nova_metadata_port = 8775
...

我修复了 nova_metadata_ip 并重新启动了中子元数据服务,从而解决了该问题。

答案3

我在 8 节点部署(3 个控制器、1 个日志、4 个计算)中遇到了类似的问题,其中租户网络上创建的任何实例都无法登录,因为它们没有通过元数据代理服务安装必要的 SSH 密钥。nova 控制台日志显示尝试访问租户网络中子路由器网关(192.168.227.1)上的元数据代理服务的尝试失败。如果我登录中子路由器并 arping 实例,它就会开始工作。

在计算节点上执行数据包捕获时,我发现实例正在向其 Neutron 网关 192.168.227.1 发送 ARP 请求。返回的 MAC 不是 Neutron MAC,而是 Cisco MAC。由于流量被路由到该 Cisco 设备(不存在元数据服务),因此对元数据地址的请求失败。

提出的解决方案是确认可能存在配置了 192.168.227.1 的 SVI,并将其删除,因为该地址应该在 Neutron 路由器上配置。

虽然编辑 metadata_agent.ini 文件是一种解决方法,但我强烈警告不要将其用作“修复”,因为这些值是从 openstack_user_config.yml 文件中提取的。如果在那里正确设置,它应该可以按配置工作,并使用 .ini 文件中的默认值。我更改了 .ini 文件中的值来测试外部端点,结果出现了我可以登录的实例,但这并没有解决租户网关 IP 重复的根本问题,而最终需要纠正这个问题。

答案4

我的 Vultr VPS 也遇到了类似的问题。调试后,我发现无法从 VPS ping 任何 IPv4 地址。iptables 对 INPUT 的策略是 DROP。运行以下命令后,ping 功能正常工作,cloud-init 正常运行

iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 

详细信息可以在这里找到https://serverfault.com/questions/356282/cannot-ping-outside-network-with-these-ip-rules

我调试此问题的建议是首先使用ip route show | grep 169.254.169.254获取网关地址。然后检查与网关的连接。如果无法访问,请尝试禁用防火墙。

相关内容