Deploy Mayastor
This website/page will be End-of-life (EOL) after 31 August 2024. We recommend you to visit OpenEBS Documentation for the latest Mayastor documentation (v2.6 and above).
Mayastor is now also referred to as OpenEBS Replicated PV Mayastor.
Overview
In this Quickstart guide we demonstrate deploying Mayastor by using the Kubernetes manifest files provided within the project's repositories (control plane components, data plane components). These repositories are configured for the GitFlow release model, wherein the master branch contains official releases. By extension, the head of the master branch represents the latest official release. Previous releases are identifiable by their annotated git tags.
The steps and commands which follow are intended only for use with, and have only be tested against, the latest release for version 1.x. Earlier releases or development versions may require a modified or different installation process and will require that the manifest files appropriate to that specific release are used. These are available in the repositories named above - use the files from the tagged commit appropriate to the release you wish to deploy.
Create Mayastor Application Resources
Namespace
kubectl create namespace mayastorRBAC Resources
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/operator-rbac.yamlserviceaccount/mayastor-service-account created
clusterrole.rbac.authorization.k8s.io/mayastor-cluster-role created
clusterrolebinding.rbac.authorization.k8s.io/mayastor-cluster-role-binding createdCustom Resource Definitions
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/mayastorpoolcrd.yamlDeploy Mayastor Dependencies
NATS
Mayastor uses NATS, an Open Source messaging system, as an event bus for some aspects of control plane operations.
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/nats-deployment.yamlVerify that the deployment of the NATS application to the cluster was successful. Within the mayastor namespace ensure that there are 3 replicas with the name "nats-x", and with a reported status of "Running".
kubectl -n mayastor get pods --selector=app=natsNAME READY STATUS RESTARTS AGE
nats-0 2/2 Running 0 50s
nats-1 2/2 Running 0 30s
nats-2 2/2 Running 0 10setcd
Mayastor uses etcd, a distributed, reliable key-value store, to persist configuration. The steps described below deploy a dedicated, clustered etcd instance for Mayastor's own use. This is the only configuration supported by this release.
To deploy the PersistentVolumes that will be used by the etcd in the next step, execute:
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/etcd/storage/localpv.yamlkubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/etcd/statefulset.yaml
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/etcd/svc.yaml
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/etcd/svc-headless.yamlVerify that the deployment of etcd to the cluster was successful. Within the mayastor namespace there should be 3 replicas with a name of the form "mayastor-etcd-" and with a reported status of "Running".
kubectl -n mayastor get pods --selector=app.kubernetes.io/name=etcdNAME READY STATUS RESTARTS AGE
mayastor-etcd-0 1/1 Running 0 70m
mayastor-etcd-1 1/1 Running 0 70m
mayastor-etcd-2 1/1 Running 0 70mDeploy Mayastor Components
CSI Node Plugin
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/csi-daemonset.yamlVerify that the CSI Node Plugin DaemonSet has been correctly deployed to all worker nodes in the cluster.
kubectl -n mayastor get daemonset mayastor-csiNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
mayastor-csi 3 3 3 3 3 kubernetes.io/arch=amd64 26mControl Plane
Core Agents
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/core-agents-deployment.yamlVerify that the core agent pod is running.
kubectl get pods -n mayastor --selector=app=core-agentsNAME READY STATUS RESTARTS AGE
core-agents-5f4d9f786b-6vvxc 1/1 Running 0 117sREST
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/rest-deployment.yaml
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/rest-service.yamldeployment.apps/rest created
service/rest createdVerify that the REST pod is running.
kubectl get pods -n mayastor --selector=app=restNAME READY STATUS RESTARTS AGE
rest-5cd9665499-cdgmm 1/1 Running 0 2m35sCSI Controller
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/csi-deployment.yamlVerify that the CSI-controller pod is running.
kubectl get pods -n mayastor --selector=app=csi-controllerNAME READY STATUS RESTARTS AGE
csi-controller-579f77f64-7dq7g 3/3 Running 0 39mMSP Operator
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor-control-plane/v1.0.5/deploy/msp-deployment.yamlVerify that the pool operator pod is running.
kubectl get pods -n mayastor --selector=app=msp-operatorNAME READY STATUS RESTARTS AGE
msp-operator-7849d59fcd-mcw5b 1/1 Running 0 21sData Plane
kubectl apply -f https://raw.githubusercontent.com/openebs/mayastor/v1.0.5/deploy/mayastor-daemonset.yamlVerify that the Mayastor DaemonSet has been correctly deployed. The reported Desired, Ready and Available instance counts should be equal, and should match the count of worker nodes which carry the label openebs.io/engine=mayastor (as performed earlier in the "Preparing the Cluster" stage).
kubectl -n mayastor get daemonset mayastorNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
mayastor 3 3 3 3 3 kubernetes.io/arch=amd64,openebs.io/engine=mayastor 108sThe number and status of mayastor pods can be observed by using the Mayastor kubectl plugin. Check that the expected number of nodes are reporting their State as online
kubectl mayastor get nodesNAME STATE AGE
aks-agentpool-12194210-0 online 8m18s
aks-agentpool-12194210-1 online 8m19s
aks-agentpool-12194210-2 online 8m15sLast updated
Was this helpful?