云主机元数据是一组与一台云主机相关联的键值对。
用户可以通过Compute API
读写这些键值对。云主机
或者Nova服务
也可以获取这些metadata
。
元数据可以分为实例元数据(instance metadata
)和用户数据(instance user data
)。
1)实例元数据包括键值对或者自定义键值对(通过nova boot
命令的--meta
参数)。实例元数据在nova show <instance-id>
的输出中metadata
行显示。
2)用户数据是以user-data
为键的元数据,供部署在云主机中的云感知应用使用。
用户数据与普通实例元数据的不同在于它先于云主机创建,并从云主机中访问,可以用于存储配置、脚本以及其它任何信息。
云主机查询自己的元数据:
云主机可以通过访问http://169.254.169.254/ 这个URL来获取它的元数据信息。
# curl http://169.254.169.254/
1.0
2007-01-19
2007-03-01
...
2009-04-04
这个返回结果是元数据服务目前支持的接口版本号,可以选择最新的2009-04-04来查询元数据。
# curl http://169.254.169.254/2009-04-04/meta-data/
ami-id
...
block-device-mapping/
hostname
...
local-ipv4
...
public-keys/
...
获取元数据的请求会通过云主机的默认网关路由到网络节点上该云主机所在虚拟网络的虚拟网关设备上,并通过iptables的NAT规则重定向到neutron-ns-metadata-proxy服务,再经由neutron-metadata-agent最终由nova-api里提供的metadata服务返回云主机的虚拟机。
网友评论