# MinIO Object Storage Kubernetes Deployment apiVersion: v1 kind: Namespace metadata: name: data-storage --- apiVersion: v1 kind: Secret metadata: name: minio-secret namespace: data-storage type: Opaque stringData: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: change-me-in-production --- apiVersion: apps/v1 kind: StatefulSet metadata: name: minio namespace: data-storage spec: serviceName: minio replicas: 4 selector: matchLabels: app: minio template: metadata: labels: app: minio spec: containers: - name: minio image: minio/minio:latest args: - server - /data - --console-address - ":9001" envFrom: - secretRef: name: minio-secret ports: - containerPort: 9000 name: api - containerPort: 9001 name: console volumeMounts: - name: data mountPath: /data resources: requests: memory: "512Mi" cpu: "250m" limits: memory: "1Gi" cpu: "500m" volumeClaimTemplates: - metadata: name: data spec: accessModes: ["ReadWriteOnce"] storageClassName: standard resources: requests: storage: 100Gi --- apiVersion: v1 kind: Service metadata: name: minio namespace: data-storage spec: clusterIP: None ports: - port: 9000 targetPort: 9000 name: api - port: 9001 targetPort: 9001 name: console selector: app: minio --- apiVersion: v1 kind: Service metadata: name: minio-console namespace: data-storage spec: type: LoadBalancer ports: - port: 9001 targetPort: 9001 name: console selector: app: minio