总览
本文主要展示如何使用 MinIO Operator 创建一个MinIO Cluster。 部署MinIO Operator 可以查看此文档
通过 Operator Console创建 Tenant
官方文档对每个步骤进行了详细的解释,这里就不再赘述了。
开始
点击 Create a Tenant
Setup
这里以奔霄
项目为例,创建一个名为benxiao
在benxiao
Namespace下的MinIO 集群
Configure
默认MinIO会将租户的前后端都暴露出来,方便通过界面或API访问。在本例中,奔霄也需要提供SFTP服务,故将SFTP选项也打开。
Images
此页面可以自定义MinIO镜像,当前国内访问DockerHub很可能被墙,可以在此页面设置私有仓库地址。
Pod Placement
此页面配置Pod 如何调度,支持Pod Anti-Affinity
和 Node Selector
方式,本例不做特殊调度,选择None
Identity Provider
此页面可以指定权限认证方案,可以选择内建的用户,或者选择Open IO或者LDAP来校验
Security
安全页面可以配置TLS选项等安全相关设置,具体区别之后完善。
Encryption
启用加密选项后,会在文件写入时将其加密,保证存入的数据不可读。
通过CRD创建 Tenant
创建 SFTP Key
ssh-keygen -t rsa -b 2048 -f private.key -N ''
kubectl create secret generic sftp-keys -n benxiao --from-file=private.key --from-file=private.key.pub
部署 Tenant
apiVersion: minio.min.io/v2
kind: Tenant
metadata:
name: benxiao
namespace: benxiao
scheduler:
name: ''
spec:
additionalVolumeMounts:
- mountPath: /tmp/certs
name: minio-certs
readOnly: true
additionalVolumes:
- name: minio-certs
secret:
secretName: sftp-keys
configuration:
name: benxiao-env-configuration
credsSecret:
name: benxiao-secret
exposeServices:
console: true
minio: true
features:
enableSFTP: true
image: registry.kinson.fun/minio/minio:RELEASE.2024-03-15T01-07-19Z
imagePullSecret: {}
mountPath: /export
pools:
- containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
name: pool-0
resources:
requests:
cpu: '1'
memory: 2Gi
runtimeClassName: ''
securityContext:
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
servers: 4
volumeClaimTemplate:
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: '4294967296'
storageClassName: longhorn
status: {}
volumesPerServer: 2
requestAutoCert: false
users:
- name: benxiao-user-0