博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)
阅读量:7105 次
发布时间:2019-06-28

本文共 1630 字,大约阅读时间需要 5 分钟。

hot3.png

要想从 nova-api-metadata 获得 metadata,需要指定 instance 的 id。但 instance 刚启动时无法知道自己的 id,所以 http 请求中不会有 instance id 信息,id 是由 neutron-metadata-agent 添加进去的。针对 l3-agent 和 dhcp-agent 这两种情况在实现细节上有所不同,下面分别讨论。

 

l3-agent

 

下面是 l3-agent 参与情况下 metadata http 请求的处理流程图。

30.png

大的流程为:instance -> neutron-ns-metadata-proxy -> neutron-metadata-agent -> nova-api-metadata,处理细节说明如下:

① neutron-ns-metadata-proxy 接收到请求,在转发给 neutron-metadata-agent 之前会将 instance ip 和 router id 添加到 http 请求的 head 中,这两个信息对于 l3-agent 来说很容易获得。

② neutron-metadata-agent 接收到请求后,会查询 instance 的 id,具体做法是:

1) 通过 router id 找到 router 连接的所有 subnet,然后筛选出 instance ip 所在的 subnet。

2)在 subnet 中找到 instance ip 对应的 port。

3)通过 port 找到对应的 instance 及其 id。

③ neutron-metadata-agent 将 instance id 添加到 http 请求的 head 中,然后转发给 nova-api-metadata,这样 nova-api-metadata 就能返回指定 instance 的 metadata 了。

我们再来看 dhcp-agent 的情况。

 

dhcp-agent

 

31.png

① neutron-ns-metadata-proxy 在转发请求之前会将 instance ip 和 network id 添加到 http 请求的 head 中,这两个信息对于 dhcp-agent 来说很容易获得。

② neutron-metadata-agent 接收到请求后,会查询 instance 的 id,具体做法是:

1) 通过 network id 找到 network 所有的 subnet,然后筛选出 instance ip 所在的 subnet。

2)在 subnet 中找到 instance ip 对应的 port。

3)通过 port 找到对应的 instance 及其 id。

③ neutron-metadata-agent 将 instance id 添加到 http 请求的 head 中,然后转发给 nova-api-metadata,这样 nova-api-metadata 就能返回指定 instance 的 metadata 了。

这样,不管 instance 将请求发给 l3-agent 还是 dhcp-agent,nova-api-metadata 最终都能获知 instance 的 id,进而返回正确的 metadata。

从获取 metadata 的流程上看,有一步是至关重要的:instance 必须首先能够正确获取 DHCP IP,否则请求发送不到 169.254.169.254。但不是所有环境都会启用 dhcp,更极端的,有些环境可能连 nova-api-metadata 服务都不会启用。那么 instance 还能获得 metadata 吗?

这就是下一节我们要讨论的主题:config drive

 

转载于:https://my.oschina.net/u/2397560/blog/869606

你可能感兴趣的文章
linux怎么初次进入mysql呢?解决登入问题和密码问题
查看>>
jsp页面传值给strut2,Hibernate与数据库乱码解决根本
查看>>
第四讲:软考中高项04_整体管理、范围管理
查看>>
B2B B2C C2C C2B B2G C2B ABC
查看>>
第十天 练习
查看>>
改变从今天开始
查看>>
IPROS G8000产品概述:
查看>>
我的友情链接
查看>>
必看!决定蓝领薪酬高低的因素
查看>>
window.location.href 失效的解决办法
查看>>
删除密码设置对象(PSO)
查看>>
第1章 安装Exchange2010
查看>>
重写CMFCRibbonStatusBarPane类
查看>>
linux环境下安装mysql
查看>>
2015-10-19高项作业
查看>>
cisco对某一IP的限速
查看>>
忠告17:本田宗一郎:成功出现在九十九次失败后
查看>>
长途猫的归属
查看>>
查看硬件信息命令
查看>>
【翻译】为Ext JS和Sencha Touch开发人员准备的应用程序监测(App Inspector)
查看>>