部署 MinIO 以支持对象存储
MinIO 是一个兼容 s3 标准的对象存储。
前置条件
创建名称空间
kubectl create ns minio
添加仓库
helm repo add minio https://helm.min.io/
helm search repo minio/minio
# NAME CHART VERSION APP VERSION DESCRIPTION
# minio/minio 8.0.10 master High Performance, Kubernetes Native Object Storage
修改可配置项
生成 values.yaml 文件
helm show values minio/minio > values.yaml
修改 values.yaml 文件
accessKey: 'minio'
secretKey: 'minio123'
persistence:
enabled: true
storageCalss: 'nfs-client'
VolumeName: ''
accessMode: ReadWriteOnce
size: 5Gi
service:
type: ClusterIP
clusterIP: ~
port: 9000
# nodePort: 32000
resources:
requests:
memory: 128Mi
如果你想知道最终生成的模版,可以使用 helm template
命令。
helm template -f values.yaml --namespace minio minio/minio > minio.yaml
部署 MinIO
helm install -f values.yaml minio minio/minio -n minio
配置证书和域名
创建 Ingress,并配置自动生成 https 证书
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minio
namespace: minio
annotations:
cert-manager.io/cluster-issuer: letsencrypt-dns01 # 配置自动生成 https 证书
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- 'minio.todoit.tech'
secretName: minio-letsencrypt-tls
rules:
- host: minio.todoit.tech
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: minio
port:
number: 9000
应用该 ingress 清单
kubectl apply -f ingress.yaml
最后,别忘了域名映射哦
登录 MinIO
用户名密码就是我们在清单文件中配置的 accessKey 和 secretKey