Blog

OpenShift Persistent Storage with Cloud Volumes ONTAP

Red Hat’s OpenShift platform is an open-source, enterprise-grade Kubernetes environment that empowers developers and DevOps to each respectively focus on creating robust applications and deploy them at scale. This is achieved through support for developer-centric tooling, adding automation around application builds and CI/CD, as well as the monitoring, logging, and configuration of deployed microservices, such as through the built-in Istio service mesh.

OpenShift supports on-premises, hybrid cloud, and public cloud platforms, including AWS, Azure, and Google Cloud, making it easier to deploy the same containerized applications across multiple environments. OpenShift persistent storage is provided through Red Hat Gluster Storage, which can be configured to use the same nodes as the cluster itself, or as a separate storage cluster that OpenShift connects to, with the latter allowing for compute and storage to be scaled independently

In this article, we will look at how NetApp® Cloud Volumes ONTAP provides an alternative storage solution for OpenShift clusters, allowing you to use standard Kubernetes yaml files and Persistent Volumes Claims to provision persistent storage in cloud and multicloud environments.

Red Hat OpenShift

What is OpenShift?

OpenShift is an open-source Kubernetes platform from Red Hat that brings in an additional layer automation around application development and DevOps processes in order to speed up the process of delivering cloud native applications. OpenShift makes it easier to deploy container applications without downtime, monitor and graph performance metrics, and solve production issues.

The OpenShift platform is built completely on open-source software, starting from the Red Hat Enterprise Linux operating system and Kubernetes, as well as the Red Hat Gluster Storage solution used for persistent storage. OpenShift aims to combine both the best developer and best DevOps benefits within a single platform, in order for Kubernetes to be used as the engine that helps to drive forward application development, deployment, and scaling. 

OpenShift provides a range of templates that application developers can use to create new projects in languages such as Java, JavaScript, and PHP, with built-in support for a number of Application Runtimes, such as Spring, Vert.x, and Node.js. When you create a project, OpenShift ensures that it can be built and deployed from the very start, making CI/CD an intrinsic part of the development process, rather than something that is added later.

Picture1-11

Developers can then use the Red Hat CodeReady Toolchain to code their projects online in a containerized development environment, complete with terminal access. Red Hat’s online development tools also allow for team collaboration, issue tracking, and Scrum Kanban project and backlog management. Developers can also develop and test applications locally using the Red Hat Container Development Kit, which can be used to configure a local single-node OpenShift cluster.

As source code changes are pushed by developers, this automatically triggers Jenkins to execute pre-configured CI pipelines. The OpenShift UI allows for successful builds to then be promoted, for example, from Test to Staging, or from Staging to Production. The level of automation around these common application development processes is where OpenShift adds a lot of value.

On deploying an application, OpenShift will automatically perform a zero-downtime deployment, incrementally scaling existing pods down to zero, while at the same time deploying pods with the version of the project. This can all be visually monitored from the OpenShift dashboard. After deployment, operations team can continue to monitor the dashboard to keep checks of CPU, memory, and network I/O. The built-in application monitoring allows for these teams to debug and troubleshoot production issues using graphing tools such as Prometheus and Grafana.

OpenShift Persistent Storage using Gluster

OpenShift, like all Kubernetes environments, requires the set up and deployment of persistent storage for stateful applications, such as database services. Red Hat provides a solution for OpenShift persistent storage through their own open-source, cloud file sharing project known as Gluster, which allows storage volumes to be spread across multiple servers in a variety of configurations.

Gluster provides a lot of flexibility in terms of how storage can be deployed, including striped, distributed, and replicated configurations, however, this comes at the cost of increased complexity. Making accurate predictions as to how data will need to be accessed in the future, monitoring the environment, and making incremental changes as necessary increases the administrative burden of operating production environments. This burden may be acceptable in on-premises environments, but when moving to the cloud, building storage clusters can be made much easier. Using NetApp Cloud Volumes ONTAP is one way to do that.

NetApp Cloud Volumes ONTAP

