加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

OpenStack假造机怎样获取metadata

发布时间:2018-08-16 06:04:34 所属栏目:站长百科 来源:佚名
导读:技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战 1. 关于OpenStack metadata处事 我们知道OpenStack假造机是通过cloud-init完成初始化设置,好比网卡设置、hostname、初始化暗码以及密钥设置等。cloud-init是运行在假造机内部的一
副问题[/!--empirenews.page--] 技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战

 1. 关于OpenStack metadata处事

我们知道OpenStack假造机是通过cloud-init完成初始化设置,好比网卡设置、hostname、初始化暗码以及密钥设置等。cloud-init是运行在假造机内部的一个历程,它通过datasource获取假造机的设置信息(即metadata)。cloud-init实现了许多差异的datasource,差异的datasource实现道理纷歧样。较量常用的datasource首要有以下两种:

  • ConfigDriver: Nova把全部设置信息写入到当地的一个raw文件中,然后通过cdrom情势挂载到假造机中。此时在假造机内部可以看到相同/dev/sr0(注:sr代表 scsi + rom)的假造装备。cloud-init只必要读取/dev/sr0文件信息即可获取假造机设置信息。
  • Metadata: Nova在当地启动一个HTTP metadata处事,假造机只必要通过HTTP会见该metadata处事获取相干的假造机设置信息。

ConfigDriver的实现道理较量简朴,本文不再先容。这里重点先容Metadata,首要办理以下两个题目:

  1. Nova Metadata处事启动在宿主机上(nova-api地址的节制节点),假造机内部租户收集和宿主机的物理收集是不通的,假造机怎样会见Nova的Metadata处事。
  2. 假设题目1已包办理,那么Nova Metadata处事怎样知道是哪个假造机提倡的哀求。

OpenStack假造机怎样获取metadata

2. Metadata处事设置

2.1 Nova设置

Nova的metadata处事名称为nova-api-metadata,不外凡是会把处事与nova-api处事归并:

  1. [DEFAULT] 
  2. enabled_apis = osapi_compute,metadata 

其它假造机遇见Nova的Metadata处事必要Neutron转发,缘故起因后头讲,这里只必要留意在nova.conf设置:

  1. [neutron] 
  2. service_metadata_proxy = true 

2.2 Neutron设置

前面提到假造机遇见Nova的Metadata处事必要Neutron转发,可以通过l3-agent转发,也可以通过dhcp-agent转发,怎样选择必要按照现实环境:

  • 通过l3-agent转发,则假造机地址的收集必需关联了router。
  • 通过dhcp-agent转发,则假造机地址的收集必需开启dhcp成果。

Metadata默认是通过l3-agent转发的,不外因为在现实环境下,假造机的收集凡是城市开启dhcp成果,但不必然必要router,因此我更倾向于选择通过dhcp-agent转发,设置如下:

  1. # /etc/neutron/dhcp_agent.ini [DEFAULT] 
  2. force_metadata = true 
  3.  
  4. # /etc/neuron/l3_agent.ini [DEFAULT] 
  5. enable_metadata_proxy = false 

本文接下来的全部内容均基于以上设置情形。

3 OpenStack假造机怎样会见Nova Metadata处事

3.1 从假造机遇见Metadata处事提及

cloud-init会见metadata处事的URL地点是http://169.254.169.254,这个IP很出格,首要是效仿了AWS的Metadata处事地点,它的网段是169.254.0.0/16,这个IP段着实是保存的,即IPv4 Link Local Address,它和私有IP(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)相同,不能用于互联网路由,凡是只用于直连收集。假如操纵体系(Windows)获取IP失败,也有也许自动设置为169.254.0.0/16网段的一个IP。

那AWS为什么选择169.254.169.254这个IP呢,这是由于选择Link Local IP可以停止与用户的IP斗嘴,至于为什么选择169.254.169.254这个IP而不是169.254.0.0/24的其余IP,或许是为了好记吧。

其它AWS尚有几个很风趣的地点:

  • 169.254.169.253: DNS处事。
  • 169.254.169.123: NTP处事。

更多关于169.254.169.254信息,可以参考whats-special-about-169-254-169-254-ip-address-for-aws。

OpenStack假造机也是通过http://169.254.169.254获取假造机的初始化设置信息:

  1. $ curl -sL 169.254.169.254/openstack/latest/meta_data.json {"uuid": "daf32a70-42c9-4d30-8ec5-3a5d97582cff", "availability_zone": "nova", "hostname": "int32bit-test-1.novalocal", "launch_index": 0, "devices": [], "project_id": "ca17d50f6ac049928cc2fb2217dab93b", "name": "int32bit-test-1"} 

从以上输出可见从metadata处事中我们获取了假造机的uuid、name、project id、availability_zone、hostname等。

假造机怎么通过会见169.254.169.254这个地点就可以获取Metadata信息呢,我们起首查察下假造机的路由表:

  1. # route -n 
  2. Kernel IP routing table 
  3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
  4. 0.0.0.0         10.0.0.126      0.0.0.0         UG    0      0        0 eth0 
  5. 10.0.0.64       0.0.0.0         255.255.255.192 U     0      0        0 eth0 
  6. 169.254.169.254 10.0.0.66       255.255.255.255 UGH   0      0        0 eth0 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读