使用 Amazon Web Services 部署 OpenShift Data Foundation


Red Hat OpenShift Data Foundation 4.17

有关使用 Amazon Web Services 进行云存储部署 OpenShift Data Foundation 的说明

Red Hat Storage Documentation Team

摘要

请阅读本文档,了解如何使用 Red Hat OpenShift Container Platform 在 Amazon Web Services 上安装 Red Hat OpenShift Data Foundation。

使开源包含更多

红帽承诺替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、list 和 whitelist。由于此努力的显著性,这些更改将在即将推出的几个版本中逐步实施。详情请查看 CTO Chris Wright 信息

向红帽文档提供反馈

我们感谢您对文档的输入。请告诉我们如何使其更好。

要提供反馈,请创建一个 Bugzilla ticket:

  1. 进入 Bugzilla 网站。
  2. Component 部分中,选择 文档
  3. Description 字段中填写您要改进的建议。包括文档相关部分的链接。
  4. 单击 Submit Bug

前言

Red Hat OpenShift Data Foundation 支持在连接或断开连接的环境中的现有 Red Hat OpenShift Container Platform (RHOCP) AWS 集群上部署,以及代理环境的开箱即用支持。

注意

AWS 仅支持内部 OpenShift Data Foundation 集群。如需有关部署要求的更多信息,请参阅规划部署准备部署 OpenShift Data Foundation

要部署 OpenShift Data Foundation,请从 准备部署 OpenShift Data Foundation 章节的要求开始,并根据您的要求遵循您的环境的部署过程:

第 1 章 准备部署 OpenShift Data Foundation

使用动态存储设备在 OpenShift Container Platform 上部署 OpenShift Data Foundation 可让您选择创建内部集群资源。

在开始部署 Red Hat OpenShift Data Foundation 前,请按照以下步骤执行:

  1. 可选:如果要使用外部密钥管理系统(KMS) HashiCorp Vault 启用集群范围加密,请按照以下步骤执行:

  2. 可选: 如果要使用外部密钥管理系统(KMS) Thales CipherTrust Manager 启用集群范围加密,您必须首先启用密钥管理互操作性协议(KMIP),并在服务器上使用签名证书。

    1. 如果 KMIP 客户端不存在,请创建一个。在用户界面中,选择 KMIPClient ProfileAdd Profile

      1. 在创建配置集的过程中,将 CipherTrust 用户名添加到 Common Name 字段中。
    2. 通过进入到 KMIPRegistration TokenNew Registration Token 来创建令牌。为下一步复制令牌。
    3. 要注册客户端,请进入到 KMIPRegistered ClientsAdd Client。指定名称 。粘贴 上一步中的注册令牌然后单击保存
    4. Save Private Key 和 Save Certificate 下载 私钥和客户端证书
    5. 要创建新的 KMIP 接口,请导航到 Admin SettingsInterfacesAdd Interface

      1. 选择 KMIP Key Management Interoperability Protocol 并点 Next
      2. 选择空闲端口
      3. 选择 Network Interface 作为 all
      4. 选择 Interface Mode as TLS, verify client cert, user name taken from client cert, auth request is optional
      5. (可选)您可以在密钥被删除时启用硬删除以删除元数据和材料。它默认是禁用的。
      6. 选择要使用的证书颁发机构(CA),然后单击 Save
    6. 要获取服务器 CA 证书,请点击新创建的界面右侧的 Action 菜单 (&&),然后点 Download Certificate
    7. 可选:如果要在部署过程中启用 StorageClass 加密,请创建一个密钥来充当密钥加密密钥(KEK):

      1. 导航到 KeysAdd Key
      2. 输入 Key Name
      3. 分别将 AlgorithmSize 设置为 AES256
      4. 启用 Create a key in Pre-Active state,并设置激活的日期和时间。
      5. 确保在 Key Usage 下启用了 EncryptDecrypt
      6. 复制新创建的密钥的 ID,以在部署过程中用作唯一标识符。
  3. 最低启动节点要求

    当不符合标准部署资源要求时,OpenShift Data Foundation 集群将以最低配置进行部署。请参阅规划指南中的资源要求部分https://docs.redhat.com/en/documentation/red_hat_openshift_data_foundation/4.17/html-single/planning_your_deployment/index#resource-requirements_rhodf

  4. 灾难恢复要求

    Red Hat OpenShift Data Foundation 支持的灾难恢复功能需要满足以下所有先决条件才能成功实施灾难恢复解决方案:

    如需详细的要求,请参阅为 OpenShift Workloads 配置 OpenShift Data Foundation 灾难恢复以及 Red Hat Advanced Cluster Management for Kubernetes 文档中的安装指南 的要求和建议 部分。

第 2 章 使用动态存储设备部署 OpenShift Data Foundation

您可以使用 Amazon Web Services (AWS) EBS (类型,gp2-csigp3-csi)提供的动态存储设备在 OpenShift Container Platform 上部署 OpenShift Data Foundation,为您提供创建内部集群资源的选项。这会导致在内部置备基础服务,这有助于为应用提供额外的存储类。

另外,也可以使用 OpenShift Data Foundation 部署 Multicloud 对象网关(MCG)组件。如需更多信息,请参阅 部署独立多云对象网关

