1.10. 使用镜像服务
采用 Glance 意味着应禁用 Glance 的现有 OpenStackControlPlane
CR 补丁为启动服务,以使用源环境提供的配置参数启动。
当这个过程结束后,预期是查看 GlanceAPI
服务并运行:应更新 Keystone 端点
,并且源云的同一后端可用。如果满足上述条件,则方法将被视为已结束。
本指南还假设:
-
TripleO
环境(源云)在一个端运行; -
SNO
/CodeReadyContainers
在另一端运行; -
(可选)
crc
和TripleO
都可以访问内部/外部Ceph
集群
1.10.1. 先决条件 复制链接链接已复制到粘贴板!
- 以前的 Adoption 步骤已完成。值得注意的是,应已经采用 MariaDB 和 Keystone。
1.10.2. 流程 - Glance 采用 复制链接链接已复制到粘贴板!
与已经为 Keystone 所做的一样,Glance Adoption 遵循相同的模式。
1.10.2.1. 使用本地存储后端 复制链接链接已复制到粘贴板!
当 Glance 应使用本地存储后端(而非 Ceph)部署时,请修补 OpenStackControlPlane 来部署 Glance:
1.10.2.2. 使用 NFS 后端 复制链接链接已复制到粘贴板!
当基于 TripleO 的源云使用带有 NFS 后端的 Glance 时,在修补 OpenStackControlPlane 以部署 Glance 之前,验证一些与网络相关的前提条件非常重要。在源云中,验证 overcloud 用来配置 Glance 后端的 NFS 参数。特别是,在 TripleO heat 模板中找到以下变量通常是覆盖 /usr/share/openstack-tripleo-heat-templates/environments/storage/glance-nfs.yaml
[glance-nfs.yaml] 提供的默认内容:
GlanceBackend: file
GlanceNfsEnabled: true
GlanceNfsShare: 192.168.24.1:/var/nfs
在上例中,因为第一个变量显示,与 Cinder 不同,Glance 没有 NFS 后端:在这种情况下使用 File
驱动程序,在 scenes 后面,filesystem_store_datadir
通常指向 /var/lib/glance/images/
被映射到 GlanceNfsShare
变量提供的导出值。如果 GlanceNfsShare
没有通过应当传播到采用的 OpenStack
control plane 的网络导出,则人工管理员需要额外的操作,该操作必须停止 nfs-server
并将导出重新映射到 存储网络
。当 Glance 服务在源控制器节点中停止时,通常会发生此操作。在 podified control plane 中,根据 (网络隔离图 )将 Glance 附加到存储网络,通过关联的 NetworkAttachmentsDefinition
CR 传播,生成的 Pod 已经具有通过此网络处理镜像服务流量的适当权限。在部署的 OpenStack control plane 中,您可以使用以下命令检查 NodeNetworkConfigPolicy
(nncp
)和 NetworkAttachmentDefinition
(net-attach-def
)来验证网络映射是否与基于 TripleO 的环境中部署的内容匹配:
以上代表了在 openshift 环境中应检查的输出示例,以确保传播的网络没有问题。
以下步骤假设:
- Storage 网络已传播到 openstack control plane
-
Glance 能够访问存储网络,并通过端口
2049
连接到 nfs-server。
如果满足上述条件,可以采用 Glance
服务并创建与现有 NFS 共享连接的 新默认
GlanceAPI
实例。
注:
将 glance_nfs_patch.yaml
中的 nfs/server
ip 地址替换为用于访问 nfs-server
的 IP,并确保 nfs/path
指向 nfs-server
中的导出路径。
修补 OpenStackControlPlane 以使用 NFS 后端部署 Glance:
oc patch openstackcontrolplane openstack --type=merge --patch-file glance_nfs_patch.yaml
oc patch openstackcontrolplane openstack --type=merge --patch-file glance_nfs_patch.yaml
当 GlanceAPI 处于活跃状态时,您可以看到单个 API 实例:
oc get pods -l service=glance
$ oc get pods -l service=glance
NAME READY STATUS RESTARTS
glance-default-single-0 3/3 Running 0
pod 的描述必须报告:
也可以通过运行以下命令来重复检查挂载点:
您可以在 NFS 节点上运行 openstack image create
命令,并在 NFS 节点上运行 uuid 已在导出的目录中创建。
例如:
在 nfs-server 节点上,相同的 uuid
位于导出的 /var/nfs
中:
ls /var/nfs/
$ ls /var/nfs/
634482ca-4002-4a6d-b1d5-64502ad02630
1.10.2.3. 使用 Ceph 存储后端 复制链接链接已复制到粘贴板!
如果使用 Ceph 后端,则应使用 customServiceConfig
参数将正确的配置注入 GlanceAPI
实例。
确保 openstack
命名空间中创建了与 Ceph 相关的 secret (ceph-conf-files
),并且 OpenStackControlPlane
CR 的 extraMounts
属性已正确配置。这些任务在配置 Ceph 后端的早期采用步骤中 进行了描述。
修补 OpenStackControlPlane 以使用 Ceph 后端部署 Glance:
oc patch openstackcontrolplane openstack --type=merge --patch-file glance_patch.yaml
oc patch openstackcontrolplane openstack --type=merge --patch-file glance_patch.yaml
1.10.3. post-checks 复制链接链接已复制到粘贴板!
1.10.3.1. 从 OpenStack CLI 测试 glance 服务 复制链接链接已复制到粘贴板!
检查生成的 glance pod:
Ceph 机密已正确挂载,此时,我们来转到 OpenStack CLI,并检查服务是否处于活动状态,并且端点已正确更新。
检查您之前在源云中列出的镜像是否在 Aded 服务中可用:
1.10.3.2. 镜像上传 复制链接链接已复制到粘贴板!
您可以测试可以在采用的服务上创建镜像。