1
0
mirror of https://github.com/minio/docs.git synced 2025-04-21 08:05:59 +03:00
docs/source/includes/k8s/quickstart.rst
2022-09-16 16:40:20 -04:00

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 kubectl installation configured to create and access resources on the target Kubernetes deployment.
  • Familiarity with Kubernetes environments
  • Familiarity with using a Terminal or Shell environment

Procedure

  1. 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 YAML for a more detailed description of the object.

    Overview of the MinIO Object YAML

    The minio-dev.yaml contains 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-labels to 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 volumes fields to meet more specific requirements.

  2. Apply the MinIO Object Definition

    The following command applies the minio-dev.yaml configuration 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
  3. Temporarily Access the MinIO S3 API and Console

    Use the kubectl port-forward command 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 9000 and 9090 to the matching port on the local machine while active in the shell. The kubectl port-forward command 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-forward command.

    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.

  4. Connect your Browser to the MinIO Server

    Access the minio-console by 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.

    MinIO Console displaying login screen

    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.

    MinIO Console displaying bucket start screen

    For more information, see the minio-console documentation.

  5. (Optional) Connect the MinIO Client

    If your local machine has mc installed <mc-install>, use the mc alias set command 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>