注意

AWS 仅支持内部 OpenShift Data Foundation 集群。如需有关部署要求的更多信息,请参阅规划部署

另外,请确保已满足 准备部署 OpenShift Data Foundation 章节的要求,然后按照以下步骤使用动态存储设备进行部署:

2.1. 安装 Red Hat OpenShift Data Foundation Operator

您可以使用 Red Hat OpenShift Container Platform Operator Hub 安装 Red Hat OpenShift Data Foundation Operator。

先决条件

  • 使用具有 cluster-admin 和 operator 安装权限的账户访问 OpenShift Container Platform 集群。
  • 在 Red Hat OpenShift Container Platform 集群中必须至少有三个 worker 或基础架构节点。
  • 有关其他资源要求,请参阅规划您的部署 指南。
重要

流程

  1. 登录 OpenShift Web 控制台。
  2. Operators → OperatorHub
  3. Filter by keyword 框中滚动或键入 OpenShift Data Foundation,以查找 OpenShift Data Foundation Operator。
  4. 单击 Install
  5. Install Operator 页面中设置以下选项:

    1. 将 Channel 更新为 stable-4.17
    2. Installation Mode 为 A specific namespace on the cluster
    3. Installed Namespace 为 Operator recommended namespace openshift-storage。如果 Namespace openshift-storage 不存在,它会在 Operator 安装过程中创建。
    4. 将 Approval Strategy 选为 AutomaticManual

      如果选择 Automatic 更新,Operator Lifecycle Manager (OLM)将自动升级 Operator 的运行实例,而无需任何干预。

      如果选择 手动 更新,则 OLM 会创建一个更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Operator 更新至更新的版本。

    5. 确保为 Console 插件 选择了 Enable 选项。
    6. 单击 Install

验证步骤

  • 成功安装 Operator 后,用户界面中会显示带有 Web 控制台更新信息 的弹出窗口。点此弹出窗口中的 Refresh web console 来反映控制台的更改。
  • 在 Web 控制台中:

    • 进入到 Installed Operators,再验证 OpenShift Data Foundation Operator 是否显示绿色勾号,指示安装成功。
    • 导航到 Storage,再验证 Data Foundation 仪表板是否可用。

2.2. 使用 Token 验证方法通过 KMS 启用集群范围的加密

您可以在密码库中启用用于令牌身份验证的键值后端路径和策略。

先决条件

流程

  1. 在密码库中启用 Key/Value (KV)后端路径。

    对于 vault KV secret 引擎 API,版本 1:

    $ vault secrets enable -path=odf kv

    对于 vault KV secret 引擎 API,版本 2:

    $ vault secrets enable -path=odf kv-v2
  2. 创建策略来限制用户对 secret 执行写入或删除操作:

    echo '
    path "odf/*" {
      capabilities = ["create", "read", "update", "delete", "list"]
    }
    path "sys/mounts" {
    capabilities = ["read"]
    }'| vault policy write odf -
  3. 创建与上述策略匹配的令牌:

    $ vault token create -policy=odf -format json

2.3. 使用 Kubernetes 验证方法通过 KMS 启用集群范围的加密

您可以使用密钥管理系统(KMS)为集群范围的加密启用 Kubernetes 验证方法。

先决条件

  • 管理员对 Vault 的访问权限。
  • 有效的 Red Hat OpenShift Data Foundation 高级订阅。如需更多信息,请参阅有关 OpenShift Data Foundation 订阅的知识库文章
  • OpenShift Data Foundation 操作器必须从 Operator Hub 安装。
  • 仔细选择唯一路径名称作为 后端路径,请仔细选择命名规则。您不能在以后更改此路径名称。

