Working with KumoScale Software

The primary interface for KumoScale storage provisioning is the KumoScale Provisioner REST API. Several plugins provide prebuilt integration to the Provisioner API for Kubernetes™ CSI, OpenStack™ Cinder™ and Ansible™ bare metal environments. The Provisioner directly controls the NVMe-oF "data plane" in a storage deployment. The figure below shows how this works in a Kubernetes environment. Note that for appliance mode, the Kubernetes cluster is provided with the KumoScale software; for managed mode, it is your own healthy, high-availability Kubernetes cluster. When using KumoScale for managed mode on bare-metal, the Provisioner is deployed as an rpm and provisioning is done through the REST API or CLI.

installman-fig1

Example KumoScale Deployment showing control plane and data plane

 

Supporting the Provisioner is a KumoScale system control plane that is a set of Kubernetes Operators that control the storage system state (whether there is one node or multiple nodes). These are deployed as a set of Kubernetes containers running in a cluster spread across the available storage nodes (whether the storage system consists of one node or multiple nodes). KumoScale deploys several Kubernetes operators, detailed below, that control storage system configuration and operation. The control plane is only available when KumoScale is installed in Appliance mode or in Managed Mode with a Kubernetes cluster.

KumoScale Provisioner REST API for Storage Management

The KumoScale Software Provisioner REST API is the primary interface for storage management. The KumoScale Provisioner REST API can be accessed via SSH or terminal simply by entering valid REST API credentials. Details on how to access the Provisioner service REST API are available in KumoScale Provisioner REST API.

KumoScale Operators for Configuration Management

KumoScale Configuration Operators are supported in Appliance mode and Managed mode using Kubernetes clusters. They include:

  • Install Operator
  • Upgrade Operator
  • Storage Node Operator
  • License Operator
  • Master Cluster Operator (Appliance mode only)

KumoScale Operators for Operations Management

Internal KumoScale operations management Operators include

  • Telemetry Operator
  • Syslog Operator
  • KumoScale-internal Operators for Grafana™, Loki™, Fluentd™ and Prometheus that are configured by the KumoScale Master Cluster Operator are part of the KumoScale software for Appliance mode. To use these tools with Managed mode, contact Kioxia technical support.

Using KumoScale Operators and kubectl

For security reasons, users are not given direct access to the KumoScale storage cluster and must use a remote host to issue kubectl commands. kubectl is a command line tool for controlling Kubernetes clusters. For general information on kubectl, see https://kubernetes.io/docs/reference/kubectl/overview/. Users can use Secure Shell (SSH) or terminal access to storage nodes and use CLI and the REST API.

Storage administrators should use kubectl to tell KumoScale operators how to configure nodes, logging, and other components. You will need to use a remote host (based on Windows™, iOS ™, or Linux™ operating systems) that:

  • Support the Kubernetes kubectl
  • Supports a configuration that enables access to the KumoScale storage cluster.

For general information on kubectl, visit the Kubernetes web site. Configuring such a host is part of the installation for appliance mode.

KumoScale Custom Resource Definitions

KumoScale software defines a number of Custom Resource Definitions (CRD) that tell KumoScale Operators exactly how to manage the storage system when using Appliance mode or Managed mode with a Kubernetes cluster.  CRDs are implemented as yaml files to support the deployment environment as well as KumoScale components described in the Deploying Storage Nodes.

This section summarizes the CRD you will use and customize to support your implementation.

  • Master CRD are used to define the masters on the KumoScale storage cluster for Appliance mode only. These CRD are configured and deployed during installation.
  • Telemetry and Syslog CRD are used to collect data for planning and support purposes and usually set up after the KumoScale Storage Cluster is configured.
  • Storage Node CRD are used to configure storage nodes. You may set up different storage node CRD yaml files depending on different application needs and environmental settings. Storage nodes can be configured any time after installation.

Note that not all parameters of KumoScale CRD are available in Managed mode.

KumoScale Storage Cluster Master CRD for Appliance Mode

There are several CRDs used to configure masters on the KumoScale storage cluster. The only time that you will use the CRD files bulleted below is for installing, upgrading, or updating KumoScale software on the master nodes. See the Installation Guide for actions that require using these CRD and their specifications. A high-level summary of these actions follows:

  • Master CRD may be configured at install time with the number of masters and affinity/anti-affinity parameters. There is only one master CRD file per KumoScale storage cluster. A skeleton of the CRD file is provided with the KumoScale software for appliance mode.
  • License CRD is edited and deployed at install time with the license key provided to you by KIOXIA. You will not be able to provision or allocate volumes without a valid license key.
  • Internal Services CRD are CRD associated with Grafana™, Loki™, Fluentd™, and Prometheus. These are only available in appliance mode; managed mode users should contact Kioxia support if they want to use these applications with KumoScale. These CRD are edited at install time with the KumoScale storage cluster VIP and replication information. There is a CRD file for Prometheus, Loki, and Fluentd. There is only one CRD file for each service and it has the form:
    <service name>.kumoscale.kioxia.com_v1_<service name>_cr.yaml.

For example, fluentd.kumoscale.kioxia.com_v1_fluentdservice_cr.yaml.

Telemetry and Syslog CRD

In addition to the external tools above, there are several CRD that can be used to collect data for planning and support purposes. These CRD are defined in Telemetry  and Syslog along with instructions and examples for creation.

Storage Node CRD

Storage node CRD files are used to configure masters and workers on the storage cluster. You can create templates for storage nodes intended to be used by particular applications. Storage node parameters are explained with examples in Deploying KumoScale Storage Nodes.

 

Next: Deployment Process Overview