第 5 章 在 Google Cloud Platform 上将 Red Hat Enterprise Linux 镜像部署为 Google Compute Engine 实例
您有多个选项,可在 Google Cloud Platform(GCP)上将 Red Hat Enterprise Linux(RHEL)7 镜像部署为 Google Compute Engine(GCE)实例。本章讨论选择镜像的选项,以及列出或注明主机系统和虚拟机的系统要求。本章介绍了从 ISO 镜像创建自定义虚拟机、上传到 GCE 并启动实例的步骤。
本章在很多位置使用了 Google 文档。如需更多信息,请参阅引用的 Google 文档。
有关 GCP 红帽产品认证列表,请参阅 Google Cloud Platform 上的红帽。
先决条件
- 您需要一个红帽客户门户网站帐户才能完成本章中的步骤。
- 使用 GCP 创建帐户来访问 Google Cloud Platform 控制台。如需更多信息,请参阅 Google Cloud。
- 通过 Red Hat Cloud Access 程序启用您的红帽订阅。Red Hat Cloud Access 程序允许您在红帽的完全支持下将红帽订阅从物理或内部系统移到 GCP。
其它资源
5.1. GCP 上的 Red Hat Enterprise Linux 镜像选项
下表列出了镜像选择和镜像选项的不同。
表 5.1. 镜像选项
| 镜像选项 | 订阅 | 示例情境 | 注意事项 |
|---|---|---|---|
| 选择部署移至 GCP 的自定义镜像。 | 利用您现有的红帽订阅。 | 通过 Red Hat Cloud Access 程序 启用订阅,上传您的自定义镜像并附加您的订阅。 | 订阅只包括红帽产品的成本;您还需要支付其他成本。 移至 GCP 的自定义镜像名为 "Cloud Access" 镜像,因为您利用了您现有的红帽订阅。红帽直接为 Cloud Access 镜像提供支持。 |
| 选择部署包含 RHEL 的现有 GCP 镜像。 | GCP 镜像包括一个红帽产品。 | 在 GCP Compute Engine 上启动实例时选择 RHEL 镜像,或者从 Google Cloud Platform Marketplace 中选择镜像。 | 根据 pay-as-you-go 模式每小时向 GCP 支付。这样的镜像称为 "on-demand" 镜像。GCP 通过支持协议支持 on-demand 镜像。 |
您无法将 on-demand 实例转换为 Red Hat Cloud Access 实例。要从 on-demand 镜像改为 Red Hat Cloud Access bring-your-own subscription(BYOS)镜像,创建一个新的 Red Hat Cloud Access 实例,并从您的 on-demand 实例迁移数据。在迁移数据后取消您的 on-demand 实例以避免出现重复账单。
本章的剩余部分包含与自定义镜像相关的信息和流程。
5.2. 理解基础镜像
本节介绍使用预配置的基础镜像及其配置设置的信息。
5.2.1. 使用自定义基础镜像
要手动配置虚拟机,请以基础(启动程序)虚拟机镜像开始。创建基本虚拟机镜像后,您可以修改配置设置并添加虚拟机在云中操作的软件包。您可在上传镜像后为特定应用程序进行额外的配置更改。
5.2.2. 虚拟机配置设置
云虚拟机必须具有以下配置设置。
表 5.2. 虚拟机配置设置
| 设置 | 建议 |
|---|---|
| ssh |
|
| dhcp | 应该为 dhcp 配置主虚拟适配器。 |
5.3. 从 ISO 镜像创建基本虚拟机
按照本节中的步骤从 ISO 镜像创建基础镜像。
先决条件
按照 Virtualization 部署和管理指南,为您的 Red Hat Enterprise Linux 7 主机机器启用虚拟化。
5.3.1. 下载 ISO 镜像
流程
- 从红帽客户门户网站下载最新的 Red Hat Enterprise Linux ISO 镜像。
-
将镜像移动到
/var/lib/libvirt/images目录中。
5.3.2. 从 ISO 镜像创建虚拟机
流程
- 确保已为虚拟化启用主机机器。有关安装可升级软件包的信息和步骤,请参阅在现有 Red Hat Enterprise Linux 系统上安装虚拟化软件包
创建并启动基本 Red Hat Enterprise Linux 虚拟机。有关创建虚拟机的说明,请参阅创建虚拟机。
如果使用命令行创建虚拟机,请确保将默认内存和 CPU 设置为您所需的容量。将您的虚拟网络接口设置为 virtio。
下面是一个基本的命令行示例。
virt-install --name _vmname_ --memory 2048 --vcpus 2 --disk size=8,bus=virtio --location rhel-7.0-x86_64-dvd.iso --os-variant=rhel7.0
如果您使用 virt-manager 应用程序创建虚拟机,请按照使用 virt-manager 创建虚拟机的步骤进行以下操作:
- 不要选择 Immediately Start VM。
- 将 Memory 和 Storage Size 设置为您需要的值。
- 在开始安装前,请确保将 Virtual Network Interface Settings 中的 Model 更改为 virtio,并将您的 vCPU 更改为您想要的虚拟机容量设置。
5.3.3. 完成 RHEL 安装
执行以下步骤完成安装并在虚拟机启动后启用 root 访问。
流程
- 选择您要在安装过程中使用的语言。
在 Installation Summary 视图中:
- 点 Software Selection,选择 Minimal Install。
- 点 Done。
点击 Installation Destination 并检查 Storage Configuration 中的 Custom。
-
确保
/boot验证至少有 500 MB。您可以使用剩余空间作为 root/。 - 建议使用标准分区,但您也可以使用逻辑卷管理(LVM)。
- 您可以将 xfs、ext4 或者 ext3 用于文件系统。
- 完成更改后点 Done。
-
确保
- 点 Begin Installation。
- 设置 Root 密码。
-
重启虚拟机,然后在安装完成后以
root身份登录。 配置镜像。
注意确定安装并启用
cloud-init软件包。- 关闭虚拟机。
5.4. 将 RHEL 镜像上传到 GCP
按照本节中的步骤,在主机机器中将您的镜像上传到 GCP
5.4.1. 在 GCP 上创建新项目
完成以下步骤,在 GCP 上创建新项目。
先决条件
您必须使用 GCP 创建了一个帐户。如果没有,请参阅 Google Cloud。
流程
- 启动 GCP 控制台。
- 点击 Google Cloud Platform 右侧的下拉菜单。
- 在弹出菜单中点击 NEW PROJECT。
- 在 New Project 窗口中输入新项目的名称。
- 选择 Organization。如果需要,点击下拉菜单更改机构。
- 确认您的父机构或文件夹的 位置。如果需要,点 Browse 搜索并更改这个值。
点击 CREATE 创建新 GCP 项目。
注意安装 Google Cloud SDK 后,您可以使用
gcloud projects createCLI 命令创建项目。下面是一个简单的例子。gcloud projects create my-gcp-project3 --name project3
这个示例创建项目 ID 为
my-gcp-project3,项目名称为project3。如需更多信息,请参阅 gcloud 项目创建。
其它资源
5.4.2. 安装 Google Cloud SDK
完成以下步骤以安装 Google Cloud SDK。
先决条件
- 如果您还没有这样做,在 GCP 上创建一个项目。如需更多信息,请参阅在 Google Cloud Platform 上创建新项目。
- 确定您的主机系统包含 Python 2.7 或更高版本。如果没有安装,安装 Python 2.7。
流程
- 按照下载和提取 Google Cloud SDK 归档的 GCP 说明。详情请查看 GCP 文档中的 Linux Quickstart。
按照初始化 Google Cloud SDK 的说明。
注意初始化 Google Cloud SDK 后,您可以使用
gcloudCLI 命令执行任务并获取有关项目和实例的信息。例如,您可以使用gcloud compute project-info describe --project <project-name>命令显示项目信息。
5.4.3. 为 Google Compute Engine 创建 SSH 密钥
执行以下步骤使用 GCE 生成并注册 SSH 密钥,以便您可以使用它的公共 IP 地址直接将 SSH 连接到实例。
流程
使用
ssh-keygen命令生成用于 GCE 的 SSH 密钥对。# ssh-keygen -t rsa -f ~/.ssh/google_compute_engine
- 在 GCP Console Dashboard 页面 中,点击 Google Cloud Console 标题 左侧的 Navigation 菜单,然后选择 Compute Engine 并选择 Metadata。
- 点 SSH Keys,然后点 Edit。
输入从
~/.ssh/google_compute_engine.pub文件生成的输出并点 Save。现在,您可以使用标准 SSH 连接到实例。
# ssh -i ~/.ssh/google_compute_engine <username>@<instance_external_ip>
您可以运行 gcloud compute config-ssh 命令来使用实例的别名填充配置文件。别名允许按实例名称简单的 SSH 连接。有关 gcloud compute config-ssh 命令的详情,请参考 gcloud compute config-ssh。
5.4.4. 在 GCP Storage 中创建存储桶
导入到 GCP 需要 GCP Storage Bucket。完成以下步骤以创建存储桶。
流程
如果您还没有登录到 GCP,请使用以下命令登录。
# gcloud auth login
创建存储桶。
# gsutil mb gs://bucket_name
注意另外,您可以使用 Google Cloud Console 创建存储桶。如需更多信息,请参阅创建存储桶。
其它资源
5.4.5. 转换并上传您的镜像到您的 GCP 存储桶
完成以下步骤,将您的镜像转换并上传到您的 GCP 存储桶。示例是代表,它们将 qcow2 镜像转换为 raw 格式,然后将该镜像 tar 用于上传。
流程
运行
qemu-img命令转换您的镜像。转换的镜像必须具有名称disk.raw。# qemu-img convert -f qcow2 -O raw rhel-sample.qcow2 disk.raw
打包镜像。
# tar --format=oldgnu -Sczf disk.raw.tar.gz disk.raw
将镜像上传到之前创建的存储桶。上传可能需要几分钟时间。
# gsutil cp disk.raw.tar.gz gs://bucket_name
验证步骤
- 在 Google Cloud Platform 主屏幕中点击折叠菜单图标并选择 Storage,然后选择 Browser。
点存储桶的名称。
打包的镜像列在存储桶名称下。
注意您还可以使用 GCP 控制台上传您的镜像。要做到这一点,请点击存储桶的名称,然后点击 Upload 文件。
5.4.6. 从 GCP 存储桶中创建镜像
执行以下步骤从 GCP 存储桶中的对象创建镜像。
流程
运行以下命令来为 GCE 创建镜像。指定您要创建的镜像的名称、存储桶名称和打包的镜像的名称。
# gcloud compute images create my-image-name --source-uri gs://my-bucket-name/disk.raw.tar.gz
注意另外,您可以使用 Google Cloud Console 创建镜像。如需更多信息,请参阅创建、删除和弃用自定义镜像。
另外,还可在 GCP Console 中找到该镜像。
- 点击 Google Cloud Console 标题左侧的 导航 菜单。
- 选择 Compute Engine ,然后选择 Images。
5.4.7. 从镜像创建 Google Compute Engine 实例
完成以下步骤,使用 GCP 控制台配置 GCE 虚拟机实例。
以下流程提供了使用 GCP 控制台创建基本虚拟机实例的说明。如需有关 GCE 虚拟机实例及其配置选项的更多信息,,参阅创建并启动虚拟机实例。
流程
- 在 GCP Console Dashboard 页面 中,点击 Google Cloud Console 标题 左侧的 Navigation 菜单,选择 Compute Engine,然后选择 Images。
- 选择您的镜像。
- 点 Create Instance。
- 在 Create an instance 页面中,为您的实例输入一个 Name。
- 选择一个 Region 和 Zone。
- 选择满足或超过工作负载要求的机器配置。
- 确保引导磁盘指定了您的镜像名称。
- (可选)在 Firewall 下,选择 Allow HTTP 流量 或 Allow HTTPS 流量。
点 Create。
注意这些是创建基本实例所需的最小配置选项。根据您的应用程序要求查看其他选项。
- 在虚拟机实例中查找您的镜像。
在 GCP Console Dashboard 中点击 Google Cloud Console 标题 左侧的 Navigation 菜单,选择 Compute Engine,然后选择 VM 实例。
注意另外,您可以使用
gcloud compute instances createCLI 命令从镜像创建 GCE 虚拟机实例。下面是一个简单的例子。gcloud compute instances create myinstance3 --zone=us-central1-a --image test-iso2-image
这个示例基于现有镜像
test-iso2-image在区us-central1-a中创建一个名为myinstance3的虚拟机实例。如需更多信息,请参阅 gcloud 计算实例创建。
5.4.8. 连接到您的实例
执行以下步骤使用其公共 IP 地址连接到 GCE 实例。
流程
运行以下命令以确保您的实例正在运行。该命令列出 GCE 实例的信息,包括实例是否在运行,以及正在运行的实例的公共 IP 地址。
# gcloud compute instances list
使用标准 SSH 连接到您的实例。这个示例使用之前创建的
google_compute_engine密钥。# ssh -i ~/.ssh/google_compute_engine <user_name>@<instance_external_ip>
注意GCP 提供了多种 SSH 到您的实例的方法。如需更多信息,请参阅连接到实例。
其它资源
5.4.9. 附加红帽订阅
完成以下步骤以附加您之前通过 Red Hat Cloud Access 程序启用的订阅。
先决条件
您必须已启用您的订阅。
流程
注册您的系统。
subscription-manager register --auto-attach
附加您的订阅。
- 您可以使用激活码来附加订阅。请参阅创建红帽客户门户网站激活码。
- 或者,您可以使用订阅池(池 ID)的 ID 手动附加订阅。请参阅通过 command Line 来附加和删除订阅。