6.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Quickstart for Kubernetes
minio
This procedure deploys a Single-Node Single-Drive MinIO server onto Kubernetes for early development and evaluation of MinIO Object Storage and its S3-compatible API layer.
Use the MinIO Operator <minio-operator-installation> to
deploy and manage production-ready MinIO tenants on Kubernetes.
Prerequisites
- An existing Kubernetes deployment where at least one Worker Node has a locally-attached drive.
- A local kubectlinstallation configured to create and access resources on the target Kubernetes deployment.
- Familiarity with Kubernetes environments
- Familiarity with using a Terminal or Shell environment
Procedure
- Download the MinIO Object - Download the MinIO Kubernetes Object Definition - Download minio-dev.yaml to your host machine: - curl https://raw.githubusercontent.com/minio/docs/master/source/extra/examples/minio-dev.yaml -O- The file describes two Kubernetes resources: - A new namespace minio-dev, and
- A MinIO pod using a drive or volume on the Worker Node for serving data
 - Select the - Overview of the MinIO Object YAMLfor a more detailed description of the object.- Overview of the MinIO Object YAML - The - minio-dev.yamlcontains the following Kubernetes resources:- /extra/examples/minio-dev.yaml - The object deploys two resources: - A new namespace minio-dev, and
- A MinIO pod using a drive or volume on the Worker Node for serving data
 - The MinIO resource definition uses Kubernetes - Node Selectors and Labels <concepts/scheduling-eviction/assign-pod-node/#built-in-node-labels>to restrict the pod to a node with matching hostname label. Use- kubectl get nodes --show-labelsto view all labels assigned to each node in the cluster.- The MinIO Pod uses a - hostPath <concepts/storage/volumes/#hostpath>volume for storing data. This path must correspond to a local drive or folder on the Kubernetes worker node.- Users familiar with Kubernetes scheduling and volume provisioning may modify the - spec.nodeSelector,- volumeMounts.name, and- volumesfields to meet more specific requirements.
- A new namespace 
- Apply the MinIO Object Definition - The following command applies the - minio-dev.yamlconfiguration and deploys the objects to Kubernetes:- kubectl apply -f minio-dev.yaml- The command output should resemble the following: - namespace/minio-dev created pod/minio created- You can verify the state of the pod by running - kubectl get pods:- kubectl get pods -n minio-dev- The output should resemble the following: - NAME READY STATUS RESTARTS AGE minio 1/1 Running 0 77s- You can also use the following commands to retrieve detailed information on the pod status: - kubectl describe pod/minio -n minio-dev kubectl logs pod/minio -n minio-dev
- Temporarily Access the MinIO S3 API and Console - Use the - kubectl port-forwardcommand to temporarily forward traffic from the MinIO pod to the local machine:- kubectl port-forward pod/minio 9000 9090- The command forwards the pod ports - 9000and- 9090to the matching port on the local machine while active in the shell. The- kubectl port-forwardcommand only functions while active in the shell session. Terminating the session closes the ports on the local machine.- Note - The following steps of this procedure assume an active - kubectl port-forwardcommand.- To configure long term access to the pod, configure - Ingress <concepts/services-networking/ingress/>or similar network control components within Kubernetes to route traffic to and from the pod. Configuring Ingress is out of the scope for this documentation.
- Connect your Browser to the MinIO Server - Access the - minio-consoleby opening a browser on the local machine and navigating to- http://127.0.0.1:9090.- Log in to the Console with the credentials - minioadmin | minioadmin. These are the default- root user <minio-users-root>credentials.- You can use the MinIO Console for general administration tasks like Identity and Access Management, Metrics and Log Monitoring, or Server Configuration. Each MinIO server includes its own embedded MinIO Console. - For more information, see the - minio-consoledocumentation.
- (Optional) Connect the MinIO Client - If your local machine has - mc- installed <mc-install>, use the- mc alias setcommand to authenticate and connect to the MinIO deployment:- mc alias set k8s-minio-dev http://127.0.0.1:9000 minioadmin minioadmin mc admin info k8s-minio-dev- The name of the alias
- The hostname or IP address and port of the MinIO server
- The Access Key for a MinIO user <minio-users>
- The Secret Key for a MinIO user <minio-users>
 
Next Steps
- Connect your applications to MinIO <minio-drivers>
- Configure Object Retention <minio-object-retention>
- Configure Security <minio-authentication-and-identity-management>
- Deploy MinIO for Production Environments <deploy-minio-distributed>

