apiVersion: v1 kind: Pod metadata: name: minio labels: app: minio spec: containers: - name: minio imagePullPolicy: Always image: minio/minio volumeMounts: - name: minio-data mountPath: /data args: - server - /data env: # MinIO access key and secret key - name: MINIO_ACCESS_KEY value: "minio" - name: MINIO_SECRET_KEY value: "minio123" ports: - containerPort: 9000 # Readiness probe detects situations when MinIO server instance # is not ready to accept traffic. Kubernetes doesn't forward # traffic to the pod while readiness checks fail. readinessProbe: httpGet: path: /minio/health/ready port: 9000 initialDelaySeconds: 120 periodSeconds: 20 # Liveness probe detects situations where MinIO server instance # is not working properly and needs restart. Kubernetes automatically # restarts the pods if liveness checks fail. livenessProbe: httpGet: path: /minio/health/live port: 9000 initialDelaySeconds: 120 periodSeconds: 20 volumes: - name: minio-data persistentVolumeClaim: claimName: minio-data-0 --- apiVersion: v1 kind: Service metadata: # This name uniquely identifies the service name: minio-service spec: type: LoadBalancer ports: - port: 9000 targetPort: 9000 protocol: TCP selector: # Looks for labels `app:minio` in the namespace and applies the spec app: minio --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: minio-data-0 labels: app: minio annotations: volume.beta.kubernetes.io/storage-class: minio-pod-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi dataSource: --- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: minio-pod-storage provisioner: kubernetes.io/vsphere-volume parameters: diskformat: thin datastore: itsoesxcaas01_LUN01 fstype: ext3