Internal Network File System on OpenShift Container Platform

Learn about backing up and uninstalling an internal NFS server on OpenShift Container Platform.

Backing up Project Files and Folders

The block device backing the NFS server data must be backed up to protect the Cloudera AI project files and folders. The backup mechanism would vary depending on the underlying block storage system and backup policies in place.

  1. Identify the underlying block storage to backup, first determine the NFS PV:

    $ echo `kubectl get pvc -n cml-nfs -o jsonpath='{.items[0].spec.volumeName}'`
           pvc-bec1de27-753d-11ea-a287-4cd98f578292
          
  2. For Ceph, the RBD volume/image name is the name of the dynamically created persistent volume (pvc-3d3316b6-6cc7-11ea-828e-1418774847a1).

Ensure this volume is backed up using an appropriate backup policy. The Backup/Restore feature is not yet supported for workbenches with an internal NFS.

Uninstalling the NFS server on OpenShift

Uninstall the NFS server provisioner using either of the following commands.

Use this command if the NFS server provisioner was installed using oc and yaml files:
$ oc delete scc nfs-scc
$ oc delete clusterrole cml-nfs-nfs-server-provisioner 
$ oc delete clusterrolebinding cml-nfs-nfs-server-provisioner 
$ oc delete namespace cml-nfs
Use this command if the NFS server provisioner was installed using Helm:
$ helm tiller run cml-nfs -- helm delete cml-nfs --purge
$ oc delete scc nfs-scc securitycontextconstraints.security.openshift.io "nfs-scc" deleted

Storage provisioner change

For Cloudera AI on OpenShift Container Platform the underlying storage provisioner for internal workbenches has been changed since Cloudera 1.5.0.

Any new internal workbench on 1.5.0 uses CephFS as the underlying storage provisioner. A storage class named ocs-storagecluster-cephfs with csi driver set to openshift-storage.cephfs.csi.ceph.com must exist in the cluster for new internal workbenches to get provisioned. Each workbench will have separate 1 TB internal storage.

Internal workbenches running on Private Cloud 1.4.0/1 use NFS server provisioner as the storage provisioner. These workbenches when upgraded to 1.5.0 continue to run with NFS Provisioner. However, NFS server provisioner is deprecated and is not be supported from 1.5.1 release. Therefore, migrate 1.5.0 upgraded workbench from NFS server provisioner to CephFS if you want to continue using the same workbench in 1.5.1 as well. If no such migration is completed, create a new 1.5.0 workbench and migrate the existing workloads to that before migrating to 1.5.1 release.

Portworx storage provisioner

Cloudera AI now supports Portworx as storage backend for workbenches. New Cloudera AI Workbenches can be configured to use Portworx volumes for storing data.

Steps:

  1. Create a Portworx storage class in your OpenShift Container Platform cluster manually. This storage class should have the provisioner field set to either pxd.portworx.com or kubernetes.io/portworx-volume.

    Sample storage classes are:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    name: sample-portworx-storage-class-k8s
    parameters:
    repl: "3"
    allow_all_ips: "true"
    provisioner: kubernetes.io/portworx-volume
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate 
          
    ---
          
          
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    name: sample-portworx-storage-class-pxd 
    parameters:
    repl: "2"
    sharedv4: "true"
    sharedv4_svc_type: ClusterIP
    allow_all_ips: "true"
    provisioner: pxd.portworx.com
    reclaimPolicy: Retain
    allowVolumeExpansion: true     
    volumeBindingMode: Immediate
          
    ---
          
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    name: sample-portworx-storage-class-pxd 
    parameters:
    repl: "2"
    sharedv4: "true"
    sharedv4_svc_type: ClusterIP
    allow_ips: 10.17.0.0/16
    provisioner: pxd.portworx.com
    reclaimPolicy: Retain
    allowVolumeExpansion: true     
    volumeBindingMode: Immediate
  2. In the Cloudera AI Workbench provisioning page, enable Set Custom NFS Storage Class Name". Enter the name of storage class created manually above into the Storage Class Name text box.
  3. Enter the rest of the workbench details and submit. This will create a Portworx-backed Cloudera AI Workbench.