第 6 章 安装 Overcloud

现在,Undercloud 已经被安装,并配置了 Red Hat Enterprise Linux OpenStack Platform director。在本章中,我们使用 director 来创建 Overcloud 环境。我们在这里提供了 3 种不同的安装使用情景来创建 Overcloud,它们覆盖了不同级别的环境。

表 6.1. 使用情景概述

使用情景
级别
主题
测试 Overcloud
Web UI 的使用、节点注册、手工标记节点、基于计划创建 Overcloud
基本 Overcloud
中级
CLI 工具程序的使用、节点注册、手工标记节点、基本的网络分离和基于计划创建 Overcloud
高级 Overcloud
高级
CLI 工具程序的使用、节点注册、基于硬件的自动节点标记、Ceph Storage 设置、高级的网络分离、Overcloud 的创建、高可用性隔离配置

6.1. 使用情景 1:使用 Web UI 创建一个用于测试的 Overcloud

在这个使用情景中,我们创建一个用于测试的 OpenStack Platform 环境。它在 Overcloud 中包括两个节点:一个 Controller 节点和一个 Compute 节点,这两个机器都使用 libvirt/virsh 进行虚拟化。这个使用情景主要使用 director 的 web UI 来控制对测试 Overcloud 的创建过程。通过这个用户情景,可以向用户展示使用 director 创建一个用于“概念验证(proof-of-concept)” 的基本 Red Hat Enterprise Linux OpenStack Platform 环境。

重要

这个环境只被用作测试的目的,我们不推荐把它作为一个企业级的生产环境使用。

流程

  1. 在 director 的 web UI 中注册空节点。
  2. 检查所有节点的硬件。
  3. 为节点创建默认的 flavor。
  4. 为实施角色分配 flavor 和镜像。
  5. 使用 director 的默认计划创建 Overcloud 环境。

配置要求

  • 一个安装了 libvirt 虚拟化工具的 Red Hat Enterprise Linux 7.1 裸机,这个系统作为包括 Overcloud 的虚拟节点的主机。如需了解设置 libvirt 虚拟化的信息,请参阅 Virtualization Getting Started Guide(Red Hat Enterprise Linux 7)。
  • director 主机和 Overcloud 主机间的网络连接。这个网络作为 provisioning 网络。在这个示例中,使用 192.0.2.0/24 作为 provisioning 网络,director 使用 192.0.2.1 作为它的 IP 地址,Overcloud 主机使用 192.0.2.2 作为它的 IP 地址。

6.1.1. 配置 Overcloud 主机

这个用户情景的第一步是在 Overcloud 主机上创建虚拟机。

过程 6.1. 在 Overcloud 主机上创建虚拟机

  1. 从 Overcloud 主机上访问 Virtual Machine Manager
  2. 使用以下配置创建两个虚拟机:
    • 1 个 vCPU
    • 6144 MB 内存
    • 网络引导(PXE)
    • 40 GiB 存储
    • 网络选择:主机设备 eth0:macvtap,源模式:Bridge
    选择 macvtap 会把虚拟机设置为共享主机的以太网接口,这样,director 就可以直接访问这些节点。
  3. 关闭所有虚拟机。
  4. 记录下每个虚拟机的 MAC 地址。在这个示例中,使用以下 MAC 地址:aa:aa:aa:aa:aa:aabb:bb:bb:bb:bb:bb
现在,Overcloud 主机已包括了两个虚拟机作为测试环境。但是,director 需要通过 SSH 访问 virsh 来控制虚拟机的电源状态。接下来会为 director 创建用来和 Overcloud 主机进行连接所需要的 SSH 密钥对。

过程 6.2. 创建一个 SSH 密钥对

  1. stack 用户登录到 director,创建一个新的 SSH 密钥:
    [stack@director ~]$ ssh-keygen -t rsa -b 2048 -C "dmacpher@redhat.com" -f ./virtkey
    
    这个命令会要求输入一个密码。在这里请不要输入密码。这个命令会创建两个文件:私人密钥文件(virtkey)和公共密钥文件(virtkey.pub)。
  2. 把公共密钥中的内容复制到 Overcloud 主机的 root 用户的 /root/.ssh/authorized_keys 文件中:
    [stack@director ~]$ ssh-copy-id -i virtkey root@192.0.2.2
    
  3. 安全地保存私人密钥(virtkey)以供使用。
现在,Overcloud 主机可以和 director 进行连接。

6.1.2. 访问 director

在一个网络浏览器中使用 IP 地址访问 director 的 web UI。在这个示例中,IP 地址是 http://192.0.2.1。一个 director 的登录界面会显示。
The OpenStack Platform Director Login Screen

图 6.1. OpenStack Platform director 登录界面

在 director 主机上使用 stack 用户运行以下命令来获得您的环境的管理密码:
[stack@director ~]$ sudo hiera admin_password
3f2f4295a5eb6ad967b832d35e048852
使用这个密码以 admin 用户身份登录到 director 的 UI。