Cloud Volumes ONTAP is storage solution for building cloud-native applications in AWS, Azure, and Google Cloud. By giving you a single interface for enterprise management of multicloud storage, Cloud Volumes ONTAP simplifies the provisioning, high availability, back up, data cloning, and performance tuning of cloud storage in any environment, for example to deploy OpenShift on Azure or AWS. Using NetApp Trident, you can directly connect Kubernetes clusters to your deployed Cloud Volumes ONTAP storage environments, and then make use of native Kubernetes protocols, such as Persistent Volume Claims, to dynamically allocate storage.

Cloud Volumes ONTAP supports the deployment of NFS, SMB/ CIFS, and iSCSI block-level storage. These storage volumes can be created using any of the available disk types for the cloud environment you are deploying into. For example, in AWS, you can allocate back-end storage using General Purpose SSDs (gp2) or Provisioned IOPS (io1), as required, and then map standard Kubernetes storage classes to these different storage pools. This makes it possible to easily distribute storage across different tiers—for example, bronze, silver and gold—based on the performance and capacity characteristics of each tier. 

NetApp Cloud Manager is a web-based portal application that is used to manage Cloud Volumes ONTAP deployments across cloud environments. Using Cloud Manager, you can deploy new storage environments to any available cloud platform and manage them all centrally through a single dashboard. Cloud Manager also gives you a graphical UI for deploying Trident and connecting your OpenShift clusters to your Cloud Volumes ONTAP instances.

Cloud Volumes ONTAP also comes with powerful storage-efficiency tools that help you manage your operational expenditure. The features include data compression, deduplication, and thin provisioning, each of which is applied transparently, alleviating the need for end-user processes to be changed or adapted. These features are especially useful in cloud environments where a reduction in storage footprint has a direct impact on cost. The storage efficiencies that are part of Cloud Volumes ONTAP can reduce cloud storage requirements by as much as 70%.

Cloud Volumes ONTAP helps you make even more effective use of the CI capabilities of OpenShift. Any Cloud Volumes ONTAP volume can be instantly and cloned space efficiently, which is very useful for application testing. In the backend, these clones are created using NetApp FlexClone technology; however, a clone, rather than a new volume, can be provisioned from OpenShift by simply changing the attributes used in the Persistent Volume Claim:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: testvolclone
  annotations:
    trident.netapp.io/cloneFromPVC: testvol
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi
  storageClassName: basic

Using OpenShift with Cloud Volumes ONTAP

OpenShift clusters can be connected to Cloud Volumes ONTAP using the Cloud Manager UI. After verifying network connectivity, simply upload your Kubernetes configuration file. This will allow Cloud Manager to install NetApp Trident into the destination cluster:

OpenShift clusters can be connected to Cloud Volumes ONTAP using the Cloud Manager UI. After verifying network connectivity, simply upload your Kubernetes configuration file. This will allow Cloud Manager to install NetApp Trident into the destination cluster:

Picture01

After this initial preparation phase, the set up process is completed by connecting a Cloud Volumes ONTAP storage environment to your destination cluster. Multiple clusters can be connected to the same instance of Cloud Volumes ONTAP. You can now provision persistent storage for your mission critical applications using NetApp’s enterprise data platform, while at the same time using the same Kubernetes constructs as you did before.

Picture3-3

As Cloud Manager also provides a complete RESTful API that covers all of the operations performed through the UI, it also possible to automate this setup procedure and integrate it into the cluster set up procedures used for OpenShift. This allows you to include the above operations in the same Ansible playbooks that you use to deploy your OpenShift clusters. We will show how this can be achieved in our next article on using Ansible with Cloud Volumes ONTAP .

Conclusion

Red Hat OpenShift provides solutions for building and deploying cloud native applications that empower developers and DevOps team members alike. By providing built-in automation around the application development process used to create new services, as well as to deploy, monitor, and manage them in production, OpenShift offers a compelling solution for container deployment to the cloud, as well as on-premises. But there’s more that it can do, with the right help.

Using Cloud Volumes ONTAP, OpenShift clusters can offload the serious task of managing enterprise data, providing data resilience and high availability, ensuring high performance, and making data easily available for testing. NetApp Trident and Cloud Manager make it easy to integrate and consume cloud storage in Cloud Volumes ONTAP from OpenShift clusters. Technologies such as NetApp FlexClone can be used to make the CI and application testing features of the OpenShift service even more effective.

To try out Cloud Volumes ONTAP today, sign up for a 30-day free version today.

 

-