流程

  1. 创建服务帐户:

    $ oc -n openshift-storage create serviceaccount <serviceaccount_name>

    其中,<serviceaccount_name > 指定服务帐户的名称。

    例如:

    $ oc -n openshift-storage create serviceaccount odf-vault-auth
  2. 创建 clusterrolebindingsclusterroles

    $ oc -n openshift-storage create clusterrolebinding vault-tokenreview-binding --clusterrole=system:auth-delegator --serviceaccount=openshift-storage:_<serviceaccount_name>_

    例如:

    $ oc -n openshift-storage create clusterrolebinding vault-tokenreview-binding --clusterrole=system:auth-delegator --serviceaccount=openshift-storage:odf-vault-auth
  3. serviceaccount 令牌和 CA 证书创建 secret。

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: odf-vault-auth-token
      namespace: openshift-storage
      annotations:
        kubernetes.io/service-account.name: <serviceaccount_name>
    type: kubernetes.io/service-account-token
    data: {}
    EOF

    其中,<serviceaccount_name > 是上一步中创建的服务帐户。

  4. 从 secret 获取令牌和 CA 证书。

    $ SA_JWT_TOKEN=$(oc -n openshift-storage get secret odf-vault-auth-token -o jsonpath="{.data['token']}" | base64 --decode; echo)
    $ SA_CA_CRT=$(oc -n openshift-storage get secret odf-vault-auth-token -o jsonpath="{.data['ca\.crt']}" | base64 --decode; echo)
  5. 检索 OCP 集群端点。

    $ OCP_HOST=$(oc config view --minify --flatten -o jsonpath="{.clusters[0].cluster.server}")
  6. 获取服务帐户签发者:

    $ oc proxy &
    $ proxy_pid=$!
    $ issuer="$( curl --silent http://127.0.0.1:8001/.well-known/openid-configuration | jq -r .issuer)"
    $ kill $proxy_pid
  7. 使用上一步中收集的信息在 Vault 中设置 Kubernetes 验证方法:

    $ vault auth enable kubernetes
    $ vault write auth/kubernetes/config \
              token_reviewer_jwt="$SA_JWT_TOKEN" \
              kubernetes_host="$OCP_HOST" \
              kubernetes_ca_cert="$SA_CA_CRT" \
              issuer="$issuer"
    重要

    当签发者为空时,在 Vault 中配置 Kubernetes 验证方法:

    $ vault write auth/kubernetes/config \
              token_reviewer_jwt="$SA_JWT_TOKEN" \
              kubernetes_host="$OCP_HOST" \
              kubernetes_ca_cert="$SA_CA_CRT"
  8. 在 Vault 中启用 Key/Value (KV)后端路径。

    对于 Vault KV secret 引擎 API,版本 1:

    $ vault secrets enable -path=odf kv

    对于 Vault KV secret 引擎 API,版本 2:

    $ vault secrets enable -path=odf kv-v2
  9. 创建策略来限制用户对 secret 执行写入或删除操作

    echo '
    path "odf/*" {
      capabilities = ["create", "read", "update", "delete", "list"]
    }
    path "sys/mounts" {
    capabilities = ["read"]
    }'| vault policy write odf -
  10. 生成角色:

    $ vault write auth/kubernetes/role/odf-rook-ceph-op \
            bound_service_account_names=rook-ceph-system,rook-ceph-osd,noobaa \
            bound_service_account_namespaces=openshift-storage \
            policies=odf \
            ttl=1440h

    在创建存储系统期间配置 KMS 连接详情时,稍后使用角色 odf-rook-ceph-op

    $ vault write auth/kubernetes/role/odf-rook-ceph-osd \
            bound_service_account_names=rook-ceph-osd \
            bound_service_account_namespaces=openshift-storage \
            policies=odf \
            ttl=1440h

2.3.1. 使用 KMS 时启用密钥轮转

安全常见实践需要定期加密密钥轮转。您可以使用这个流程在使用 KMS 时启用密钥轮转。

要启用密钥轮转,请将注解 keyrotation.csiaddons.openshift.io/schedule: <value> 添加到 Namespace StorageClassPersistentVolumeClaims 中(按优先级顺序排列)。

<value > 可以是 @hourly@daily@weekly@monthly@yearly。如果 <value > 为空,则默认为 @weekly。以下示例使用 @weekly

重要

只支持 RBD 支持的卷的密钥轮转。

注解命名空间

$ oc get namespace default
NAME      STATUS   AGE
default   Active   5d2h
$ oc annotate namespace default "keyrotation.csiaddons.openshift.io/schedule=@weekly"
namespace/default annotated

注解 StorageClass

$ oc get storageclass rbd-sc
NAME       PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
rbd-sc     rbd.csi.ceph.com   Delete          Immediate           true                   5d2h
$ oc annotate storageclass rbd-sc "keyrotation.csiaddons.openshift.io/schedule=@weekly"
storageclass.storage.k8s.io/rbd-sc annotated

注解 PersistentVolumeClaim

$ oc get pvc data-pvc
NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
data-pvc  Bound    pvc-f37b8582-4b04-4676-88dd-e1b95c6abf74   1Gi        RWO            default           20h
$ oc annotate pvc data-pvc "keyrotation.csiaddons.openshift.io/schedule=@weekly"
persistentvolumeclaim/data-pvc annotated
$ oc get encryptionkeyrotationcronjobs.csiaddons.openshift.io
NAME                    SCHEDULE    SUSPEND   ACTIVE   LASTSCHEDULE   AGE
data-pvc-1642663516   @weekly                                     3s
$ oc annotate pvc data-pvc "keyrotation.csiaddons.openshift.io/schedule=*/1 * * * *" --overwrite=true
persistentvolumeclaim/data-pvc annotated
$ oc get encryptionkeyrotationcronjobs.csiaddons.openshift.io
NAME                  SCHEDULE    SUSPEND   ACTIVE   LASTSCHEDULE   AGE
data-pvc-1642664617   */1 * * * *                                   3s

2.4. 创建 OpenShift Data Foundation 集群

安装 OpenShift Data Foundation 操作器后,创建 OpenShift Data Foundation 集群。

先决条件

