如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)

这是 OpenStack 实施经验分享系列的第 11 篇。

本节教大家更新 OpenStack 组件的方法。请注意,是更新(Update)而不是升级(Upgrade)。更新是给组件打补丁,版本不变;而升级是刷新版本,比如从 kilo 升级到 liberty。

更新真的有必要吗?

对于已经部署好的 OpenStack,我们有更新某个组件的需求吗? 答案是:有!

OpenStack 是软件,是软件就会有 bug。 OpenStack 包含了很多组件,结构很松散,每个组件可以单独更新,只要保证各个组件都属于同一个大版本(比如 kilo, liberty)就不会有问题。

当我们遇到了 bug,如果社区已经有 fix,只需要更新包含该 fix 的组件就可以了,其他组件保持不变。

下面以 nova 组件为例演示如何更新。 假设目前部署的 OpenStack 是 kilo,现在发现了一个 bug,需要升级,最简单的办法是升级到 nova 在 kilo 里的最新版本,步骤如下:

  1. 从 github clone nova。
  2. 切换到 kilo 的最新版本。
  3. 安装 nova python 源码。
  4. 重启所有 nova-* 服务。

从 github clone nova

OpenStack 的所以代码都是在 github 上维护的,每个模块有自己的 repository. nova 的 repository 在 https://github.com/openstack/nova

点击 “Branches”,可以看到 nova 最近的几个版本。

咦,怎么没有 kilo? 别着急,点击 “Tags”。

这里有 kilo-eol,"eol" 表示 “end of life”,意味着 nova 对于 kilo 不在更新了,是 kilo 的最终版本。如果要更新 kilo 上的 nova,用这个版本就行了。

通过 git clone 命令下载 nova,下载链接如下:

运行命令:

git clone https://github.com/openstack/nova.git

切换到 kilo 的最新版本

下载完成后,查看当前的 branch 为 master:

切换到 kilo-eol:

确认目前已经是 kilo-eol 了:

安装 nova python 源码

OpenStack 用 python 开发,更新版本很简单,只需要通过 pip 命令安装新版本的源代码就行了,没有编译等步骤。

在 nova 目录下执行如下命令:

pip install .

nova 已经从 nova-2015.1.3.dev1 更新到 nova-2015.1.4 了。

重启所有 nova-* 服务

所有运行了 nova-* 服务的节点(控制节点和计算节点)都需要更新源代码并重启服务,最简单的方法是重启整个节点。

至此,nova 组件更新完成。下节我们将再分享一个 troubleshooting 的案例。

时间: 2024-12-15 12:36:32

如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)的相关文章

教你看懂 OpenStack 日志 - 每天5分钟玩转 OpenStack(29)

instance 从创建到删除的整个生命周期都是由 Nova 管理的. 后面各小节我们以 instance 生命周期中的不同操作场景为例,详细分析 Nova 不同组件如何协调工作,并通过日志分析加深大家对 Nova 的理解. 在研究 Nova 各个操作之前,我们先来学习一个重要的内容:OpenStack 日志.OpenStack 的日志记录了非常详细的细节信息,是我们学习和 troubleshoting 的利器. 日志的位置 我们实验环境使用的是 devstack,日志都统一放在 /opt/st

OpenStack 架构 - 每天5分钟玩转 OpenStack(15)

终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版本以字母顺序命名.现在已经到第 12 个版本 Liberty(字母 L). OpenStack最初只有两个模块(服务),现在已经有 20+(见下图),每个模块作为独立的子项目开发. 面对如此庞大的阵容,作为初学者我们如何起步呢? 这也是 CloudMan 写这个系列教程的初衷: 通过实际操作帮助初学

如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)

本节首先讨论 image 删除操作,然后介绍 OpenStack CLI 的使用方法,最后讨如何 Troubleshoot. Web UI 删除 image admin 登录后,Project -> Compute -> Images在列表中选择格式为 ARI 和 AKI 的 image,点击 点击确认删除 操作成功 CLI 删除 image 设置环境变量 查询现有image 删除image 如何使用 OpenStack CLI OpenStack 服务都有自己的 CLI. 命令很好记,就是服

每天5分钟 玩转OpenStack

最近在学习OpenStack的相关知识,一直苦于OpenStack的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在51CTO上发现了一个热点的专题关于OpenStack的,题目叫做<每天5分钟 玩转OpenStack>,抱着试试的态度看了几篇,被文章的内容和书写风格吸引了,内容全面,思路清晰,简单易懂,关键是每篇博文的内容很少,绝对是一泡大便的功夫.每周一.周三.周五定时更新,微信也有同步更新.不过大神在博客园cnblogs上的博文没有目录,每次翻阅的时候甚是费劲,可能是大神太忙了,

写在最前面 - 每天5分钟玩转 OpenStack(1)

<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack. 为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所以

如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)

在前面的实验中,我们部署了多个副本的服务,本节将讨论如何滚动更新每一个副本. 滚动更新降低了应用更新的风险,如果某个副本更新失败,整个更新将暂停,其他副本则可以继续提供服务.同时,在更新的过程中,总是有副本在运行的,因此也保证了业务的连续性. 下面我们将部署三副本的服务,镜像使用 httpd:2.2.31,然后将其更新到 httpd:2.2.32. 创建服务: docker service create --name my_web --replicas=3 httpd:2.2.31 将 serv

创建 Pool & VIP - 每天5分钟玩转 OpenStack(122)

上节完成了 LBaaS 配置,今天我们开始实现如下 LBaaS 环境. 环境描述如下:1. 创建一个 Pool "web servers".2. 两个 pool member "WEB1" 和 "WEB2",均为运行 Ubuntu cloud image 的 instance.3. load balancer VIP 与 floating IP 关联.4. 位于外网的 client 通过 floating IP 外网访问 web server.

Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)

Nova 物理部署方案 前面大家已经看到 Nova 由很多子服务组成,同时我们也知道 OpenStack 是一个分布式系统,可以部署到若干节点上,那么接下来大家可能就会问: Nova 的这些服务在物理上应该如何部署呢? 对于 Nova,这些服务会部署在两类节点上:计算节点和控制节点. 计算节点上安装了 Hypervisor,上面运行虚拟机. 由此可知: 1. 只有 nova-compute 需要放在计算节点上. 2. 其他子服务则是放在控制节点上的. 下面我们可以看看实验环境的具体部署情况. 通

学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)

作为 OpenStack 的核心教程,我们已经到了最后总结的部分. OpenStack 目前已经有好几十个模块,本教程讨论的是最最重要的核心模块:Keystone,Nova,Glance,Cinder 和 Neutron.请大家看下图: 此图截自 https://www.openstack.org/software/project-navigator/,这是 OpenStack 官方定义的 6 个 Core Service.每个模块都会从三个维度来衡量: ADOPTION - 采用度 MATUR