启动实例

实例是在云中运行的虚拟机。

在启动实例之前,请收集以下参数

  • 实例源可以是包含镜像或快照的镜像、快照或块存储卷。

  • 您的实例的名称

  • 您的实例的规格(flavor),它定义了 nova 计算实例的计算、内存和存储容量。规格是服务器可用的硬件配置。它定义了可以启动的虚拟服务器的大小。

  • 任何用户数据文件。一个 用户数据 文件是元数据服务中的一个特殊键,它保存了一个云感知应用程序可以在访客实例中访问的文件。例如,一个使用用户数据的应用程序是 cloud-init 系统,它是一个来自 Ubuntu 的开源软件包,可在各种 Linux 发行版上使用,并处理云实例的早期初始化。

  • 访问和安全凭证,包括以下凭证之一或两者

    • 您的实例的密钥对,它们是在启动镜像时注入到镜像中的 SSH 凭证。为了成功注入密钥对,镜像必须包含 cloud-init 包。为每个项目至少创建一个密钥对。如果您已经使用外部工具生成了密钥对,可以将其导入到 OpenStack。您可以使用密钥对用于属于该项目中的多个实例。

    • 一个安全组,定义了哪些传入的网络流量被转发到实例。安全组包含一组防火墙策略,称为安全组规则

  • 如果需要,您可以为正在运行的实例分配一个浮动(公网)IP 地址,使其可以从云外部访问。请参阅 管理 IP 地址

  • 您还可以附加一个块存储设备,或,用于持久存储。

注意

使用默认安全组的实例默认情况下无法从云外部的任何 IP 地址访问。如果您希望这些 IP 地址访问实例,则必须修改默认安全组的规则。

在收集启动实例所需的参数后,您可以从 镜像 启动它。您可以直接从可用的 OpenStack 镜像或您已复制到持久卷的镜像启动实例。OpenStack 镜像服务提供了一个可供不同项目成员访问的镜像池。

收集启动实例的参数

在开始之前,请激活 OpenStack RC 文件。

  1. 创建一个规格。

    创建规格通常仅对云的管理员可用,因为这会影响云中高效的调度。

    $  openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.tiny
    
  2. 列出可用的规格。

    $ openstack flavor list
    

    记下您想要用于实例的规格的 ID

    +-----+-----------+-------+------+-----------+-------+-----------+
    | ID  | Name      |   RAM | Disk | Ephemeral | VCPUs | Is_Public |
    +-----+-----------+-------+------+-----------+-------+-----------+
    | 1   | m1.tiny   |   512 |    1 |         0 |     1 | True      |
    | 2   | m1.small  |  2048 |   20 |         0 |     1 | True      |
    | 3   | m1.medium |  4096 |   40 |         0 |     2 | True      |
    | 4   | m1.large  |  8192 |   80 |         0 |     4 | True      |
    | 5   | m1.xlarge | 16384 |  160 |         0 |     8 | True      |
    +-----+-----------+-------+------+-----------+-------+-----------+
    
  3. 列出可用的镜像。

    $ openstack image list
    

    记下您想要从中启动实例的镜像的 ID

    +--------------------------------------+---------------------------------+--------+
    | ID                                   | Name                            | Status |
    +--------------------------------------+---------------------------------+--------+
    | 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.5-x86_64-uec         | active |
    | df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.5-x86_64-uec-kernel  | active |
    | 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.5-x86_64-uec-ramdisk | active |
    +--------------------------------------+---------------------------------+--------+
    

    您还可以使用 grep 过滤镜像列表,以查找特定的镜像,如下所示

    $ openstack image list | grep 'kernel'
    
    | df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.5-x86_64-uec-kernel  | active |
    
  4. 列出可用的安全组。

    $ openstack security group list
    

    注意

    如果您是管理员用户,此命令将列出所有租户的安全组。

    记下您想要用于实例的安全组的 ID

    +--------------------------------------+---------+------------------------+----------------------------------+
    | ID                                   | Name    | Description            | Project                          |
    +--------------------------------------+---------+------------------------+----------------------------------+
    | b0d78827-0981-45ef-8561-93aee39bbd9f | default | Default security group | 5669caad86a04256994cdf755df4d3c1 |
    | ec02e79e-83e1-48a5-86ad-14ab9a8c375f | default | Default security group | 1eaaf6ede7a24e78859591444abf314a |
    +--------------------------------------+---------+------------------------+----------------------------------+
    

    如果您尚未创建任何安全组,则可以将实例分配给仅默认安全组。

    您可以查看指定安全组的规则

    $ openstack security group rule list default
    
  5. 列出可用的密钥对,并记下您用于 SSH 访问的密钥对名称。

    $ openstack keypair list
    

启动实例

您可以从各种来源启动实例。