流程

  1. 在 OpenShift Web 控制台中,点 Operators → Installed Operators 查看所有已安装的 Operator。

    确保所选 项目为 openshift-storage

  2. 单击 OpenShift Data Foundation 操作器,然后单击 Create StorageSystem
  3. Backing storage 页面中,选择以下内容:

    1. 为 Deployment 类型选项选择 Full Deployment
    2. 选择 Use a existing StorageClass 选项。
    3. 选择 Storage Class

      从 OpenShift Data Foundation 版本 4.12 开始,您可以选择 gp2-csigp3-csi 作为存储类。

    4. 可选: 选择 Use external PostgreSQL 复选框以使用外部 PostgreSQL [技术预览]

      这为多云对象网关提供了高可用性解决方案,其中 PostgreSQL pod 是单点故障。

      1. 提供以下连接详情:

        • userName
        • 密码
        • 服务器 名称和端口
        • 数据库名称
      2. 选中 Enable TLS/SSL 复选框,为 Postgres 服务器启用加密。
    5. 单击下一步
  4. Capacity and nodes 页面中,提供必要的信息:

    1. 从下拉列表中选择 Requested Capacity 的值。默认设置为 2 TiB

      注意

      选择初始存储容量后,集群扩展将使用所选的可用容量(原始存储的三倍)执行。

    2. Select Nodes 部分中,选择至少三个可用的节点。
    3. Configure performance 部分中,选择以下性能配置集之一:

      • Swant

        在资源受限环境中使用它,其最少资源低于建议。此配置集通过分配较少的 CPU 和较少的内存来最小化资源消耗。

      • balanced (默认)

        当有建议的资源可用时,请使用此选项。此配置集提供不同工作负载的资源消耗和性能之间的平衡。

      • 性能

        在具有足够资源的环境中使用此方法获得最佳性能。通过分配 ample 内存和 CPU 来确保最佳执行要求的工作负载,以此为高性能量身定制此配置集。

        注意

        即使使用 StorageSystems 选项卡的选项菜单中的 Configure performance 选项,您也可以在部署后配置性能配置集。

        重要

        在选择资源配置集前,请确保检查集群中资源的当前可用性。在资源不足的集群中选择更高的资源配置集可能会导致安装失败。

        有关资源要求的更多信息,请参阅 性能配置集的资源要求

    4. 可选:选择 Taint nodes 复选框,将所选节点专用于 OpenShift Data Foundation。

      对于具有多个可用区的云平台,请确保节点分散到不同的位置/可用性区域。

      如果选择的节点与聚合的 30 个 CPU 和 72 GiB RAM 的 OpenShift Data Foundation 集群要求不匹配,则会部署一个最小的集群。如需最低起始节点要求,请参阅规划指南中的 资源要求部分

    5. 单击下一步
  5. 可选:在 Security and network 页面中,根据您的要求进行配置:

    1. 要启用加密,可选择 为块和文件存储启用数据加密

      1. 选择一个或多个加密级别:

        • 集群范围的加密

          加密整个集群(块和文件)。

        • StorageClass 加密

          使用启用加密的存储类创建加密的持久性卷(仅限块)。

      2. 可选: 选择 Connect to an external key management service 复选框。对于集群范围的加密,这是可选的。

        1. Key Management Service Provider 下拉列表中选择以下供应商之一并提供所需的详情:

          • Vault

            1. 选择 身份验证方法

              • 使用令牌验证方法

                • 输入唯一的连接名称,即 Vault 服务器的主机地址 ('https://<hostname 或 ip>')、端口号和 Token
                • 展开 Advanced Settings,以根据您的 Vault 配置输入额外的设置和证书详情:

                  • 在 后端路径中输入为 OpenShift Data Foundation 专用 且唯一的 Key Value secret 路径。
                • 可选:输入 TLS Server NameVault Enterprise Namespace
                • 上传对应的 PEM 编码证书文件,以提供 CA 证书客户端证书和客户端 私钥
                • Save
              • 使用 Kubernetes 验证方法

                • 输入唯一的 Vault Connection Name、Vault 服务器的主机地址 ('https://<hostname 或 ip>')、端口号和 角色名称
                • 展开 Advanced Settings,以根据您的 Vault 配置输入额外的设置和证书详情:

                  • 在 后端路径中输入为 OpenShift Data Foundation 专用 且唯一的 Key Value secret 路径。
                  • 可选: 如果需要,输入 TLS Server NameAuthentication Path
                  • 上传对应的 PEM 编码证书文件,以提供 CA 证书客户端证书和客户端 私钥
                • Save
          • Thales CipherTrust Manager (using KMIP)

            1. 在项目中输入密钥管理服务的唯一 连接名称
            2. AddressPort 部分中,输入 Thales CipherTrust Manager 的 IP 以及启用了 KMIP 接口的端口。例如:

              • 地址: 123.34.3.2
              • 端口: 5696
            3. 上传 客户端证书CA 证书客户端私钥
            4. 如果启用了 StorageClass 加密,请输入用于加密和解密的唯一标识符。
            5. TLS Server 字段是可选的,并在没有 KMIP 端点的 DNS 条目时使用。例如: kmip_all_<port>.ciphertrustmanager.local
    2. 要启用 in-transit 加密,请选择 In-transit encryption

      1. 选择 Network
      2. 单击下一步
  6. Data Protection 页面中,如果您要为 Openshift Data Foundation 配置 Regional-DR 解决方案,然后选择 Prepare cluster for disaster recovery (Regional-DR only) 复选框,否则点 Next
  7. Review and create 页面中,查看配置详情。

    要修改任何配置设置,请单击 Back

  8. 单击 Create StorageSystem
注意

当部署有五个或更多节点、机架或房间,且部署中存在 5 个或更多故障域时,您可以根据机架或区域的数量配置 Ceph 监控器计数。OpenShift Web 控制台的通知面板或 Alert Center 中显示警报,以指示用于增加 Ceph 监控计数的选项。您可以使用警报中的 Configure 选项来配置 Ceph 监控器计数。有关更多信息,请参阅 解决低 Ceph 监视器计数警报

验证步骤

  • 验证已安装存储集群的最终 Status:

    1. 在 OpenShift Web 控制台中,导航到 Installed OperatorsOpenShift Data FoundationStorage Systemocs-storagecluster-storagesystemResources
    2. 验证 StorageClusterStatus 是否为 Ready,并且其旁边都有一个绿色勾号标记。
  • 要验证 OpenShift Data Foundation 的所有组件是否已成功安装,请参阅验证 OpenShift Data Foundation 部署

其他资源

要启用 Overprovision Control 警报,请参阅 Monitoring 中的 Alerts 指南。

2.5. 验证 OpenShift Data Foundation 部署

验证 OpenShift Data Foundation 是否已正确部署:

2.5.1. 验证 pod 的状态

流程

  1. 从 OpenShift Web 控制台点 Workloads → Pods
  2. Project 下拉列表中选择 openshift-storage

    注意

    如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。

    有关每个组件预期的 pod 数量及其变化取决于节点数量的更多信息,请参阅下表:

  1. 为 Running 和 Completed pod 设置过滤器,以验证以下 pod 是否处于 RunningCompleted 状态:

component

对应的 pod

OpenShift Data Foundation Operator

  • ocs-operator github (任何存储节点上 1 个 pod)
  • ocs-metrics-exporter fluentd (任何存储节点上 1 个 pod)
  • odf-operator-controller-manager requirements (任何存储节点上 1 个 pod)
  • odf-console Debug (任何存储节点上 1 个 pod)
  • csi-addons-controller-manager CNO (任何存储节点上 1 个 pod)
  • UX-backend-server-*(任何存储节点上 1 个 pod)
  • * ocs-client-operatorchannel (任何存储节点上 1 个 pod)
  • ocs-client-operator-consolefluentd (任何存储节点上 1 个 pod)
  • ocs-provider-serverchannel (任何存储节点上 1 个 pod)

rook-ceph Operator

rook-ceph-operator-*

(任何存储节点上 1 个 pod)

多云对象网关

  • noobaa-operator grafana (任何存储节点上 1 个 pod)
  • noobaa-core grafana (任何存储节点上 1 个 pod)
  • noobaa-db-pg Producer (任何存储节点上 1 个 pod)
  • noobaa-endpoint Producer (任何存储节点上 1 个 pod)

MON

rook-ceph-mon-*

(在存储节点间分布 3 个 pod)

MGR

rook-ceph-mgr-*

(任何存储节点上 1 个 pod)

MDS

rook-ceph-mds-ocs-storagecluster-cephfilesystem-*

(2 个 pod 在存储节点间分布)

CSI

  • cephfs

    • csi-cephfsplugin effort (每个存储节点上 1 个 pod)
    • csi-cephfsplugin-provisioner=""&gt;> (2 个 pod 在存储节点间分布)
  • rbd

    • csi-rbdpluginrbd (每个存储节点上 1 个 pod)
    • csi-rbdplugin-provisionerProducer (2 个 pod 在存储节点间分布)

rook-ceph-crashcollector

rook-ceph-crashcollector-*

(每个存储节点上 1 个 pod)

OSD

  • rook-ceph-osdeffort (每个设备 1 个 pod)
  • rook-ceph-osd-prepare-ocs-deviceset effort (每个设备 1 个 pod)

2.5.2. 验证 OpenShift Data Foundation 集群是否健康

流程

  1. 在 OpenShift Web 控制台中,点 StorageData Foundation
  2. Overview 选项卡的 Status 卡中,点 Storage System,然后点弹出弹出窗口中的 storage 系统链接。
  3. Block and File 选项卡的 Status 卡中,验证 Storage Cluster 是否具有绿色勾号。
  4. Details 卡中,验证是否显示了集群信息。

如需有关使用 Block and File 仪表板的 OpenShift Data Foundation 集群健康状况的更多信息,请参阅监控 OpenShift Data Foundation

2.5.3. 验证 Multicloud 对象网关是否健康

流程

  1. 在 OpenShift Web 控制台中,点 StorageData Foundation
  2. Overview 选项卡的 Status 卡中,点 Storage System,然后点弹出弹出窗口中的 storage 系统链接。

    1. Object 选项卡的 Status 卡中,验证 Object ServiceData Resiliency 都具有绿色勾号。
    2. Details 卡中,验证是否显示了 MCG 信息。

如需有关使用对象服务仪表板的 OpenShift Data Foundation 集群健康状况的更多信息,请参阅监控 OpenShift Data Foundation

重要

Multicloud 对象网关只有一个数据库副本(NooBaa DB)。这意味着,如果 NooBaa DB PVC 被破坏,且我们无法恢复它,可能会导致位于 Multicloud Object Gateway 上的适用数据的数据丢失。因此,红帽建议定期备份 NooBaa DB PVC。如果 NooBaa DB 失败且无法恢复,您可以恢复到最新的备份版本。有关备份 NooBaa DB 的说明,请按照 本知识库文章 中的步骤操作。

