使用带有托管 control plane 的 Red Hat OpenShift Service on AWS 部署 OpenShift Data Foundation
有关使用带有托管 control plane (HCP)的 Red Hat OpenShift Service on AWS (ROSA)部署 OpenShift Data Foundation 的说明
摘要
前言
使用带有托管 control plane 的 Red Hat OpenShift Service on AWS 部署 OpenShift Data Foundation 是一个技术预览功能。技术预览功能为用户提供了一个对最新的产品创新的试用机会,以便用户可以对其进行测试并提供反馈。但是,Red Hat 服务等级协议不支持这些功能,其功能可能并不完善,且不适用于生产环境。由于红帽会考虑在将来的产品中使用这些技术预览功能,我们将尝试解决客户在使用这些功能时遇到的问题。如需更多信息,请参阅技术预览功能支持范围。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。请告诉我们如何让它更好。
要提供反馈,请创建一个 Bugzilla ticket:
- 进入 Bugzilla 网站。
- 在 Component 部分中,选择 文档。
- 在 Description 中输入您要提供的信息。包括文档相关部分的链接。
- 点 Submit Bug。
前言
Red Hat OpenShift Data Foundation 支持在带有托管 control plane 的现有 Red Hat OpenShift Service on AWS 上部署。
AWS 上仅支持内部 OpenShift Data Foundation 集群。如需有关部署要求的更多信息,请参阅规划部署并准备部署 OpenShift Data Foundation。
要部署 OpenShift Data Foundation,请从 准备部署 OpenShift Data Foundation 章节的要求开始,然后按照 使用动态存储设备部署 中的部署流程进行操作。
第 1 章 准备部署 OpenShift 数据基础
使用动态存储设备在 OpenShift Container Platform 上部署 OpenShift Data Foundation 为您提供创建内部集群资源的选项。
在开始部署 Red Hat OpenShift Data Foundation 前,请按照以下步骤执行:
可选:如果要使用外部密钥管理系统 (KMS) HashiCorp Vault 启用集群范围加密,请按照以下步骤执行:
- 确定您有有效的 Red Hat OpenShift Data Foundation Advanced 订阅。要了解 OpenShift Data Foundation 订阅如何工作,请参阅与 OpenShift Data Foundation 订阅相关的知识库文章。
- 当为加密选择 Token 验证方法时,请参考使用 KMS 通过 Token 身份验证启用集群范围的加密。
- 当为加密选择了 Kubernetes 验证方法时,请参考使用 KMS 使用 Kubernetes 身份验证启用集群范围的加密。
- 确保您在 Vault 服务器上使用签名的证书。
可选: 如果要使用外部密钥管理系统 (KMS) Thales CipherTrust Manager 启用集群范围的加密,您必须首先启用密钥管理互操作性协议 (KMIP),并在服务器上使用签名证书。
如果 KMIP 客户端不存在,请创建一个。在用户界面中,选择 KMIP → Client Profile → Add Profile。
-
在创建配置集的过程中,将
CipherTrust
用户名添加到 Common Name 字段中。
-
在创建配置集的过程中,将
- 通过进入到 KMIP → Registration Token → New Registration Token 来创建令牌。为下一步复制令牌。
- 要注册客户端,请进入到 KMIP → Registered Clients → Add Client。指定名称。粘贴上一步中的注册令牌,然后点保存。
- 点 Save Private Key 和 Save Certificate 下载私钥和客户端证书。
要创建新的 KMIP 接口,请进入到 Admin Settings → Interfaces → Add Interface。
- 选择 KMIP Key Management Interoperability Protocol 并点 Next。
- 选择一个空闲端口。
- 为 Network Interface 选择 all。
- 为 Interface Mode 选择 TLS, verify client cert, user name taken from client cert, auth request is optional。
- (可选)您可以在密钥被删除时启用硬删除以删除元数据和材料。它默认是禁用的。
- 选择要使用的证书颁发机构(CA),然后单击 Save。
- 要获取服务器 CA 证书,请点新创建的界面右侧的 Action 菜单(⋮),然后点 Download Certificate。
可选:如果要在部署过程中启用 StorageClass 加密,请创建一个密钥来充当密钥加密密钥 (KEK):
- 进入到 Keys → Add Key。
- 输入 Key Name。
- 分别将 Algorithm 和 Size 设置为 AES 和 256。
- 启用 Create a key in Pre-Active state,并设置激活的日期和时间。
- 确保在 Key Usage 下启用了 Encrypt 和 Decrypt。
- 复制新创建的密钥的 ID,以在部署过程中用作唯一标识符。
启动节点最低要求
当不符合标准部署资源要求时,将使用最低配置部署 OpenShift Data Foundation 集群。请参阅规划指南中的资源要求部分。
要执行停止和启动节点操作,或者创建或添加机器池,需要应用正确的标记。例如:
$ rosa edit machinepool --cluster <cluster-name> --labels cluster.ocs.openshift.io/openshift-storage="" <machinepool-name>
将 <cluster-name
> 替换为集群名称,<machinepool-name
> 替换为机器池名称。
第 2 章 使用动态存储设备部署 OpenShift Data Foundation
您可以使用 Amazon Web Services(AWS)EBS(类型,gp2-csi
或 gp3-csi
)提供的动态存储设备在 OpenShift Container Platform 上部署 OpenShift Data Foundation,为您提供创建内部集群资源的选项。这会导致在内部置备基础服务,这有助于为应用提供额外的存储类。
虽然只能使用 OpenShift Data Foundation 部署 Multicloud 对象网关(MCG)组件,但 ROSA 上不支持这个部署方法。
ROSA 仅支持内部 OpenShift Data Foundation 集群。如需有关部署要求的更多信息,请参阅规划部署。
另外,确保已满足 准备部署 OpenShift Data Foundation 章节的要求,然后按照以下步骤使用动态存储设备进行部署:
2.1. 安装 Red Hat OpenShift Data Foundation Operator
您可以使用 Red Hat OpenShift Container Platform Operator Hub 为带有托管的 control plane (HCP)的 ROSA 安装 Red Hat OpenShift Data Foundation Operator。
先决条件
-
使用具有
cluster-admin
和 operator 安装权限的账户访问 OpenShift Container Platform 集群。 - 您必须在 Red Hat OpenShift Container Platform 集群中至少有三个 worker 或 infrastructure 节点。
- 有关其他资源要求,请参阅规划您的部署指南。
当您需要覆盖 OpenShift Data Foundation 的集群范围默认节点选择器时,您可以使用以下命令为存储命名空间指定空白节点选择器:
$ oc annotate namespace storage-namespace openshift.io/node-selector=
-
将节点作为
infra
污点,以确保只在该节点上调度 Red Hat OpenShift Data Foundation 资源。这有助于您节省订阅成本。如需更多信息,请参阅管理和分配存储资源指南中的如何将专用 worker 节点用于 Red Hat OpenShift Data Foundation 部分。https://access.redhat.com/documentation/zh-cn/red_hat_openshift_data_foundation/4.17/html-single/managing_and_allocating_storage_resources/index#how-to-use-dedicated-worker-nodes-for-openshift-data-foundation_rhodf
流程
- 登录 OpenShift Web 控制台。
- 点 Operators → OperatorHub。
-
在 Filter by keyword 框中滚动或键入
OpenShift Data Foundation
,以查找 OpenShift Data Foundation Operator。 - 点 Install。
在 Install Operator 页面中设置以下选项:
- 填写 角色 ARN。有关创建 Amazon 资源名称(ARN)的说明,请参阅使用 脚本 创建 AWS 角色。
- 将 Channel 更新为 stable-4.17。
- 安装模式是 A specific namespace on the cluster。
Installed Namespace 为 Select a Namespace。
注意ROSA 部署不推荐使用
openshift-storage
命名空间。用户定义命名空间用于此部署。避免在命名空间中使用 "redhat" 或 "openshift" 前缀。重要本指南使用 <
;storage_namespace&
gt; 作为示例命名空间。在后续步骤中,将 <storage_namespace
> 替换为您定义的命名空间。将 Approval Strategy 选为 Automatic 或 Manual。
如果选择 Automatic 更新,Operator Lifecycle Manager(OLM)将自动升级 Operator 的运行实例,而无需任何干预。
如果选择 手动 更新,则 OLM 会创建一个更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Operator 更新至更新的版本。对于带有托管的 control plane 的 ROSA,建议使用 手动更新 策略。
- 确保为 Console 插件 选择了 Enable 选项。
- 点 Install。
验证步骤
-
成功安装 Operator 后,用户界面中会显示一个带有
Web console update is available
信息的弹出窗口。点这个弹出窗口中的 Refresh web console 来反映控制台的更改。 在 Web 控制台中:
- 进入到 Installed Operators,再验证 OpenShift Data Foundation Operator 是否显示绿色勾号,指示安装成功。
- 进入到 Storage,再验证 Data Foundation 仪表板是否可用。
2.2. 使用 Token 验证方法通过 KMS 启用集群范围的加密
您可以在密码库中启用用于令牌身份验证的键值后端路径和策略。
先决条件
- 管理员对 vault 的访问权限。
- 有效的 Red Hat OpenShift Data Foundation 高级订阅。如需更多信息,请参阅 OpenShift Data Foundation 订阅中的知识库文章。
-
仔细选择唯一路径名称作为遵循命名惯例的后端
路径
,因为它无法在以后更改。
流程
在密码库中启用 Key/Value(KV)后端路径。
对于 vault KV 机密引擎 API,版本 1:
$ vault secrets enable -path=odf kv
对于 vault KV 机密引擎 API,版本 2:
$ vault secrets enable -path=odf kv-v2
创建策略来限制用户在 secret 上执行写入或删除操作:
echo ' path "odf/*" { capabilities = ["create", "read", "update", "delete", "list"] } path "sys/mounts" { capabilities = ["read"] }'| vault policy write odf -
创建与上述策略匹配的令牌:
$ 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 安装。
-
仔细选择唯一路径名称作为后端
路径
,请仔细选择命名规则。您不能在以后更改此路径名称。
流程
创建服务帐户:
$ oc -n <storage-namespace> create serviceaccount <serviceaccount_name>
其中,
<serviceaccount_name>
指定服务帐户的名称。例如:
$ oc -n <storage-namespace> create serviceaccount odf-vault-auth
创建
clusterrolebindings
和clusterroles
:$ oc -n <storage-namespace> create clusterrolebinding vault-tokenreview-binding --clusterrole=system:auth-delegator --serviceaccount=openshift-storage:_<serviceaccount_name>_
例如:
$ oc -n <storage-namespace> create clusterrolebinding vault-tokenreview-binding --clusterrole=system:auth-delegator --serviceaccount=openshift-storage:odf-vault-auth
为
serviceaccount
令牌和 CA 证书创建 secret。$ cat <<EOF | oc create -f - apiVersion: v1 kind: Secret metadata: name: odf-vault-auth-token namespace: <storage-namespace> annotations: kubernetes.io/service-account.name: <serviceaccount_name> type: kubernetes.io/service-account-token data: {} EOF
其中,
<serviceaccount_name
> 是上一步中创建的服务帐户,<storage_namespace
> 是创建 ODF operator 和 StorageSystem 的命名空间。从 secret 获取令牌和 CA 证书。
$ SA_JWT_TOKEN=$(oc -n <storage_namespace> get secret odf-vault-auth-token -o jsonpath="{.data['token']}" | base64 --decode; echo) $ SA_CA_CRT=$(oc -n <storage_namespace> get secret odf-vault-auth-token -o jsonpath="{.data['ca\.crt']}" | base64 --decode; echo)
检索 OCP 集群端点。
$ OCP_HOST=$(oc config view --minify --flatten -o jsonpath="{.clusters[0].cluster.server}")
获取服务帐户签发者:
$ oc proxy & $ proxy_pid=$! $ issuer="$( curl --silent http://127.0.0.1:8001/.well-known/openid-configuration | jq -r .issuer)" $ kill $proxy_pid
使用上一步中收集的信息在 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"
在 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
创建策略来限制用户在 secret 上执行
写入
或删除
操作:echo ' path "odf/*" { capabilities = ["create", "read", "update", "delete", "list"] } path "sys/mounts" { capabilities = ["read"] }'| vault policy write odf -
生成角色:
$ vault write auth/kubernetes/role/odf-rook-ceph-op \ bound_service_account_names=rook-ceph-system,rook-ceph-osd,noobaa \ bound_service_account_namespaces=<storage_namespace> \ 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=<storage_namespace> \ policies=odf \ ttl=1440h
2.4. 创建 OpenShift Data Foundation 集群
安装 OpenShift Data Foundation 操作器(operator)后,创建 OpenShift Data Foundation。
流程
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators 查看所有已安装的 Operator。
-
从 Project 下拉列表中选择 <
;storage-namespace
>。 - 点 OpenShift Data Foundation 操作器,然后单击 Create StorageSystem。
在 Backing storage 页面中,选择以下内容:
- 为 Deployment 类型选项选择 Full Deployment。
- 选择 Use a existing StorageClass 选项。
可选: 选择 Use external PostgreSQL 复选框以使用外部 PostgreSQL [技术预览]。
这为多云对象网关提供了高可用性解决方案,其中 PostgreSQL pod 是单点故障。
提供以下连接详情:
- 用户名
- 密码
- 服务器 名称和端口
- 数据库名称
- 选中 Enable TLS/SSL 复选框,为 Postgres 服务器启用加密。
- 点击 Next。
在 Capacity and nodes 页面中,提供必要的信息:
从下拉列表中选择 Requested Capacity 的值。默认设置为
2 TiB
。注意选择初始存储容量后,集群扩展将使用所选的可用容量(原始存储的三倍)执行。
- 在 Select Nodes 部分中,选择至少三个可用节点。
在 Configure performance 部分中,选择以下性能配置集之一:
Swant
在资源受限环境中使用它,其最少资源低于建议。此配置集通过分配较少的 CPU 和较少的内存来最小化资源消耗。
balanced (默认)
当有建议的资源可用时,请使用此选项。此配置集提供不同工作负载的资源消耗和性能之间的平衡。
性能
在具有足够资源的环境中使用此方法获得最佳性能。通过分配 ample 内存和 CPU 来确保最佳执行要求的工作负载,以此为高性能量身定制此配置集。
注意即使使用 StorageSystems 选项卡的选项菜单中的 Configure performance 选项,您也可以在部署后配置性能配置集。
重要在选择资源配置集前,请确保检查集群中资源的当前可用性。在资源不足的集群中选择更高的资源配置集可能会导致安装失败。
有关资源要求的更多信息,请参阅 性能配置集的资源要求。
- 可选:选中 Taint nodes 复选框,以将所选节点专用于 OpenShift Data Foundation。
- 点击 Next。
可选:在 Security and network 页面中,根据您的要求进行配置:
若要启用加密,可选择为块存储和文件存储启用数据加密。
选择其中一个加密级别或两个都选:
集群范围的加密
加密整个集群(块和文件)。
StorageClass 加密
使用启用加密的存储类创建加密的持久性卷(仅块)。
可选:选择 Connect to an external key management service 复选框。这是集群范围加密的可选选项。
在 Key Management Service Provider 下拉列表中选择以下供应商之一并提供所需的详情:
Vault
选择身份验证方法。
使用令牌验证方法
- 输入唯一的连接名称 , Vault 服务器的主机地址('https://<hostname 或 ip>'),端口号和令牌。
展开 Advanced Settings,以根据您的
Vault
配置输入其他设置和证书详情:- 在 后端路径中输入为 OpenShift Data Foundation 专用且唯一的 Key Value secret 路径。
- (可选)输入 TLS 服务器名称和 Vault Enterprise 命名空间。
- 上传对应的 PEM 编码证书文件,以提供 CA 证书、客户端证书和客户端私钥。
- 点击 Save。
使用 Kubernetes 验证方法
- 输入唯一的 Vault Connection Name, Vault 服务器的主机地址('https://<hostname 或 ip>')、端口号和角色名称。
展开 Advanced Settings,以根据您的
Vault
配置输入其他设置和证书详情:- 在 后端路径中输入为 OpenShift Data Foundation 专用且唯一的 Key Value secret 路径。
- 可选:输入 TLS Server Name 和 Authentication Path (如果适用)。
- 上传对应的 PEM 编码证书文件,以提供 CA 证书、客户端证书和客户端私钥。
- 点击 Save。
Thales CipherTrust Manager (using KMIP)
- 在项目中输入密钥管理服务的唯一连接名称。
在 Address 和 Port 部分中,输入 Thales CipherTrust Manager 的 IP 以及在其中启用了 KMIP 接口的端口。例如:
- 地址: 123.34.3.2
- 端口 :5696
- 上传 客户端证书、CA 证书和 客户端私钥。
- 如果启用了 StorageClass 加密,请输入用于加密和解密的唯一标识符。
-
TLS Server 字段是可选的,并在没有 KMIP 端点的 DNS 条目时使用。例如,
kmip_all_<port>.ciphertrustmanager.local
。
要启用 in-transit 加密,请选择 In-transit encryption。
- 选择 网络。
- 点击 Next。
- 在 Data Protection 页面中,如果您要为 Openshift Data Foundation 配置 Regional-DR 解决方案,然后选择 Prepare cluster for disaster recovery (Regional-DR only) 复选框,否则点 Next。
在 Review and create 页面中,检查配置详情。
若要修改任何配置设置,请单击 Back。
- 单击 Create StorageSystem。
当部署有五个或更多节点、机架或房间,且部署中存在 5 个或更多故障域时,您可以根据机架或区域的数量配置 Ceph 监控器计数。OpenShift Web 控制台的通知面板或 Alert Center 中显示警报,以指示用于增加 Ceph 监控计数的选项。您可以使用警报中的 Configure 选项来配置 Ceph 监控器计数。有关更多信息,请参阅 解决低 Ceph 监视器计数警报。
验证步骤
验证已安装存储集群的最终状态:
- 在 OpenShift Web 控制台中,导航到 Installed Operators → OpenShift Data Foundation → Storage System → ocs-storagecluster-storagesystem → Resources。
-
验证
StorageCluster
的Status
是否为Ready
,并且旁边有一个绿色勾号标记。
其他资源
要启用 Overprovision Control 警报,请参阅 Monitoring 中的 Alerts 指南。
2.5. 验证 OpenShift Data Foundation
验证 OpenShift Data Foundation 是否已正确部署:
2.5.1. 验证 pod 的状态
流程
- 从 OpenShift Web 控制台点 Workloads → Pods。
从 Project 下拉列表中选择 <
;storage-namespace
>。注意如果禁用 Show default projects 选项,请使用切换按钮列出所有默认项目。
有关每个组件预期的 pod 数量及其变化取决于节点数量的更多信息,请参阅下表:
-
为 Running 和 Completed pod 设置过滤器,以验证以下 pod 是否处于
Running
和Completed
状态:
组件 | 对应的 pod |
OpenShift Data Foundation Operator |
|
Rook-ceph Operator |
(任何存储节点上的 1 个 pod) |
多云对象网关 |
|
MON |
(在存储节点间分布 3 个 pod) |
MGR |
(任何存储节点 2 个 pod) |
MDS |
(2 个 pod 在存储节点间分布) |
CSI |
|
rook-ceph-crashcollector |
(每个存储节点上 1 个 pod) |
OSD |
|
监控 |
|
2.5.2. 验证 OpenShift Data Foundation 集群是否健康
流程
- 在 OpenShift Web 控制台中,点 Storage → Data Foundation。
- 在 Overview 选项卡的 Status 卡中,点 Storage System,然后点弹出框中的存储系统链接。
- 在 Block and File 选项卡的 Status 卡中,验证 Storage Cluster 是否具有绿色勾号。
- 在 Details 卡中,验证是否显示集群信息。
如需有关使用 Block and File 仪表板的 OpenShift Data Foundation 集群健康的更多信息,请参阅 监控 OpenShift Data Foundation。
2.5.3. 验证特定的存储类是否存在
流程
- 从 OpenShift Web 控制台左侧窗格中,点击 Storage → Storage Classes。
- 验证是否在创建 OpenShift Data Foundation 集群时创建了以下存储类:
第 3 章 查看 OpenShift Data Foundation 拓扑
拓扑显示 OpenShift Data Foundation 存储集群在各种抽象级别映射的视觉化,并可让您与这些层交互。视图还显示了各种元素如何一起编写存储集群。
流程
在 OpenShift Web 控制台中,进入到 Storage → Data Foundation → Topology。
视图显示存储集群及其内部区域。您可以查看区域中由循环实体描述的节点,这些实体由点行表示。每个项目或资源的标签包含基本信息,如状态和健康或指示警报。
- 选择一个节点来查看右侧面板中的节点详情。您还可以通过点 search/preview decorator 图标来访问节点内的资源或部署。
查看部署详情
- 点节点上的 preview decorator。在节点上面会显示一个模态窗口,它会显示与该节点关联的所有部署及其状态。
- 点模型左上角的 Back to main view 按钮,以关闭并返回上视图。
- 选择特定的部署来查看它的更多信息。所有相关数据都会在侧面面板中显示。
- 点 Resources 选项卡查看 pod 信息。此选项卡深入了解问题,并提供有助于更好地进行故障排除的粒度。
- 点 pod 链接查看 OpenShift Container Platform 上的 pod 信息页面。该链接在新窗口中打开。
第 4 章 卸载 OpenShift Data Foundation
4.1. 以内部模式卸载 OpenShift Data Foundation
要以内部模式卸载 OpenShift Data Foundation,请参阅有关卸载 OpenShift Data Foundation 的知识库文章。