We are excited to announce that Oracle Cloud Infrastructure Kubernetes Engine (OKE) Virtual Nodes now support Kubernetes persistent volumes backed by Oracle Cloud Infrastructure File Storage service (OCI FSS). 

Virtual Nodes provide a serverless way to run Kubernetes applications without the operational overhead of managing worker nodes. Until now, workloads running on Virtual Nodes relied on ephemeral storage, limiting their suitability for applications that require durable or shared file storage. 

With OCI FSS-backed persistent volumes, applications running on Virtual Nodes can retain data across pod restarts and replacements and share files across multiple pods, independently of the pod lifecycle. 

This opens Virtual Nodes to a broader range of workload patterns, including: 

  • Content and application services requiring durable or shared files 
  • CI/CD and build pipelines using shared workspaces, artifacts, or intermediate outputs 
  • Data-processing workloads sharing files across workers or processing stages 
  • AI and machine-learning workflows using datasets, checkpoints, model artifacts, or intermediate results 
  • Shared application workspaces requiring concurrent file access across multiple pods 
  • Suitable stateful workloads requiring persistent file storage without customer-managed worker nodes 

Persistent storage without managing worker nodes 

Kubernetes pods are ephemeral by design. They can be restarted, rescheduled, or replaced as applications scale, are updated, or recover from failures. Data stored only in a pod’s local file system typically disappears with the pod. 

Kubernetes Persistent Volumes separate application data from the lifecycle of individual pods. Applications request storage through a PersistentVolumeClaim, or PVC, and Kubernetes makes that storage available to the pod through a mounted volume. 

Virtual Nodes now extend this familiar Kubernetes storage model to OCI FSS. Customers can use durable, scalable, shared file storage while continuing to benefit from Virtual Nodes’ serverless operating model. 

This means customers can: 

  • Retain application data across pod restarts and replacements 
  • Share files across multiple pods using ReadWriteMany volumes 
  • Run suitable stateful workloads on Virtual Nodes 
  • Use standard Kubernetes storage resources, including PersistentVolumes and PersistentVolumeClaims 
  • Choose dynamic or static provisioning based on application requirements 
  • Avoid provisioning, patching, scaling, and maintaining worker nodes 

OCI FSS provides a distributed, enterprise-grade network file system with a familiar filesystem interface and POSIX semantics. It is well suited to workloads that need shared file access without requiring applications to adopt a specialized storage API. 

A consistent Kubernetes experience 

OKE clusters use the OCI Container Storage Interface, or CSI plugin to provision and manage storage resources. 

The customer experience for using OCI FSS remains consistent across OKE managed nodes and Virtual Nodes. Customers define a StorageClass and create a PVC using the standard Kubernetes API. The volume can be provisioned in either of two ways: 

  • Dynamic provisioning: The OCI FSS CSI driver creates the required filesystem resources based on the StorageClass and PVC. 
  • Static provisioning: A cluster administrator creates a PersistentVolume that references existing OCI FSS resources. 

Applications then reference the PVC from the pod specification: 

apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
  name: application-data 
spec: 
  accessModes: 
    - ReadWriteMany 
  storageClassName: oci-fss 
  resources: 
    requests: 
      storage: 50Gi 

The claim can be mounted into a container like any other Kubernetes volume: 

apiVersion: v1
kind: Pod
metadata:
name: fss-application
spec:
containers:
- name: application
image: busybox
command: ["sleep", "3600"]
volumeMounts:
- name: persistent-storage
mountPath: /data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: application-data

OKE Virtual Nodes support the ReadWriteMany, or RWX, access mode for OCI FSS persistent volumes. RWX allows a volume to be mounted as read-write by multiple pods. Customers can use mountPath to select where the volume appears inside a container. They can also use subPath or subPathExpr to mount a specific directory from the filesystem, allowing multiple applications or containers in the same AD to share the same volume while using separate directories. 

The existing OCI FSS CSI controller continues to handle volume provisioning and deletion. This integration preserves the Kubernetes-native experience while abstracting away the underlying compute infrastructure. 

Build Stateful Applications on OKE Virtual Nodes 

Persistent storage with OCI FSS removes an important limitation for applications running on OKE Virtual Nodes. 

Customers can now combine: 

  • Serverless Kubernetes compute with OKE Virtual Nodes 
  • Durable, shared filesystem storage with OCI FSS 
  • Standard Kubernetes storage APIs that developers already know 

That combination expands the range of applications that can benefit from Virtual Nodes while preserving the operational simplicity that makes the serverless model valuable. 

If persistent or shared filesystem storage has been the reason one of your workloads could not run on Virtual Nodes, now is the time to revisit that architecture. 

Useful links