4.4. Ceph secret 密钥站点分发


当您使用多个 Ceph 后端部署分布式计算节点(DCN)环境时,您可以为每个后端创建一个 Ceph 密钥。为了安全起见,请将最少的 Ceph 密钥数量分发到每个站点。为每个位置创建一个 secret。

  • 将每个 Ceph 后端的密钥添加到默认位置的 secret 中。
  • 为默认 Ceph 后端添加密钥,以及每个额外位置的本地 ceph 后端。

对于三个位置: az0、 az1az2,您必须有三个 secret。位置 az1az2 各自都有本地后端的密钥以及 az0 的密钥。位置 az0 包含所有 Ceph 后端密钥。

您可以在 Ceph 部署到每个边缘位置后创建所需的 secret,并收集每个 secret 的密钥环和配置文件。或者,您可以根据需要部署每个 Ceph 后端,并使用每个边缘部署更新 secret。

流程

  1. 为位置 az0 创建 secret。

    1. 如果您在所有需要存储的边缘站点部署了 Red Hat Ceph Storage (RHCS),请为 az0 创建一个 secret,其中包含所有密钥环和 conf 文件:

      oc create secret generic ceph-conf-az-0 \
      --from-file=az0.client.openstack.keyring \
      --from-file=az0.conf \
      --from-file=az1.client.openstack.keyring \
      --from-file=az1.conf \
      --from-file=az2.client.openstack.keyring \
      --from-file=az2.conf -n openstack
      Copy to Clipboard Toggle word wrap
    2. 如果您还没有在所有边缘站点上部署 RHCS,请为 az0 创建一个 secret,其中包含 az0 的密钥环和 conf 文件:

      oc create secret generic ceph-conf-az-0 \
      --from-file=az0.client.openstack.keyring \
      --from-file=az0.conf -n openstack
      Copy to Clipboard Toggle word wrap
  2. 当您在可用区 1 (z1)的边缘位置部署 RHCS 时,为位置 az1 创建一个 secret,其中包含本地后端的密钥环和 conf 文件,以及默认后端:

    oc create secret generic ceph-conf-az-1 \
    --from-file=az0.client.openstack.keyring \
    --from-file=az0.conf \
    --from-file=az1.client.openstack.keyring \
    --from-file=az1.conf -n openstack
    Copy to Clipboard Toggle word wrap
  3. 如果需要,为中央位置更新 secret:

    oc delete secret ceph-conf-az-0 -n openstack
    
    oc create secret generic ceph-conf-az-0 \
    --from-file=az0.client.openstack.keyring \
    --from-file=az0.conf \
    --from-file=az1.client.openstack.keyring \
    --from-file=az1.conf -n openstack
    Copy to Clipboard Toggle word wrap
  4. 当您在可用区 2 (z2)的边缘位置部署 RHCS 时,为位置 az2 创建一个 secret,其中包含本地后端的密钥环和 conf 文件,以及默认后端:

    oc create secret generic ceph-conf-az-2 \
    --from-file=az0.client.openstack.keyring \
    --from-file=az0.conf \
    --from-file=az2.client.openstack.keyring \
    --from-file=az2.conf -n openstack
    Copy to Clipboard Toggle word wrap
  5. 如果需要,为中央位置更新 secret:

    oc delete secret ceph-conf-az-0 -n openstack
    
    oc create secret generic ceph-conf-az-0 \
    --from-file=az0.client.openstack.keyring \
    --from-file=az0.conf \
    --from-file=az1.client.openstack.keyring \
    --from-file=az1.conf \
    --from-file=az1.client.openstack.keyring \
    --from-file=az1.conf \
    --from-file=az2.client.openstack.keyring \
    --from-file=az2.conf
    Copy to Clipboard Toggle word wrap
  6. [可选] 完成创建所需密钥后,您可以验证它们是否出现在 openstack 命名空间中:

    oc get secret -n openstack -o name | grep ceph-conf
    Copy to Clipboard Toggle word wrap

    输出示例:

    secret/ceph-conf-az-0
    secret/ceph-conf-az-1
    secret/ceph-conf-az-2
    Copy to Clipboard Toggle word wrap
  7. 创建 OpenStackDataPlaneNodeSet 时,请使用 extraMounts 字段下的适当的键:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    metadata:
      name: openstack-edpm-dcn-0
      namespace: openstack
    spec:
      ...
      nodeTemplate:
        extraMounts:
        - extraVolType: Ceph
          volumes:
          - name: ceph
            secret:
              secretName: ceph-conf-az-0
          mounts:
          - name: ceph
            mountPath: "/etc/ceph"
            readOnly: true
    Copy to Clipboard Toggle word wrap
  8. 在创建 data plane NodeSet 时,还必须使用 secret 名称更新 OpenStackControlPlane 自定义资源(CR):

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    spec:
      extraMounts:
        - name: v1
          region: r1
          extraVol:
            - propagation:
              - az0
              - CinderBackup
              extraVolType: Ceph
              volumes:
              - name: ceph
                secret:
                  name: ceph-conf-az-0
              mounts:
              - name: ceph
                mountPath: "/etc/ceph"
                readOnly: true
            - propagation:
              - az1
              extraVolType: Ceph
              volumes:
              - name: ceph
                secret:
                  name: ceph-conf-az-1
              mounts:
              - name: ceph
                mountPath: "/etc/ceph"
                readOnly: true
            ...
    Copy to Clipboard Toggle word wrap
    注意

    如果 CinderBackup 服务是部署的一部分,则必须将其包含在传播列表中,因为它在其 pod 名称中没有可用区。

  9. 当您更新 OpenStackControlPlane CR 中的 glanceAPIs 字段时,Image 服务(glance) pod 名称与 extraMounts 传播 实例匹配:

         glanceAPIs:
           az0:
             customServiceConfig: |
             ...
           az1:
             customServiceConfig: |
             ...
    Copy to Clipboard Toggle word wrap
  10. 当您更新 OpenStackControlPlane CR 中的 cinderVolumes 字段时,块存储服务(cinder) pod 名称也必须与 extraMounts 传播 实例匹配:

    kind: OpenStackControlPlane
    spec:
      <...>
      cinder
        <...>
        cinderVolumes:
          az0:
            <...>
          az1:
            <...>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat