Running OpenEBS Operator¶
Prerequisites include the following:
A fully configured Kubernetes cluster (versions 1.6.3/4/6 and 1.7.0, and 1.7.5 have been tested) with Kubernetes master and at least one Kubernetes node. This can be created on cloud platforms like Google Cloud Engine, on-premise virtual machines (vagrant/VMware/Hyper-V) or Baremetal boxes.
- OpenEBS recommends using a 3-node cluster, with one master and two nodes. This aids in creating storage replicas on separate nodes and is helpful in maintaining redundancy and data availability.
test@Master:~$ kubectl get nodes NAME STATUS AGE VERSION host01 Ready 18h v1.6.3 host02 Ready 18h v1.6.3 master Ready 18h v1.6.3
- If you are using gcp, view the appendix in this section for additional steps to set up cluster administration context and use it.
Verify that the Kubernetes cluster is in optimal state by using the following commands.
name@Master:~$ kubectl get nodes NAME STATUS AGE VERSION host01 Ready 5d v1.6.3 host02 Ready 5d v1.6.3 master Ready 5d v1.6.3
- Sufficient resources on the nodes to host the OpenEBS storage pods and Percona application pods. This includes sufficient disk space. In this example, physical storage for the pvolume containers will be created from the local storage.
- iSCSI support on the nodes is required to consume the iSCSI target exposed by the OpenEBS volume container. In ubuntu, you can install the iSCSI initiator using the following procedure.
sudo apt-get update sudo apt-get install open-iscsi sudo service open-iscsi restart
Verify that iSCSI is configured using the following commands.
sudo cat /etc/iscsi/initiatorname.iscsi sudo service open-iscsi status
Install the following dependent packages to run mongodb-integrated Sysbench input/output tool on any one of the Kubernetes nodes.
sudo apt-get install <packagename>: make libsas12-dev libssl-dev libmongoc-dev libbson-dev automake libmysqlclient-dev libtool
The following commands help you run OpenEBS Operator.
Download the latest OpenEBS operator files and sample percona-mysql application pod yaml/MongoDB StatefulSet specification yaml on the Kubernetes master from the OpenEBS git repository.
git clone https://github.com/openebs/openebs.git cd openebs/k8s
Apply the openebs-operator.yaml file on the Kubernetes cluster. This creates the maya api-server and OpenEBS provisioner deployments.
kubectl apply -f openebs-operator.yaml
Add the OpenEBS storage classes using the following command. This can be used by developers to map a suitable storage profile for their applications in their respective persistent volume claims.
kubectl apply -f openebs-storageclasses.yaml
Check whether the deployments are running successfully using the following commands.
name@Master:~$ kubectl get deployments NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE maya-apiserver 1 1 1 1 2m openebs-provisioner 1 1 1 1 2m
name@Master:~$ kubectl get pod NAME READY STATUS RESTARTS AGE maya-apiserver-1633167387-5ss2w 1/1 Running 0 24s openebs-provisioner-1174174075-f2ss6 1/1 Running 0 23s
Check whether the storage classes are applied successfully using the following commands.
test@Master:~$ kubectl get sc NAME TYPE openebs-cassandra openebs.io/provisioner-iscsi openebs-es-data-sc openebs.io/provisioner-iscsi openebs-jupyter openebs.io/provisioner-iscsi openebs-kafka openebs.io/provisioner-iscsi openebs-mongodb openebs.io/provisioner-iscsi openebs-percona openebs.io/provisioner-iscsi openebs-redis openebs.io/provisioner-iscsi openebs-standalone openebs.io/provisioner-iscsi openebs-standard openebs.io/provisioner-iscsi openebs-zk openebs.io/provisioner-iscsi