Giter Club home page Giter Club logo

jiva-csi's Introduction

jiva-csi

Releases Slack Twitter PRs Welcome Go Report Card Build Status

Overview

Jiva CSI driver implements the csi-spec for the provision and deprovision of the OpenEBS Jiva volumes on kubernetes.

Jiva CSI driver comprises of 2 components:

  • A controller component launched as a StatefulSet, implementing the CSI controller services. The Control Plane services are responsible for creating/deleting the required OpenEBS Volume.
  • A node component that runs as a DaemonSet, implementing the CSI node services. The node component is responsible for performing the iSCSI connection management and connecting to the OpenEBS Volume.

Quick Start

Prerequisites

  1. Kubernetes version 1.14 or higher
  2. OpenEBS Version 1.5 or higher installed. The steps to install OpenEBS are here
  3. jiva-operator must be installed. The steps to install jiva-operator is here
  4. iSCSI initiator utils installed on all the worker nodes
  5. You have access to install RBAC components into kube-system namespace. The Jiva CSI driver components are installed in kube-system namespace to allow them to be flagged as system critical components.

Installation

Run following commands to proceed with the installation:

  • For Ubuntu 16.04.

    kubectl apply -f https://raw.githubusercontent.com/openebs/jiva-csi/master/deploy/jiva-csi-ubuntu-16.04.yaml
    
  • For Ubuntu 18.04

    kubectl apply -f https://raw.githubusercontent.com/openebs/jiva-csi/master/deploy/jiva-csi.yaml
    

Verify that the Jiva CSI Components are installed.

$ kubectl get pods -n kube-system -l role=openebs-csi
NAME                            READY   STATUS    RESTARTS   AGE
openebs-jiva-csi-controller-0   4/4     Running   0          6m14s
openebs-jiva-csi-node-56t5g     2/2     Running   0          6m13s

Provision a Jiva volume

  1. Create a Storage Class to dynamically provision volumes using jiva-csi driver. A sample storage class looks like:
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: openebs-jiva-csi-sc
    provisioner: jiva.csi.openebs.io
    parameters:
      cas-type: "jiva"
      replicaCount: "1"
      replicaSC: "openebs-hostpath"
    
  2. Create PVC by specifying the above Storage Class in the PVC spec
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: jiva-csi-demo
    spec:
      storageClassName: openebs-jiva-csi-sc
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 4Gi
    
  3. Deploy your application by specifying the PVC name
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: fio
    spec:
      selector:
        matchLabels:
          name: fio
      replicas: 1
      strategy:
        type: Recreate
        rollingUpdate: null
      template:
        metadata:
          labels:
            name: fio
        spec:
          nodeName: gke-utkarsh-csi-default-pool-953ba289-rt9l
          containers:
          - name: perfrunner
            image: openebs/tests-fio
            command: ["/bin/bash"]
            args: ["-c", "while true ;do sleep 50; done"]
            volumeMounts:
          - mountPath: /datadir
            name: fio-vol
          volumes:
          - name: fio-vol
            persistentVolumeClaim:
              claimName: jiva-csi-demo
    

jiva-csi's People

Contributors

kmova avatar payes avatar utkarshmani1997 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.