启动实例

本节创建必要的虚拟网络以支持启动实例。网络选项 1 包括一个提供商(外部)网络,其中包含一个使用该网络的实例。网络选项 2 包括一个提供商网络,其中包含一个使用该网络的实例,以及一个自助服务(私有)网络,其中包含一个使用该网络的实例。

本节中的说明使用控制器节点上的命令行界面 (CLI) 工具。但是,您可以按照在已安装这些工具的任何主机上的说明进行操作。

有关 CLI 工具的更多信息,请参阅 Pike 的 OpenStackClient 文档Queens 的 OpenStackClient 文档Rocky 的 OpenStackClient 文档

要使用仪表板,请参阅 Pike 的仪表板用户文档Queens 的仪表板用户文档Rocky 的仪表板用户文档

创建虚拟网络

为配置 Neutron 时选择的网络选项创建虚拟网络。如果您选择选项 1,则仅创建提供商网络。如果您选择选项 2,则创建提供商和自助服务网络。

创建适合您环境的适当网络后,您可以继续准备启动实例的环境。

创建 m1.nano flavor

最小的默认 flavor 每实例消耗 512 MB 内存。对于包含小于 4 GB 内存的计算节点的环境,我们建议创建仅需要 64 MB 内存的 m1.nano flavor。仅将此 flavor 与 CirrOS 镜像一起用于测试目的。

$ openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

+----------------------------+---------+
| Field                      | Value   |
+----------------------------+---------+
| OS-FLV-DISABLED:disabled   | False   |
| OS-FLV-EXT-DATA:ephemeral  | 0       |
| disk                       | 1       |
| id                         | 0       |
| name                       | m1.nano |
| os-flavor-access:is_public | True    |
| properties                 |         |
| ram                        | 64      |
| rxtx_factor                | 1.0     |
| swap                       |         |
| vcpus                      | 1       |
+----------------------------+---------+

生成密钥对

大多数云镜像支持 公钥认证,而不是传统的密码认证。在启动实例之前,您必须将公钥添加到计算服务。

  1. 激活 demo 项目凭据

    $ . demo-openrc
    
  2. 生成密钥对并添加公钥

    $ ssh-keygen -q -N ""
    $ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
    
    +-------------+-------------------------------------------------+
    | Field       | Value                                           |
    +-------------+-------------------------------------------------+
    | fingerprint | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
    | name        | mykey                                           |
    | user_id     | 58126687cbcc4888bfa9ab73a2256f27                |
    +-------------+-------------------------------------------------+
    

    注意

    或者,您可以跳过 ssh-keygen 命令并使用现有的公钥。

  3. 验证密钥对的添加

    $ openstack keypair list
    
    +-------+-------------------------------------------------+
    | Name  | Fingerprint                                     |
    +-------+-------------------------------------------------+
    | mykey | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
    +-------+-------------------------------------------------+
    

添加安全组规则

默认情况下,default 安全组适用于所有实例,并包含防火墙规则,这些规则拒绝对实例的远程访问。对于 CirrOS 等 Linux 镜像,我们建议至少允许 ICMP(ping)和安全外壳 (SSH)。

  • default 安全组添加规则

    • 允许 ICMP(ping)

      $ openstack security group rule create --proto icmp default
      
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | created_at        | 2017-03-30T00:46:43Z                 |
      | description       |                                      |
      | direction         | ingress                              |
      | ether_type        | IPv4                                 |
      | id                | 1946be19-54ab-4056-90fb-4ba606f19e66 |
      | name              | None                                 |
      | port_range_max    | None                                 |
      | port_range_min    | None                                 |
      | project_id        | 3f714c72aed7442681cbfa895f4a68d3     |
      | protocol          | icmp                                 |
      | remote_group_id   | None                                 |
      | remote_ip_prefix  | 0.0.0.0/0                            |
      | revision_number   | 1                                    |
      | security_group_id | 89ff5c84-e3d1-46bb-b149-e621689f0696 |
      | updated_at        | 2017-03-30T00:46:43Z                 |
      +-------------------+--------------------------------------+
      
    • 允许安全外壳 (SSH) 访问

      $ openstack security group rule create --proto tcp --dst-port 22 default
      
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | created_at        | 2017-03-30T00:43:35Z                 |
      | description       |                                      |
      | direction         | ingress                              |
      | ether_type        | IPv4                                 |
      | id                | 42bc2388-ae1a-4208-919b-10cf0f92bc1c |
      | name              | None                                 |
      | port_range_max    | 22                                   |
      | port_range_min    | 22                                   |
      | project_id        | 3f714c72aed7442681cbfa895f4a68d3     |
      | protocol          | tcp                                  |
      | remote_group_id   | None                                 |
      | remote_ip_prefix  | 0.0.0.0/0                            |
      | revision_number   | 1                                    |
      | security_group_id | 89ff5c84-e3d1-46bb-b149-e621689f0696 |
      | updated_at        | 2017-03-30T00:43:35Z                 |
      +-------------------+--------------------------------------+
      

启动实例

如果您选择网络选项 1,则只能在提供商网络上启动实例。如果您选择网络选项 2,则可以在提供商网络和自助服务网络上启动实例。

块存储

如果您的环境包括块存储服务,您可以创建卷并将其附加到实例。

编排

如果您的环境包括编排服务,您可以创建一个启动实例的堆栈。

有关更多信息,请参阅 Pike 的编排安装指南Queens 的编排安装指南Rocky 的编排安装指南

共享文件系统

如果您的环境包括共享文件系统服务,您可以创建一个共享并将其挂载到实例中。

有关更多信息,请参阅 Pike 的共享文件系统安装指南Queens 的共享文件系统安装指南Rocky 的共享文件系统安装指南