Veritas InfoScale™ for Kubernetes Environments 8.0.100 - Linux
- Overview
- System requirements
- Preparing to install InfoScale on Containers
- Installing Veritas InfoScale on OpenShift
- Installing InfoScale on a system with Internet connectivity
- Installing InfoScale in an air gapped system
- Installing Veritas InfoScale on Kubernetes
- Tech Preview: Configuring KMS-based Encryption on an OpenShift cluster
- Tech Preview: Configuring KMS-based Encryption on a Kubernetes cluster
- InfoScale CSI deployment in Container environment
- Dynamic provisioning
- Snapshot provisioning (Creating volume snapshots)
- Managing InfoScale volume snapshots with Velero
- Volume cloning
- Installing and configuring InfoScale DR Manager on OpenShift
- Installing and configuring InfoScale DR Manager on Kubernetes
- Disaster Recovery scenarios
- Configuring 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:
You must ensure that the VxFS file system is created before provisioning the volumes statically. If the VxFS 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"
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!.