Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)
实现 instance 定制化,cloud-init(或 cloudbase-init)只是故事的一半,metadata service 则是故事的的另一半。两者的分工是:metadata service 为 cloud-init 提供自定义配置数据,cloud-init 完成配置工作。
Metadata Service
前面讨论了一些 cloud-init 和 cloudbase-init 相关的经验,收到了很多反馈,大家对 instance 启动时是如何完成自定义配置这个过程非常感兴趣,希望能够系统讲一下。这个主题确实很重要,实际应用场景很多,确实很有必要系统讨论一番,作为对现有教程的补充。
instance 是通过 image 部署出来的,image 中包含了操作系统(例如 Ubuntu 16.04),最常用的软件(例如 SSH)以及最通用的配置(例如 eth0 dhcp)。然而在创建 instance 的时候,我们往往希望对 instance 进行一些额外的配置,比如:安装某些包、开启一些服务、添加 SSH 秘钥、配置 hostname 等等。
有几个方法可以完成这项工作:
1. 将这些东西统统做到 image 中。
这种方案可以实现,但不现实。image 应该被看着是一个模板,存放的是通用的内容。在 image 中加入个性化配置的做法要么使 image 变得非常庞杂,要么导致数量众多的 image,不易管理。
2. instance 部署出来之后手工完成个性化配置。
由于需要手工操作,instance 数量多了之后工作量会激增,而且容易出错。
3. 推荐方案:由 OpenStack Metadata Service 提供 instance 的配置信息(这些信息被统称为 metadata)。instance 启动时向 Metadata Service 请求并获得自己的 metadata,instance 的 cloud-init(或 cloudbase-init)根据 metadata 完成个性化配置工作。
这个方案的优点是不需要修改基础 image,保证了 image 的稳定性,同时实现了 instance 自动化地个性配置。
最高频的应用
将 ssh public key 添加到 instance。
首先在 “Project -> Compute -> Access & Security” 中创建 Key Pair。
OpenStack 会创建一对 ssh pulbic key 和 private key,public key 存放在 OpenStack 数据库中,private key 会在我们点击 “Create Key Pair” 按钮时自动下载。
现在 "cloudman" 这个 key pair 就是我们要用的 metadata 了。部署 instance 时,选择 "cloudman"。
instance 启动后,可以看到这个 cloudman 的 public key 已经保存到 .ssh/authorized_keys 中了。
这样我们就可以用 cloudman 的 private key 直接登录 instance。
本节我们了解了 Metadata Service 的概念及其作用,并通过一个例子获得了些感性认识。下一节就要深入学习了,我们将从 Metadata Service 的架构开始。
Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)的更多相关文章
- Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...
- Metadata Service 一个最简单的应用 - 每天5分钟玩转 OpenStack(164)
实现 instance 定制化,cloud-init(或 cloudbase-init)只是故事的一半,metadata service 则是故事的的另一半.两者的分工是:metadata servi ...
- Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)
下面是 Metadata Service 的架构图,本节我们详细讨论各个组件以及它们之间的关系. nova-api-metadata nova-api-metadata 是 nova-api 的一个子 ...
- 获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)
我们将通过实验详细分析 instance 从 nova-api-metadata 获取信息的完整过程. 环境介绍 1. 一个 all-in-one 环境(多节点类似). 2. 已创建 neutron ...
- Service Plugin / Agent - 每天5分钟玩转 OpenStack(73)
Core Plugin/Agent 负责管理核心实体:net, subnet 和 port.而对于更高级的网络服务,则由 Service Plugin/Agent 管理.Service Plugin ...
- 获取 metadata 过程详解 - 每天5分钟玩转 OpenStack(167)
接上节,启动 neutron router 后 instance c1 终于拿到了 metadata, 从下面 c1 的启动日志可知: c1 所认为的 metadata 服务地址是 169.254.1 ...
- 通过 dhcp-agent 访问 Metadata - 每天5分钟玩转 OpenStack(168)
OpenStack 默认通过 l3-agent 创建和管理 neutron-ns-metadata-proxy,进而与 nova-metadata-api 通信.但不是所有环境都有 l3-agent, ...
- instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)
要想从 nova-api-metadata 获得 metadata,需要指定 instance 的 id.但 instance 刚启动时无法知道自己的 id,所以 http 请求中不会有 instan ...
- 运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)
上一节我们创建好了 Swarm 集群, 现在部署一个运行 httpd 镜像的 service,执行如下命令: docker service create --name web_server httpd ...
随机推荐
- U盘永久系统-centos
U盘永久系统-centos 问题: 服务器centos系统崩溃,重装需要备份其中数据,约4T,实验室有远程存储服务器,然而rescue模式进去后无法挂载远程存储,只好做一个真正的U盘系统解决了. 方案 ...
- 最大开源代码sourceforge 简介 及视音频方面常用的开源代码
所有的音视频凯源代码在这里:http://sourceforge.net/directory/audio-video/os:windows/,你可以下载分析,视频不懂请发邮件给我,帮你分析. 0.视频 ...
- 推动FPGA发展箭在弦上,国内厂商须走差异化之路
7月25日,由中国电子报与深圳投资推广署共同举办的“第六届(2018)中国FPGA产业发展论坛”在深圳召开. 作为四大通用集成电路芯片之一,FPGA(现场可编程门阵列)的重要性与CPU.存储器.DSP ...
- GOF23设计模式之组合模式(composite)
一.组合模式概述 将对象组合成树状结构以表示“部分和整体”层次结构,使得客户可以统一的调用叶子对象和容器对象. (1)组合模式的使用场景 把部分和整体的关系用树形结构来表示,从而使客户端可以使用统 ...
- 国内DP厂家的相关资料信息
这两天看了国内各个厂家的DSP开发板,总结一下,希望给同样需要的人一点经验和总结. 因为我是做通信系统,所以需要TI公司的C6000系列处理器. 目前C6000系列性能最强的是C66X系列,该系列的C ...
- java web 程序---在线时长
思路:toLocalString()这个方法 <body> <% long t=session.getLastAccessedTime(); long t2=session.getC ...
- CodeForces - 963B Destruction of a Tree (dfs+思维题)
B. Destruction of a Tree time limit per test 1 second memory limit per test 256 megabytes input stan ...
- 杂项:HTML5-3/3-技术要点
ylbtech-杂项:HTML5-3/3-技术要点 1.返回顶部 1. 重要标记 <video>标记 定义和用法: </video> 标签定义视频,比如电影片段或其他视频流 ...
- node的socket.io的之基本使用方法.
使用socket.io的使用创建一个socket.io服务器即可.但是该服务器依赖于一个已经创建的http服务器. 在http服务器运行之后,使用listen方法为该http服务器附加一个socket ...
- 深入浅出 Java Concurrency (8): 加锁的原理 (Lock.lock)
接上篇,这篇从Lock.lock/unlock开始.特别说明在没有特殊情况下所有程序.API.文档都是基于JDK 6.0的. public void java.util.concurrent.lock ...