2.5.4. 验证特定的存储类是否存在

流程

  1. 从 OpenShift Web 控制台左侧窗格中,点 Storage → Storage Classes
  2. 验证是否在创建 OpenShift Data Foundation 集群时创建了以下存储类:

    • ocs-storagecluster-ceph-rbd
    • ocs-storagecluster-cephfs
    • openshift-storage.noobaa.io

第 3 章 部署独立多云对象网关

使用 OpenShift Data Foundation 仅部署 Multicloud 对象网关组件为部署提供了灵活性,并有助于减少资源消耗。使用这个部分来仅部署独立 Multicloud 对象网关组件,该组件涉及以下步骤:

  • 安装 Red Hat OpenShift Data Foundation Operator
  • 创建独立多云对象网关
重要

Multicloud 对象网关只有一个数据库副本(NooBaa DB)。这意味着,如果 NooBaa DB PVC 被破坏,且我们无法恢复它,可能会导致位于 Multicloud Object Gateway 上的适用数据的数据丢失。因此,红帽建议定期备份 NooBaa DB PVC。如果 NooBaa DB 失败且无法恢复,您可以恢复到最新的备份版本。有关备份 NooBaa DB 的说明,请按照 本知识库文章 中的步骤操作。

3.1. 安装 Red Hat OpenShift Data Foundation Operator

您可以使用 Red Hat OpenShift Container Platform Operator Hub 安装 Red Hat OpenShift Data Foundation Operator。

先决条件

  • 使用具有 cluster-admin 和 operator 安装权限的账户访问 OpenShift Container Platform 集群。
  • 在 Red Hat OpenShift Container Platform 集群中必须至少有三个 worker 或基础架构节点。
  • 有关其他资源要求,请参阅规划您的部署 指南。
重要

流程

  1. 登录 OpenShift Web 控制台。
  2. Operators → OperatorHub
  3. Filter by keyword 框中滚动或键入 OpenShift Data Foundation,以查找 OpenShift Data Foundation Operator。
  4. 单击 Install
  5. Install Operator 页面中设置以下选项:

    1. 将 Channel 更新为 stable-4.17
    2. Installation Mode 为 A specific namespace on the cluster
    3. Installed Namespace 为 Operator recommended namespace openshift-storage。如果 Namespace openshift-storage 不存在,它会在 Operator 安装过程中创建。
    4. 将 Approval Strategy 选为 AutomaticManual

      如果选择 Automatic 更新,Operator Lifecycle Manager (OLM)将自动升级 Operator 的运行实例,而无需任何干预。

      如果选择 手动 更新,则 OLM 会创建一个更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Operator 更新至更新的版本。

    5. 确保为 Console 插件 选择了 Enable 选项。
    6. 单击 Install

验证步骤

  • 成功安装 Operator 后,用户界面中会显示带有 Web 控制台更新信息 的弹出窗口。点此弹出窗口中的 Refresh web console 来反映控制台的更改。
  • 在 Web 控制台中:

    • 进入到 Installed Operators,再验证 OpenShift Data Foundation Operator 是否显示绿色勾号,指示安装成功。
    • 导航到 Storage,再验证 Data Foundation 仪表板是否可用。

3.2. 创建独立多云对象网关

在部署 OpenShift Data Foundation 时,您只能创建独立多云对象网关组件。

先决条件

  • 确保已安装 OpenShift Data Foundation Operator。

流程

  1. 在 OpenShift Web 控制台中,点 OperatorsInstalled Operators 查看所有已安装的 Operator。

    确保所选 项目为 openshift-storage

  2. 单击 OpenShift Data Foundation operator,然后单击 Create StorageSystem
  3. Backing storage 页面中,选择以下内容:

    1. Deployment 类型 选择 Multicloud Object Gateway
    2. 选择 Use a existing StorageClass 选项。
    3. 单击下一步
  4. 可选: 选择 Connect to an external key management service 复选框。对于集群范围的加密,这是可选的。

    1. Key Management Service Provider 下拉列表中,选择 VaultThales CipherTrust Manager (using KMIP)。如果选择了 Vault,请进入下一步。如果您选择了 Thales CipherTrust Manager (using KMIP),请转至 iii 步骤。
    2. 选择 身份验证方法

      使用令牌验证方法
      • 输入唯一的连接名称,即 Vault 服务器的主机地址 ('https://<hostname 或 ip>')、端口号和 Token
      • 展开 Advanced Settings,以根据您的 Vault 配置输入额外的设置和证书详情:

        • 在 后端路径中输入为 OpenShift Data Foundation 专用 且唯一的 Key Value secret 路径。
        • 可选:输入 TLS Server NameVault Enterprise Namespace
        • 上传对应的 PEM 编码证书文件,以提供 CA 证书客户端证书和客户端 私钥
        • Save 并跳过步骤 iv。
      使用 Kubernetes 验证方法
      • 输入唯一的 Vault Connection Name、Vault 服务器的主机地址 ('https://<hostname 或 ip>')、端口号和 角色名称
      • 展开 Advanced Settings,以根据您的 Vault 配置输入额外的设置和证书详情:

        • 在 后端路径中输入为 OpenShift Data Foundation 专用 且唯一的 Key Value secret 路径。
        • 可选: 如果需要,输入 TLS Server NameAuthentication Path
        • 上传对应的 PEM 编码证书文件,以提供 CA 证书客户端证书和客户端 私钥
        • Save 并跳过步骤 iv。
    3. 要使用 Thales CipherTrust Manager (using KMIP) 作为 KMS 供应商,请按照以下步骤执行:

      1. 在项目中输入密钥管理服务的唯一 连接名称
      2. AddressPort 部分中,输入 Thales CipherTrust Manager 的 IP 以及启用了 KMIP 接口的端口。例如:

        • 地址: 123.34.3.2
        • 端口: 5696
      3. 上传 客户端证书CA 证书客户端私钥
      4. 如果启用了 StorageClass 加密,请输入用于加密和解密的唯一标识符。
      5. TLS Server 字段是可选的,并在没有 KMIP 端点的 DNS 条目时使用。例如: kmip_all_<port>.ciphertrustmanager.local
    4. 选择 Network
    5. 单击下一步
  5. Review and create 页面中,查看配置详情:

    要修改任何配置设置,请单击 Back

  6. 单击 Create StorageSystem

