The requirement initial from RESTful API Binary Provisioning Agent which provide interface to operator to upload image objects.
There are 3 key functionality for RESTful API Agent:
There are several considerations for the backend storage solution:
We choose MinIO as the backend storage solution which provide Cloud Storage Service for Local Controller.
The implementation for the module is to develop MinIO client plugin based on MinIO Golang API, and integrate with REST API agent, include interface for MinIO client plugin as:
the reliable volume is provided by Ceph cluster with CSI, and which used by MinIO standalone server, MinIO clinet plugin code interact with S3 API to provide object service for REST API agent.
The term persistent memory is used to describe technologies which allow programs to access data as memory, directly byte-addressable, while the contents are non-volatile, preserved across power cycles. It has aspects that are like memory, and aspects that are like storage.
Intel Optane DC Persistent Memory is an innovative technology that delivers a unique combination of affordable large memory capacity and persistence (non-volatility). The persistent memory technology can help boost the performance of data-intensive applications, such as in-memory analytics, databases, content delivery networks, and high performance computing (HPC), as well as deliver consistent service levels at scale with higher virtual machine and container density.
To enable the Optane PM (Persistent Memory) on cloud native application, Intel has develop the PMEM-CSI driver for Kubernetes. Intel PMEM-CSI is a CSI (Container Storage Interface) storage driver for container orchestrators like Kubernetes. It makes local persistent memory (PMEM) available as a filesystem volume to container applications. It can currently utilize non-volatile memory devices that can be controlled via the libndctl utility library.
The PMEM-CSI driver can operate in two different device modes: LVM and direct.
For the Optane PM plugin in ICN, we support LVM mode, which provide CSI plugin and CSI driver, the framework as following chart.
The common usage scenario for Optane PM is mount as cache partition or store metadata for filesystem or clusters (Ceph for example), this work will be design in future release.
Optane PM plugin is part of KUD plugin addons, the bring up process defined in KUD deployment_infra ansible playbook.
Optane PM CSI plugin and driver layout as following chart, we create example application with StorageClass and PVC for dynamic volume provisioning.