接上节,启动 neutron router 后 instance c1 终于拿到了 metadata, 从下面 c1 的启动日志可知:

c1 所认为的 metadata 服务地址是 169.254.169.254,端口为 80。我们在 c1 中尝试访问一下 metadata。

确实能够拿到 metadata。但我们知道 nova-api-metadata 是运行在控制节点上的,IP并不是 169.254.169.254,这是怎么实现的呢?下面我们分析一下这个过程。

从 c1 的路由表得访问 169.254.169.254 的请求会走 17.17.17.1

17.17.17.1 实际上就是 test_router 在 test_net 上的 interface IP。这条路由是 OpenStack 自动添加到 instance 中的,这样就将 metadata 的请求转发到 neutron router。

ip netns 是管理 linux network namespace 的命令,如果对 namespace 不熟悉,可参考教程前面相关章节。

test_router 接收到 c1 的请求,会通过 iptable 规则转发到 9697 端口。

9697 端口是干嘛的?这是 neutron-ns-metadata-proxy 的监听端口。

到这里我们可以把思路重新理一下了:

  1. instance 通过预定义的 169.254.169.254 请求 metadata。

  2. 请求被转发到 neutron router。

  3. router 将请求转发给 neutron-ns-metadata-proxy。

  4. 再后面就简单了:neutron-ns-metadata-proxy 将请求通过 unix domain socket 发给 neutron-metadata-agent,后者再通过管理网络发给 nova-api-metadata。

OpenStack 默认通过 l3-agent 创建和管理 neutron-ns-metadata-proxy。但不是所有环境都有 l3-agent,比如直接用物理 router 的场景。这时就需要让 dhcp-agent 来管理 neutron-ns-metadata-proxy。

下一节我们分析 dhcp-agent 如何处理 metadata 请求。

获取 metadata 过程详解 - 每天5分钟玩转 OpenStack(167)相关推荐

  1. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

    Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...

  2. Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)

    Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34) 本节通过日志详细分析 Nova Pause/Resume 操作. 有时需要短时间暂停 instan ...

  3. Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)

    下面是 Metadata Service 的架构图,本节我们详细讨论各个组件以及它们之间的关系. nova-api-metadata nova-api-metadata 是 nova-api 的一个子 ...

  4. 获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)

    我们将通过实验详细分析 instance 从 nova-api-metadata 获取信息的完整过程. 环境介绍 1. 一个 all-in-one 环境(多节点类似). 2. 已创建 neutron ...

  5. Launch和Shut Off操作详解 - 每天5分钟玩转 OpenStack(30)

    本节详细分析 instance launch 和 shut off 操作,以及如何在日志中快速定位有用信息的技巧. Launch Launch instance 应该算 Nova 最重要的操作. 仔细 ...

  6. Unshelve Instance 操作详解 - 每天5分钟玩转 OpenStack(39)

    上一节我们 shelve instance 到 Glance,本节讨论如何通过 unshelve 操作恢复该 instance. 因为 Glance 中保存了 instance 的 image,uns ...

  7. Nova 组件详解 - 每天5分钟玩转 OpenStack(26)

    本节开始,我们将详细讲解 Nova 的各个子服务. 前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个. 今天先讨论 nova-api 和 nova-con ...

  8. Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

    Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上. Migrate 不要求源和目标节点必须共享存储,当然共享存储也是可以的. Migrate 前必须满足一个条件:计算 ...

  9. Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)

    上一节我们讨论了 snapshot,snapshot 的一个重要作用是对 instance 做备份. 如果 instance 损坏了,可以通过 snapshot 恢复,这个恢复的操作就是 Rebuil ...

最新文章

  1. window 获取进程运行长
  2. 《强化学习导论》经典课程10讲,DeepMind大神David Silver主讲
  3. Android中文输入的新选择——搜狗拼音输入法
  4. Spring boot的put请求
  5. 纯javascript实现pdf签名_Mac最强PDF编辑工具
  6. MySQL系列之E-1------MySQL主从复制原理
  7. matlab瓶盖盖严检查,盖检机|瓶盖检测|外观检测设备|誉阵科技
  8. jquery 读取checkbox
  9. 画等高线_课堂妙招 | 辣椒玩转等高线
  10. android蜂巢效果、环形菜单、Kotlin影视应用、简约时钟、查看导出App、支付宝AR扫码效果等源码
  11. 20182319彭淼迪第一周学习总结
  12. 阿尔伯塔计算机硕士录取,阿尔伯塔大学计算机工程专业硕士.pdf
  13. Debian vmtools安装后 不能复制粘贴文件
  14. win7计算机不能设置双屏怎么回事,告诉你win7怎么设置双屏显示
  15. 分析system_call中断处理过程
  16. 基于Robot Studio的工业机器人汽车喷涂仿真设计
  17. 1.5-CPU性能-软中断
  18. 蓝桥杯之DS18B20
  19. 【论文笔记】PnP-AdaNet:即插即用的对抗域适应网络,用于跨模态心脏分割的基准
  20. JS 前端 判断字符串是否相等

热门文章

  1. VisualSVN 备份
  2. Blueprint:一个Flash Builder代码示例的扩展
  3. kerberos的故事2
  4. redis淘汰策略面试题_redis有哪些数据淘汰策略
  5. java object monitor_Java精通并发-通过openjdk源码分析ObjectMonitor底层实现
  6. Ehab and Prefix MEXs CodeForces - 1364C(思维)
  7. 【阿里妈妈营销科学系列】第七篇:目标群组发现
  8. 奇小葩讲设备树(2/5)-- Linux设备树详解(二)文件构成
  9. mysql备份更换存储引擎_mysql数据库innodb存储引擎备份脚本
  10. 安徽工程大学计算机控制,(完整版)安徽工程大学期末考试《计算机控制技术》范围总结2 .pdf...