Install Requirements

K10 can be installed in a variety of different environments and on a number of Kubernetes distributions today. To ensure a smooth install experience, running the pre-flight checks and ensuring that the prerequisites are met is highly recommended.

Pre-Flight Checks

Assuming that your default kubectl context is pointed to the cluster you want to install K10 on, you can run pre-flight checks by deploying the k10primer tool. This tool runs in a pod in the cluster and does the following:

  • Validates if the Kubernetes settings meet the K10 requirements.

  • Catalogs the available StorageClasses.

  • If a CSI provisioner exists, it will also perform a basic validation of the cluster's CSI capabilities and any relevant objects that may be required. It is strongly recommended that the same tool be used to also perform a more complete CSI validation using the documentation here.

Note that this will create, and clean up, a ServiceAccount and ClusterRoleBinding to perform sanity checks on your Kubernetes cluster.

Run the following command to deploy the the pre-check tool:

$ curl https://docs.kasten.io/tools/k10_primer.sh | bash

Prerequisites

  • The Helm package manager (v2.16.0+) and the Kasten Helm charts repository is required. Installing K10 via helm will also automatically create a new Service Account to grant K10 the required access to Kubernetes resources. If a pre-existing Service Account needs to be used, please follow these instructions.

    Add the Kasten Helm charts repository using:

    $ helm repo add kasten https://charts.kasten.io/
    

    Helm 2 needs to be configured to run with a service account that has a cluster-admin role binding. Without the proper binding, you may run into install errors. If this happens, your can run the following:

    # add a service account within a namespace to segregate tiller
    $ kubectl --namespace kube-system create sa tiller
    
    # create a cluster role binding for tiller
    $ kubectl create clusterrolebinding tiller \
        --clusterrole cluster-admin \
        --serviceaccount=kube-system:tiller
    
    # initialize helm within the tiller service account
    $ helm init --service-account tiller
    

    Add the Kasten Helm charts repository using:

    $ helm repo add kasten https://charts.kasten.io/
    

    You need to create the namespace where Kasten will be installed. By default, the documentation uses kasten-io.

    $ kubectl create namespace kasten-io
    
  • K10 assumes that the default storage class for is backed by SSDs or similarly fast storage media. If that is not true, please add the following option to the below K10 Helm install commands to specify a performance-oriented storage class.

    --set persistence.storageClass=<storage-class-name> \
    --set prometheus.server.persistentVolume.storageClass=<storage-class-name>