验证步骤

验证 OpenShift Data Foundation 集群是否健康
  1. 在 OpenShift Web 控制台中,点 StorageData Foundation
  2. Overview 选项卡的 Status 卡中,点 Storage System,然后点弹出弹出窗口中的 storage 系统链接。

    1. Object 选项卡的 Status 卡中,验证 Object ServiceData Resiliency 都具有绿色勾号。
    2. Details 卡中,验证是否显示了 MCG 信息。
验证 pod 的状态
  1. 从 OpenShift Web 控制台点 WorkloadsPods
  2. Project 下拉列表中选择 openshift-storage,再验证以下 pod 是否处于 Running 状态。

    注意

    如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。

    component对应的 pod

    OpenShift Data Foundation Operator

    • ocs-operator github (任何存储节点上 1 个 pod)
    • ocs-metrics-exporter fluentd (任何存储节点上 1 个 pod)
    • odf-operator-controller-manager requirements (任何存储节点上 1 个 pod)
    • odf-console Debug (任何存储节点上 1 个 pod)
    • csi-addons-controller-manager CNO (任何存储节点上 1 个 pod)

    rook-ceph Operator

    rook-ceph-operator-*

    (任何存储节点上 1 个 pod)

    多云对象网关

    • noobaa-operator grafana (任何存储节点上 1 个 pod)
    • noobaa-core grafana (任何存储节点上 1 个 pod)
    • noobaa-db-pg Producer (任何存储节点上 1 个 pod)
    • noobaa-endpoint Producer (任何存储节点上 1 个 pod)

第 4 章 创建 AWS-STS 支持的后备存储

Amazon Web Services Security Token Service (AWS STS)是一个 AWS 功能,它是使用简短凭证进行身份验证的方法。创建 AWS-STS 支持的后备存储涉及以下内容:

  • 使用脚本创建 AWS 角色,这有助于获取角色会话的临时安全凭证
  • 在 AWS STS OpenShift 集群上安装 OpenShift Data Foundation Operator
  • 在 AWS STS OpenShift 集群中创建后备存储

4.1. 使用脚本创建 AWS 角色

在安装 OpenShift Data Foundation 操作器时,您需要创建一个角色并传递角色 Amazon 资源名称(ARN)。

先决条件

流程

  • 使用与 OpenShift Data Foundation 上多云对象网关(MCG)配置匹配的脚本创建一个 AWS 角色。

    以下示例显示了创建角色所需的详情:

    {
        “Version”: “2012-10-17",
        “Statement”: [
            {
                “Effect”: “Allow”,
                “Principal”: {
                    “Federated”: “arn:aws:iam::123456789123:oidc-provider/mybucket-oidc.s3.us-east-2.amazonaws.com”
                },
                “Action”: “sts:AssumeRoleWithWebIdentity”,
                “Condition”: {
                    “StringEquals”: {
                        “mybucket-oidc.s3.us-east-2.amazonaws.com:sub”: [
                            “system:serviceaccount:openshift-storage:noobaa”,
                            "system:serviceaccount:openshift-storage:noobaa-core",
                            “system:serviceaccount:openshift-storage:noobaa-endpoint”
                        ]
                    }
                }
            }
        ]
    }

    其中

    123456789123
    是 AWS 帐户 ID
    mybucket
    是存储桶名称(使用公共存储桶配置)
    us-east-2
    是 AWS 区域
    openshift-storage
    是命名空间名称

示例脚本

#!/bin/bash
set -x

# This is a sample script to help you deploy MCG on AWS STS cluster.
# This script shows how to create role-policy and then create the role in AWS.
# For more information see: https://docs.openshift.com/rosa/authentication/assuming-an-aws-iam-role-for-a-service-account.html

# WARNING: This is a sample script. You need to adjust the variables based on your requirement.

# Variables :
# user variables - REPLACE these variables with your values:
ROLE_NAME="<role-name>" # role name that you pick in your AWS account
NAMESPACE="<namespace>" # namespace name where MCG is running. For OpenShift Data Foundation, it is openshift-storage.

