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。

 

3.5.png

本节我们了解了 Metadata Service 的概念及其作用,并通过一个例子获得了些感性认识。下一节就要深入学习了,我们将从 Metadata Service 的架构开始。


优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/311494

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。