- raw block volumes: applications can use volumes provisioned by PMEM-CSI as raw block devices. The advantage is that they have full control over how a filesystem is created on them.
- ephemeral inline volumes: ephemeral inline volumes are specified inside the pod spec and get created and destroyed together with the pod. This is ideal for local, non-persistent scratch space.
- PMEM-CSI in direct mode now allows admins to make changes (like creating new namespaces) while the driver is running.
- The sub-directories in
deploy/kubernetes-*can be used as base for
- Source code was converted to Go modules, so it now also builds outside of
- Support for Kubernetes 1.13 was removed because its support for CSI is too limited.
- Enhanced documentation.
- Extended testing.
- "Sector" namespace support is likely to be removed unless a need for it is found.
- Raw block volumes are based on an "fsdax" namespace and thus only support dax through a filesystem. This is a technical limitation of PMEM and Kubernetes. A "devdax" namespace would support dax directly, but cannot be passed into a pod as a storage volume because it is a character device and Kubernetes expects a block device.
- Pod scheduling in Kubernetes is unaware of how much free PMEM exists on a node and thus a pod using an ephemeral inline volume or a persistent volume with
WaitForFirstConsumevolume binding mode may end up on a node where the volume cannot be created. In that case it is stuck until enough free PMEM becomes available.