# MCG variables
SERVICE_ACCOUNT_NAME_1="noobaa" # The service account name of deployment operator
SERVICE_ACCOUNT_NAME_2="noobaa-endpoint" # The service account name of deployment endpoint
SERVICE_ACCOUNT_NAME_3="noobaa-core" # The service account name of statefulset core

# AWS variables
# Make sure these values are not empty (AWS_ACCOUNT_ID, OIDC_PROVIDER)
# AWS_ACCOUNT_ID is your AWS account number
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
# If you want to create the role before using the cluster, replace this field too.
# The OIDC provider is in the structure:
# 1) <OIDC-bucket>.s3.<aws-region>.amazonaws.com. for OIDC bucket configurations are in an S3 public bucket
# 2) `<characters>.cloudfront.net` for OIDC bucket configurations in an S3 private bucket with a public CloudFront distribution URL
OIDC_PROVIDER=$(oc get authentication cluster -ojson | jq -r .spec.serviceAccountIssuer | sed -e "s/^https:\/\///")
# the permission (S3 full access)
POLICY_ARN_STRINGS="arn:aws:iam::aws:policy/AmazonS3FullAccess"

# Creating the role (with AWS command line interface)

read -r -d '' TRUST_RELATIONSHIP <<EOF
{
 "Version": "2012-10-17",
 "Statement": [
   {
 	"Effect": "Allow",
 	"Principal": {
   	"Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_PROVIDER}"
 	},
 	"Action": "sts:AssumeRoleWithWebIdentity",
 	"Condition": {
   	"StringEquals": {
    	"${OIDC_PROVIDER}:sub": [
      	"system:serviceaccount:${NAMESPACE}:${SERVICE_ACCOUNT_NAME_1}",
      	"system:serviceaccount:${NAMESPACE}:${SERVICE_ACCOUNT_NAME_2}",
        "system:serviceaccount:${NAMESPACE}:${SERVICE_ACCOUNT_NAME_3}"
      	]
   	}
 	}
   }
 ]
}
EOF

echo "${TRUST_RELATIONSHIP}" > trust.json

aws iam create-role --role-name "$ROLE_NAME" --assume-role-policy-document file://trust.json --description "role for demo"

while IFS= read -r POLICY_ARN; do
   echo -n "Attaching $POLICY_ARN ... "
   aws iam attach-role-policy \
   	--role-name "$ROLE_NAME" \
   	--policy-arn "${POLICY_ARN}"
   echo "ok."
done <<< "$POLICY_ARN_STRINGS"

4.1.1. 在 AWS STS OpenShift 集群上安装 OpenShift Data Foundation Operator

先决条件

流程

  • 从 Operator Hub 安装 OpenShift Data Foundation Operator。

    • 在安装过程中,在 ARN Details 字段中添加角色 ARN。
    • 确保 Update approval 字段设置为 Manual

4.1.2. 创建新的 AWS STS 后备存储

先决条件

流程

  1. 安装多云对象网关(MCG)。

    它使用简短凭证安装默认后备存储。

  2. MCG 系统就绪后,您可以使用以下 MCG 命令行界面命令创建更多类型为 aws-sts-s3 的后备存储:

    $ noobaa backingstore create aws-sts-s3 <backingstore-name> --aws-sts-arn=<aws-sts-role-arn> --region=<region> --target-bucket=<target-bucket>

    其中

    backingstore-name
    后备存储的名称
    aws-sts-role-arn
    AWS STS 角色 ARN,它将假定角色
    region
    AWS 存储桶区域
    target-bucket
    云上的目标存储桶名称

第 5 章 查看 OpenShift Data Foundation 拓扑

拓扑以各种抽象级别显示 OpenShift Data Foundation 存储集群的映射视觉化,并可让您与这些层交互。视图中还显示了组成存储集群的各种元素。

流程

  1. 在 OpenShift Web 控制台中,导航到 StorageData FoundationTopology

    视图中显示存储集群及其内的区域。您可以查看区域中环形实体描述的节点,这些实体由虚线表示。每个项目或资源的标签包含基本信息,如状态和健康状况,或表示警报。

  2. 选择一个节点来查看右侧面板中的节点详情。您还可以点搜索/预览 decorator 图标访问节点中的资源或部署。
  3. 查看部署详情

    1. 点节点上的 preview decorator。一个模态窗口会出现在节点上,显示与该节点关联的所有部署及其状态。
    2. 单击模型左上角的 Back to main view 按钮,再返回到上一视图。
    3. 选择特定的部署来查看有关它的更多信息。所有相关数据显示在侧面面板中。
  4. Resources 选项卡查看 pod 信息。此选项卡可以深入了解问题,并提供粒度,有助于更好地进行故障排除。
  5. 点 pod 链接,以查看 OpenShift Container Platform 上的 pod 信息页面。链接在新窗口中打开。

第 6 章 卸载 OpenShift Data Foundation

6.1. 以内部模式卸载 OpenShift Data Foundation

要以内部模式卸载 OpenShift Data Foundation,请参阅有关卸载 OpenShift Data Foundation 的知识库文章

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.