需求:项目需要一个临时的对象存储,每个租户下的应用共用一个minio,删除租户时自动删除minio;需要持久存储,挂载目录为/data,有点乱,当笔记看.....
chat目录结构:
.
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── NOTES.txt
│ ├── pvc.yaml
│ └── service.yaml
└── values.yaml
Chart.yaml
apiVersion: v1 appVersion: 1.16.0 description: A Helm chart name: minio type: application version: 0.1.0
values.yaml
replicas: 1 imageRegistry: "hub.newbee.local:8082" #指定自定义仓库 image: name: minio #镜像名称 tag: "v1" #版本 pull_policy: "Always" labels: app: minio environment: production containerPorts: - name: http containerPort: 9000 storageClassName: nfs-client #指定pv的存储类
deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }}-deployment labels: app: {{ .Release.Name }} spec: replicas: {{ .Values.replicas }} selector: matchLabels: app: {{ .Release.Name }} template: metadata: labels: app: {{ .Release.Name }} spec: containers: - image: {{ .Values.imageRegistry }}/justep/{{ .Values.image.name }}:{{ .Values.image.tag }} name: {{ .Release.Name }} imagePullPolicy: {{ .Values.pull_policy }} args: - server - /data #指定minio运行时存储的目录 ports: - containerPort: 9000 name: minio - containerPort: 9001 #这个配置没有生效 name: console env: - name: MINIO_ROOT_USER value: minioadmin - name: MINIO_ROOT_PASSWORD value: minioadmin volumeMounts: - name: {{ .Release.Name }}-volume mountPath: /data volumes: - name: {{ .Release.Name }}-volume persistentVolumeClaim: claimName: {{ .Release.Name }}-pvc
service.yaml
apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }}-service namespace: {{ .Release.Namespace }} labels: newdao.serviceType: {{ .Release.Name }} heritage: helm spec: selector: app: {{ .Release.Name }} ports: - name: minio port: 9000 targetPort: 9000 - name: console port: 9001 targetPort: 9001
pvc.yaml
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: {{ .Release.Name }}-pvc spec: accessModes: - ReadWriteMany storageClassName: {{ .Values.storageClassName }} resources: requests: storage: 50Gi