OpenShift 的 App Store:OperatorHub 中的 MinIO
在云中运行 AI 数据存储基础设施非常昂贵。不仅存储数据的成本很高,而且每次应用程序使用来自 AI 数据存储基础设施的数据时,您都会被收取入口和出口费用。当云是新的,数据规模很小时,成本可以忽略不计。但随着云成本的上升,各行各业一直在寻求从云中汇回数据,同时又不损失云原生优势。这就是这里的关键,在不失去原生管理基础架构云的能力的情况下,从云中解脱出来。
这就是 OpenShift OperatorHub 的用武之地。OpenShift是云遣返运动的推动者之一。OpenShift 带来了世界一流的云原生能力,可直接从您自己的数据中心在您自己的基础架构上管理 Kubernetes。简而言之,OperatorHub 之于 OpenShift 就像 App Store 之于 Apple。借助 Web 控制台界面,可以从集群外源中拉取 Operator,在集群上安装和订阅,并为工程团队做好准备,以便跨部署环境自助管理产品。今天,我们将向您展示如何使用 OperatorHub 安装 MinIO Operator。在此过程中,我们将向您展示如何在将 OpenShift 与 MinIO operator 结合使用时设置和测试本地测试环境。
通过 OperatorHub 的 MinIO 操作员
请务必将 crc 安装在您的 Ubuntu 计算机上。要了解有关 CRC 的更多信息,请阅读这篇博文。

操作员控制台
公开操作员打开网页 http://localhost:9090/login ,从密钥中获取令牌
oc login -u kubeadmin https://api.crc.testing:6443
oc port-forward svc/console 9090 -n openshift-operators

应用这些权限以便能够创建命名空间并获取其配额,这将以某种方式获得在 OpenShift 中显示存储类的访问权限
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-role-cesar-5
rules:
- apiGroups: [""]
resources:
- namespaces
- resourcequotas
- deletecollection
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: role-binding-cesar-5
namespace: openshift-operators
subjects:
- kind: ServiceAccount
name: minio-operator
namespace: openshift-operators
roleRef:
kind: ClusterRole
name: cluster-role-cesar-5
apiGroup: rbac.authorization.k8s.io
oc login -u kubeadmin https://api.crc.testing:6443
oc apply -f ~/permissions.yaml
oc adm policy add-scc-to-user privileged -n openshift-operators -z minio-operator
oc adm policy add-scc-to-user privileged -n openshift-operators -z console-sa
oc adm policy add-scc-to-user privileged -n openshift-operators -z default
oc adm policy add-scc-to-user privileged -n openshift-operators -z builder
oc adm policy add-scc-to-user privileged -n openshift-operators -z deployer
---
oc create namespace rafta
oc create serviceaccount minio-operator -n rafta
oc adm policy add-scc-to-user privileged -n rafta -z minio-operator
oc adm policy add-scc-to-user privileged -n rafta -z builder
oc adm policy add-scc-to-user privileged -n rafta -z deployer
oc adm policy add-scc-to-user privileged -n rafta -z default
创建 MinIO 租户
通过操作员控制台创建租户

Access Key: STSKAzp1TAsd9TGV
Secret Key: XzMOmH6erHeXzBM8dWAsf5LlOfSRKw7k
然后在创建 pod 后查看问题
ERROR Unable to initialize backend: parity validation returned an error: parity 4 should be less than or equal to 0 <- (4, 1), for pool(1st)
要更正,请转到租户配置 http://localhost:9090/namespaces/rafta/tenants/rafta/configuration 并更改 EC:4 为 EC:0

更新证书
为了让 TLS 正常工作,我们必须更新 MinIO 操作员使用的证书,让我们继续这样做。
首先生成签名者的证书
oc get secret csr-signer -n openshift-kube-controller-manager-operator -o template='{{ index .data "tls.crt"}}' | base64 -d > route-ca.crt
然后,将上述证书及其签名者放在一个名为 ingress.pem 的文件中。
cat public.crt route-ca.crt > ingress.pem
使用上述 ingress.pem 文件和上一步中的private.key创建机密
oc create secret tls secretocuatro --cert=ingress.pem --key=private.key -n openshift-ingress
使用 kubectl 修补它,然后等待几分钟,让证书位于 /var/run/secrets/ kubernetes.io/serviceaccount/ca.crt 。
oc patch ingresscontroller.operator default --type=merge -p '{"spec":{"defaultCertificate": {"name": "secretocuatro"}}}' -n openshift-ingress-operator
稍等片刻,更改后一切准备就绪,操作员将工作并能够进行通信

运营商应用商店
OperatorHub 是 OpenShift 生态系统事实上的 App Store of Operator。在 OperatorHub 上列出的运算符都经过了各自作者的全面测试、审查和支持。作者的范围从社区运营商到认证运营商(如MinIO),还有RedHat本身。这让您的组织高枕无忧,因为他们知道您的开发人员安装的操作员在安全性和合规性方面值得信任。因为他们可以访问非常关键的基础设施,而您不想只是从 GitHub 存储库中安装一些随机运算符,这可能会降低您的系统性能,或者在最坏的情况下损害它。因此,让您的开发人员能够访问此类运营商市场至关重要,这样他们就可以构建为您的应用程序提供支持所需的基础设施。