模块升级


按照当前社区( http://docs.openstack.org/developer/tripleo-docs/post_deployment/package_update.html )以及 Red Hat 官网( https://access.redhat.com/documentation/en/red-hat-openstack-platform/10/paged/upgrading-red-hat-openstack-platform/chapter-2-director-based-environments-performing-updates-to-minor-versions )提供资料,针对 tripleO 部署完成 OpenStack 平台后进行平台相关软件升级的步骤各不相同,其中社区中针对升级包的介绍非常简单,仅仅是 undercloud 中的一条命令:

  1. openstack overcloud update stack -i overcloud

而且对命令的说明也介绍了,该条命令执行后所触发的动作为在相应 overcloud 节点上执行 yum update 操作。

而红帽提供内容较为复杂,分多步骤完成:

  1. 升级 undercloud 中相应内容
  2. 升级 undercloud 中的 overcloud 镜像
  3. 通过 tripleO 升级 overcloud 中相应的内容

明确的限制如下:

  1. **配置了 instance HA 的集群中不适用**

我们来看一下红帽对这部分内容的具体介绍。

升级 undercloud

分为以下几个步骤:

  1. 停止 undercloud 中所有 openstack 相关服务
  2. 执行命令升级 undercloud 相关软件包
    1. yum update python-tripleoclient
  3. 执行命令升级 undercloud
    1. openstack undercloud upgrade
  4. 检查 undercloud 中所有相关服务状态
  5. 确认 undercloud 中 ironic 及 heat 相关资源情况

升级 undercloud 镜像

通过一条命令可以将 undercloud 中的镜像进行升级

  1. openstack overcloud image upload --update-existing --image-path ~/images/.

升级 overcloud

RH 针对 undercloud 的升级分了两个步骤:

  1. 制定一个 update plan命令示例如下,

    1. openstack overcloud deploy --stack overcloud -i --update-plan-only \
    2. --templates \
    3. -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
    4. -e /home/stack/templates/network-environment.yaml \
    5. -e /home/stack/templates/storage-environment.yaml \
    6. -e /home/stack/templates/rhel-registration/environment-rhel-registration.yaml \
    7. -e /usr/share/openstack-tripleo-heat-templates/environments/updates/update-from-vip.yaml \
    8. -e /home/stack/templates/param-updates.yaml
  2. 执行这个 plan,这里的动作和社区介绍内容一致,

    1. openstack overcloud update stack -i overcloud

    在升级过程中,-i 参数会引入很多断点,让我们可以逐步的完成升级过程,而不是并行的在所有节点上完成相关动作。


小结

从现有的资料来看,无论是红帽还是社区,tripleO 针对 overcloud 的升级控制粒度完全依靠于 yum 源服务器中的包,所以升级的风险一定程度上决定于包版本管理。