A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/NGXStorage/iscsi-csi-ngxstorage-driver below:

NGXStorage/iscsi-csi-ngxstorage-driver: NGX Storage CSI Plugin compatible with v1.26+ Kubernetes

NGX STORAGE BLOCK STORAGE CSI DRIVER

A Container Storage Interface (CSI) Driver for NGX Storage Block Storage. The CSI driver allows you to use NGX Storage Block Storage with your preferred Container Orchestrator.

The NGX Storage CSI driver is mostly tested on Kubernetes. Theoretically it should also work on other Container Orchestrators, such as Mesos or Cloud Foundry. Feel free to test it on other CO's and give us a feedback.

Below is a list of functionality implemented by the driver. In general, CSI features implementing an aspect of the specification.

See also the project examples. for use cases.

Volumes can be expanded by updating the storage request value of the corresponding PVC:

Before:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-pvc
  namespace: default
spec:
  [...]
  resources:
    requests:
      # The field below can be increased.
      storage: 100Gi
      [...]

After:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-pvc
  namespace: default
spec:
  [...]
  resources:
    requests:
      # The field below can be increased.
      storage: 200Gi
      [...]

After successful expansion, the status section of the PVC object will reflect the actual volume capacity.

Important notes:

Volumes can be used in raw block device mode by setting the volumeMode on the corresponding PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-pvc
  namespace: default
spec:
  [...]
  volumeMode: Block

Important notes:

Volumes can be transferred across clusters. The exact steps are outlined in our example.

Volumes can be snapshotted. The exact steps are outlined in our example.

At NGX Storage we value and love our community! If you have any issues or would like to contribute, feel free to open an issue or send an e-mail k8s@ngxstorage.com.

The following table describes the required NGX Storage CSI driver version per supported Kubernetes release.

Kubernetes Release NGX Storage CSI Driver Version 1.26 v1.0.0+ 1.27 v1.0.0+ 1.28 v1.0.0+

NGX Storage Block Storage Driver tested on Ubuntu, Pardus and RHEL 9 hosts.

1. Clone this repo for deploy driver
git clone https://github.com/NGXStorage/iscsi-csi-ngxstorage-driver
2.1. Edit deploy/iscsi-csi-ngxstorage-secret.yaml

Edit secret file with your storage informations.

$ kubectl create -f deploy/{iscsi-csi-ngxstorage-secret.yaml}
secret/ngxstorage-secret created

You should now see the secret in the kube-system namespace along with other secrets

$ kubectl -n kube-system get secrets
NAME                  TYPE                                  DATA      AGE
default-token-jskxx   kubernetes.io/service-account-token   3         18h
ngxstorage-secret     Opaque                                1         18h
3. Deploy the CSI driver and sidecars

Edit file acording to needs its equvilent of NGX Storage manager LUN create page.

kubectl apply -f deploy/

storageclass.storage.k8s.io/iscsi-csi-ngxstorage-class created
deployment.apps/iscsi-csi-ngxstorage-controller created
daemonset.apps/iscsi-csi-ngxstorage-node created
csidriver.storage.k8s.io/iscsi.csi.ngxstorage.com created
serviceaccount/iscsi-csi-ngxstorage-service-account created
clusterrole.rbac.authorization.k8s.io/iscsi-csi-ngxstorage-cluster-role created
clusterrolebinding.rbac.authorization.k8s.io/iscsi-csi-ngxstorage-cluster-role-binding created
4.1. Create a PersistentVolumeClaim

This makes sure a volume is created and provisioned on your behalf:

4.1.1 Edit examples/pod-single-volume/pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-filesystem-pvc
spec:
  storageClassName: iscsi-csi-ngxstorage-class
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
kubectl apply -f examples/pod-single-volume/pvc.yaml

Check that a new PersistentVolume is created based on your claim:

$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM             STORAGECLASS                 REASON    AGE
pvc-07b52079-1198-72e8-b6b4-5d1af75f32d8   5Gi        RWO            Delete           Bound     default/csi-pvc   iscsi-csi-ngxstorage-class             3m

The above output means that the CSI driver successfully created (provisioned) a new Volume on behalf of you. You should be able to see this newly created volume under the SAN tab LUNS section in the NGX Storage Management UI.

4.2.1 Edit examples/pod-single-volume/pod.yaml
kind: Pod
apiVersion: v1
metadata:
  name: my-csi-app
spec:
  containers:
    - name: my-frontend
      image: busybox
      volumeMounts:
      - mountPath: "/data"
        name: my-do-volume
      command: [ "sleep", "1000000" ]
  volumes:
    - name: my-do-volume
      persistentVolumeClaim:
        claimName: test-filesystem-pvc
kubectl apply -f examples/pod-single-volume/pod.yaml

Check if the pod is running successfully:

kubectl describe pods/my-csi-app
4.3 Try to write data to the volume in container
$ kubectl exec -ti my-csi-app /bin/sh
/ # touch /data/hello-world
/ # dd if=/dev/zero of=/data/test bs=1M count=1000
/ # exit
$ kubectl exec -ti my-csi-app /bin/sh
/ # ls /data
hello-world test

Now check the storage UI to see if the data is written to the volume.

Copyright 2023 NGX Teknoloji A.Ş.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4