目前准备在k8s上部署对象存储minio,我采用了有状态服务部署的,可单机也可以分布式部署,在部署前,对应的k8s环境上需要预置存储卷类型,对应的yaml文件如下:
---
apiVersion: v1
kind: Secret
metadata:
name: minio
namespace: "default"
labels:
app.kubernetes.io/name: minio
type: Opaque
data:
root-user: "SEJFNFpQUUEzT0xOTlNNVU5XV0M="
root-password: "Tk5kZ3lEUjNMYmRwbm1YZThBUGNIbG5rVG5iRk9ORDJiczlsQ215VQ=="
---
apiVersion: v1
kind: Service
metadata:
name: minio-service
namespace: "default"
spec:
selector:
app.kubernetes.io/name: minio
type: NodePort
ports:
- name: minio
protocol: TCP
port: 9001
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: minio-statefulset
namespace: "default"
spec:
selector:
matchLabels:
app.kubernetes.io/name: minio
serviceName: minio
replicas: 1
template:
metadata:
labels:
app.kubernetes.io/name: minio
spec:
containers:
- name: minio
image: harbor.e-tudou.com/ops-mw-snapshot/minio:RELEASE.2022-07-26T00-53-03Z
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
env:
- name: "TZ"
value: "Asia/Shanghai"
- name: MINIO_ROOT_USER
valueFrom:
secretKeyRef:
name: minio
key: root-user
- name: MINIO_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: minio
key: root-password
- name: MINIO_BROWSER
value: "on"
- name: MINIO_PROMETHEUS_AUTH_TYPE
value: "public"
ports:
- containerPort: 9001 #容器内端口可根据自身进行更改
name: minio
command:
- /bin/bash
- -c
args:
- minio server /data --console-address :9001 #容器内端口可根据自身进行更改
volumeMounts:
- name: data
mountPath: /data
livenessProbe:
httpGet:
path: /minio/health/live
port: minio
scheme: "HTTP"
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
readinessProbe:
tcpSocket:
port: minio
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 5
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 100Gi
#storageClassName: "csi-rbd-sc" #存储卷名
亲测可用,欢迎各位批评指正!!!