Veritas InfoScale™ for Kubernetes Environments 8.0.200 - Linux
- Overview
- System requirements
- Preparing to install InfoScale on Containers
- Installing Veritas InfoScale on OpenShift
- Introduction
- Prerequisites
- Additional Prerequisites for Azure RedHat OpenShift (ARO)
- Considerations for configuring cluster or adding nodes to an existing cluster
- Installing InfoScale on a system with Internet connectivity
- Installing InfoScale in an air gapped system
- Installing Veritas InfoScale on Kubernetes
- Introduction
- Prerequisites
- Installing the Special Resource Operator
- Tagging the InfoScale images on Kubernetes
- Applying licenses
- Tech Preview: Installing InfoScale on an Azure Kubernetes Service(AKS) cluster
- Considerations for configuring cluster or adding nodes to an existing cluster
- Installing InfoScale on Kubernetes
- Installing InfoScale by using the plugin
- Undeploying and uninstalling InfoScale
- Configuring KMS-based Encryption on an OpenShift cluster
- Configuring KMS-based Encryption on a Kubernetes cluster
- InfoScale CSI deployment in Container environment
- CSI plugin deployment
- Raw block volume support
- Static provisioning
- Dynamic provisioning
- Resizing Persistent Volumes (CSI volume expansion)
- Snapshot provisioning (Creating volume snapshots)
- Managing InfoScale volume snapshots with Velero
- Volume cloning
- Using InfoScale with non-root containers
- Using InfoScale in SELinux environments
- CSI Drivers
- Creating CSI Objects for OpenShift
- Installing and configuring InfoScale DR Manager on OpenShift
- Installing and configuring InfoScale DR Manager on Kubernetes
- Disaster Recovery scenarios
- Configuring InfoScale
- Administering InfoScale on Containers
- Upgrading InfoScale
- Troubleshooting
Static provisioning
You can use static provisioning if you want to make the existing persistent storage objects available to the cluster. You can statically provision a volume over shared storage (CVM) and shared nothing (FSS) storage.
Static provisioning allows cluster administrators to make existing storage objects available to a cluster. To use static provisioning, you must know the details of the storage object, its supported configurations, and mount options. To make existing storage available to a cluster user, you must manually create a Persistent Volume, and a Persistent Volume Claim before referencing the storage in a pod.
Note:
In case you want to use filesystem-persistent volumes, ensure that the Veritas File System is created before provisioning the volumes. If the Veritas File System does not exist, you must create it manually by using the mkfs command from the InfoScale driver container .
Creating Static Provisioning
- You can create a Storage Class by running the csi-infoscale-sc.yaml file which is as under-.
--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-infoscale-sc annotations: storageclass.kubernetes.io/is-default-class: "false" provisioner: org.veritas.infoscale reclaimPolicy: Delete allowVolumeExpansion: true parameters: fstype: vxfs # (optional) Specifies a volume layout type. # Supported layouts: stripe, mirror, stripe-mirror,,mirror-stripe, # concat, concat-mirror, mirror-concat # If omitted, InfoScale internally chooses the best suited layout # based on the environment. # layout: "mirror" # (optional) Specifies the number of disk or host failures a storage # object can tolerate. # faultTolerance: "1"
# (optional) Specifies the number of stripe columns to use when # creating a striped volume. # nstripe: "3" # (optional) Specifies the stripe unit size to use # for striped volume. # stripeUnit: "64k" # (optional) Specifies disks with the specified media type. # All disks with the given mediatype are selected for volume creation. # Supported values: hdd, ssd # mediaType: "hdd" # (optional) Specifies whether to store encrypted data on disks or not. # Valid values are true or false # encryption: "false" #(optional) Specifies how to initialize a new volume. # Valid values are "active" and "sync" # initType: "active"
Note:
The supported
initTypevalues are"sync"or"active".Run oc create -f csi-infoscale-sc.yaml
- You must be ready with the VxVM volume name to define the Persistent Volume object.
Run oc exec -ti -n <namespace> <driver-container> -- <cmd> to list Volumes from the InfoScale Driver Container.
An example of this command is oc exec -ti -n infoscale-vtas infoscale-vtas-driver-container-rhel8-bwvwb -- vxprint -g vrts_kube_dg -vuh | grep -w fsgen
- In the
csi-static-pv.yaml, define the Persistent Volume object and specify the existing VxVM volume name in the volumeHandle attribute.csi-static-pv.yaml --- apiVersion: v1 kind: PersistentVolume metadata: name: csi-infoscale-pv annotations: pv.kubernetes.io/provisioned-by: org.veritas.infoscale spec: storageClassName: csi-infoscale-sc persistentVolumeReclaimPolicy: Delete capacity: storage: 5Gi accessModes: - ReadWriteOnce csi: driver: org.veritas.infoscale # Please provide pre-provisioned Infoscale volume name. volumeHandle: <existing_VxVM_volume_name> fsType: vxfs - Create a Persistent Volume using the yaml.
oc create -f csi-static-pv.yaml
- Define the Persistent Volume Claim (PVC) with appropriate access mode and storage capacity.
csi-static-pvc.yaml --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: csi-infoscale-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: csi-infoscale-sc - Create a Persistent Volume Claim by using the yaml. This PVC automatically gets bound with the newly created PV.
oc create -f csi-static-pvc.yaml
- Update the application yaml file (
mysql-deployment.yaml) and specify the persistent Volume Claim name.apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment labels: app: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:latest ports: - containerPort: 3306 volumeMounts: - mountPath: "/var/lib/mysql" name: mysql-data env: - name: MYSQL_ROOT_PASSWORD value: root123 volumes: - name: mysql-data persistentVolumeClaim: claimName: csi-infoscale-pvc - Create the application pod.
oc create -f mysql-deployment.yaml
- Check that old data exists on the persistent volume. Run the following commands
oc get pods | grep mysql and oc exec -it mysql-deployment<id> -- mysql -uroot -pRoot12345!.
Enabling raw block support with static provisioning
- Run oc exec -ti -n <namespace> <driver-container> -- <cmd> to list Volumes from the InfoScale Driver Container. Be ready with the names of the Volumes.
- Update
volumeHandleincsi-static-block-pv.yamlas under.--- apiVersion: v1 kind: PersistentVolume metadata: name: csi-infoscale-block-pv annotations: pv.kubernetes.io/provisioned-by: org.veritas.infoscale spec: volumeMode: Block storageClassName: csi-infoscale-sc persistentVolumeReclaimPolicy: Delete capacity: storage: 5Gi accessModes: - ReadWriteOnce csi: driver: org.veritas.infoscale # Please provide pre-provisioned Infoscale volume name. volumeHandle: <Name of the Volume> volumeAttributes: volumePath: "/dev/blk" - Run oc create -f csi-static-pv.yaml to apply the yaml.
- Define the Persistent Volume Claim (PVC) with appropriate access mode and storage capacity in
csi-static-block-pvc.yamlas under.--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: csi-infoscale-block-pvc spec: volumeMode: Block accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: csi-infoscale-sc - Run oc create -f csi-static-block-pvc.yaml to apply the yaml.
- Update the Persistent Volume Claim in
csi-static-block-pod.yamlas under.--- apiVersion: v1 kind: Pod metadata: name: redis labels: name: redis spec: containers: - name: redis image: redis imagePullPolicy: IfNotPresent volumeDevices: - devicePath: "/dev/blk" name: vol1 volumes: - name: vol1 persistentVolumeClaim: claimName: csi-infoscale-block-pvc - Run oc create -f csi-static-block-pod.yaml to create the application pod.