在云中运行 AI 数据存储基础设施非常昂贵。不仅存储数据成本高,而且每次应用程序从 AI 数据存储基础设施中使用数据时,都会产生入口和出口费用。在云计算刚刚兴起且数据规模较小时,这些成本微不足道。但随着云成本的上升,各行业一直在寻求将数据从云中迁移回本地,同时又不损失云原生优势。关键就在这里,从云中迁移回本地,而不失去以云原生方式管理基础设施的能力。
这就是 OpenShift OperatorHub 发挥作用的地方。OpenShift 是云数据迁移回本地运动的主要推动者之一。OpenShift 将世界一流的云原生能力带到您的数据中心,让您能够直接在自己的基础设施上管理 Kubernetes。简单来说,OperatorHub 之于 OpenShift 就如同 App Store 之于 Apple。通过 Web 控制台界面,可以从集群外的源代码库中拉取 Operator,并在集群上安装和订阅,然后让工程团队能够自助服务地跨部署环境管理产品。
今天,我们将向您展示如何使用 OperatorHub 安装 MinIO Operator。在此过程中,我们将向您展示如何在使用 OpenShift 和 MinIO Operator 的同时设置和测试本地测试环境。
通过 OperatorHub 使用 MinIO Operator
请确保在您的 Ubuntu 机器上安装了 crc
。要了解有关 CRC 的更多信息,请查看这篇 博文。
MinIO Operator 控制台
公开 Operator 的网页 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 租户
通过 Operator 控制台创建租户
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 Operator 使用的证书,让我们继续执行此操作。
首先生成签名者的证书
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 |
更改后,请等待片刻,让一切准备就绪,Operator 将开始工作并能够进行通信

Operator 应用商店
OperatorHub 是 OpenShift 生态系统中事实上的 Operator 应用商店。OperatorHub 上列出的 Operator 经过了彻底的测试、审查,并由其各自的作者提供支持。作者可以是社区 Operator,也可以是经过认证的 Operator(例如 MinIO),以及 RedHat 本身。这可以让您的组织安心,因为开发人员安装的 Operator 可以信任其安全性合规性。因为它们可以访问非常关键的基础设施部分,您不希望只是从 GitHub 存储库中安装一些随机的 Operator,这可能会降低系统的性能,或者在最坏的情况下损害系统。因此,至关重要的是,您的开发人员能够访问此类 Operator 市场,以便他们能够构建为应用程序提供支持所需的基础设施。
如果您对 MinIO Operator 或如何在 OpenShift 集群上安装它有任何疑问,请随时通过 Slack 联系我们!