6.1.3. 注册节点

Overcloud 需要一组节点作为不同的实施角色。这意味着,我们需要在 director 中注册一组节点。在这个示例中,我们在 director 的 UI 中注册这些节点。

过程 6.3. 注册节点

  1. admin 用户身份登录到 director。
  2. 进入主菜单中的 Nodes
  3. + 按钮。节点注册界面会出现。
    Node Registration Screen

    图 6.2. 节点注册界面

  4. 为两个节点输入以下信息:
    • 节点 1:
      • Driver: PXE + SSH
      • SSH Address: Overcloud 主机
      • SSH User: root
      • SSH Key Contents: 粘贴 virtkey 中的内容
      • NIC MAC Addresses: aa:aa:aa:aa:aa:aa
      • Architecture: x86_64
      • CPUs: 1
      • Memory: 6144 MB
      • Local Disk: 40 GB
      • Kernel: bm-deploy-kernel
      • Ramdisk: bm-deploy-ramdisk
    • 节点 2:
      • Driver: PXE + SSH
      • SSH Address: Overcloud 主机
      • SSH User: root
      • SSH Key Contents: 粘贴 virtkey 中的内容
      • NIC MAC Addresses: bb:bb:bb:bb:bb:bb
      • Architecture: x86_64
      • CPUs: 1
      • Memory: 6144 MB
      • Local Disk: 40 GB
      • Kernel: bm-deploy-kernel
      • Ramdisk: bm-deploy-ramdisk
  5. Register Nodes
在注册完节点后,在终端中运行以下命令来发现每个节点的硬件属性:
$ openstack baremetal introspection bulk start
现在,节点已被 director 发现并注册。

6.1.4. 产生硬件档案

director 也需要为注册的节点产生一个硬件档案(或称为 flavor)。对于没有分配的节点,director 默认使用 baremetal flavor。使用 UI 产生一个名为 baremetal 的 flavor:

过程 6.4. 产生硬件档案

  1. 进入主菜单中的 Flavors
  2. + 按钮。创建 flavor 节点界面会出现。
    Flavors Creations Screen

    图 6.3. 创建 flavor 界面

  3. 为两个节点输入以下信息:
    • Name: baremetal
    • CPUs: 1
    • RAM (MB): 6144
    • Disk GB: 40 GB
    • Architecture: x86_64
  4. Create Flavor
  5. 在终端中运行下列命令来为 flavor 设置以下能力:
    $ openstack flavor set --property "capabilities:boot_option"="local" baremetal
    
这为节点创建了一个 flaovr。

6.1.5. 为实施的角色分配镜像

director UI 中的每个实施角色都需要两个设置:一个作为节点池的 flavor 和一个作为在 Overcloud 的相关节点中实施的镜像。director 会自动为每个节点分配 baremetal flavor,但实施角色仍然需要需要分配一个镜像。

过程 6.5. 为实施的角色分配镜像

  1. 进入主菜单中的 Deployment Roles
  2. Compute 实施角色点 Edit 按钮。编辑实施角色的界面会显示。
    Editing Deployment Roles

    图 6.4. 编辑实施角色

  3. 确认 Flavor 被设置为 baremetalImage 被设置为 overcloud-full。点 Save
  4. 为其它实施角色重复这个操作。
现在,实施角色都具有了相关的 flavor 和镜像。

6.1.6. 创建测试 Overcloud

创建 OpenStack 环境的最后一步是实施 director 中的计划。默认的计划是安装一个 Controller 节点和一个 Compute 节点。

过程 6.6. 创建 Overcloud

  1. 进入主菜单中的 Overview
  2. 在左面检查实施计划中的节点数量。默认的计划会从 baremetal flavor 中分配一个 Controller 节点和一个 Compute 节点。
    Overcloud Plan

    图 6.5. Overcloud 计划

  3. 在准备好开始创建过程时,点 Verify and Deploy 按钮。
    Verify and Deploy

    图 6.6. 验证和实施

Overcloud 创建过程开始,director 使用实施角色定义节点类型来进行部署。

6.1.7. 访问测试 Overcloud

当 Overcloud 创建完成后,UI 可能会要求您对 Overcloud 环境进行初始化。点 Initialize 按钮。
当 Overcloud 上线后,director 会向您提供访问 Overcloud 的详细信息。这包括 Horizon URLUser NamePassword

6.1.8.  完成对测试 Overcloud 环境的创建和配置

这包括创建测试 Overcloud 环境。使用这个环境用于“概念验证”,或以此对生产环境(第 6.2 节 “使用情景 2:使用 CLI 创建一个基本的 Overcloud”第 6.3 节 “使用情景 3:使用 CLI 创建一个带有 Ceph 节点的高级 Overcloud”)进行规划。