Home > Storage > PowerFlex > White Papers > Oracle in Docker Containers Managed by Kubernetes > Use Case 2: Automated provisioning of a containerized development and testing environment
In Use Case 1, we showed the manual provisioning of a container on an Oracle Linux OS, PowerFlex storage system, and VMware vSphere virtualization stack. The next step will effectively lead to automated provisioning of containers and storage via Container orchestration (Kubernetes), further accelerating the provisioning of the software development environment. This is even more important when hundreds or thousands of containers must be managed. Implementing Oracle databases in Docker containers ensures consistent, isolated, and reliable behavior across environments. In this use case, a developer provisions the Oracle database in containers on the existing infrastructure described in Use Case 1 by using Kubernetes with the CSI Driver for Dell EMC PowerFlex.
Use Case 2 demonstrates the value of CSI plug-in integration with Kubernetes and PowerFlex storage. Kubernetes orchestration with PowerFlex provides a container strategy on persistent storage. This strategy demonstrates the ease, simplicity, and speed in scaling out a development and testing environment from production Oracle databases.
Use Case 2 includes both Oracle 12c and 19c database containers running on the development and testing environment within the Kubernetes cluster as shown below.
Figure 12. Use Case 2 – Architecture
As shown in the architecture diagram of Use Case 2 (above), one master node and three worker nodes are running within the Kubernetes cluster. The Kubernetes Master is a collection of processes that run on a single node in the cluster, which is designated as the master node. Those processes are: kube-apiserver, kube-controller-manager and kube-scheduler. Each individual worker node in your cluster runs two processes:
Kubernetes in an ESXi environment, the PowerFlex SDS, and MDM (explained earlier) are deployed in a special VM called Storage VM (SVM). A Storage VM (SVM) must have a management IP address and another address for the data network where traffic flows between SDSs and SDCs (explained earlier) for read/writes. Inside the Kubernetes cluster, we install the CSI Driver for Dell EMC PowerFlex which is a plug-in that provides persistent storage, using PowerFlex. The driver has two components: CSI controller and CSI agent. While CSI controller facilitates control, coordination, and communication among various worker nodes, the CSI agent sends the status of the target node/server to the CSI controller for management purposes. The distribution of various components of Use Case 2 objects in different Kubernetes worker nodes is depicted in the following table:
Table 7. Distribution of application/Objects across different Kubernetes worker nodes
Kubernetes | Virtual Machine | Application/ Object | POD |
Kubernetes Worker 1 | VM1 | CSI Controller | POD1 |
CSI Agent | POD2 | ||
VM2 | Oracle Container registry | ||
Kubernetes Worker 2 | VM1 | Oracle 12c DB | POD1 |
| CSI Agent | POD2 | |
Kubernetes Worker 3 | VM1 | Oracle 19c DB | POD1 |
| CSI Agent | POD2 | |
| VM2 | Oracle SQL Developer |
Use Case 2 runs on VxFlex Ready Nodes which combine PowerEdge servers with PowerFlex software in scalable, reliable, and easy-to-deploy building blocks for hyper-converged or server SAN architecture, heterogeneous virtualized environments, and high performance databases. VxFlex Ready Nodes provide flexibility in deployment options, quick and easy deployments, enterprise-grade resilience, and massive scalability.
In Use Case 2, we manually perform the following tasks to provision a container-based development and testing environment: