Kubernetes 1.33: Volume Populator Now Generally Available – What This Means for You!
ayedo Redaktion 2 Minuten Lesezeit

Kubernetes 1.33: Volume Populator Now Generally Available – What This Means for You!

Discover all the new features of the Volume Populator in Kubernetes 1.33 and how they can make your work easier.
kubernetes kubernetes-news storage

Kubernetes Volume Populators are now generally available (GA)! With the AnyVolumeDataSource feature, users can now specify any suitable custom resource as a data source for a PersistentVolumeClaim (PVC).

An example of how to use dataSourceRef in PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc1
spec:
  ...
  dataSourceRef:
    apiGroup: provider.example.com
    kind: Provider
    name: provider1

What’s New

This release includes four significant improvements compared to the Beta.

Populator Pod is Optional

During the Beta phase, Kubernetes contributors identified potential resource leaks when deleting PersistentVolumeClaims (PVC) while volume population was still in progress. These leaks occurred due to limitations in handling finalizers. Before graduating to general availability, the Kubernetes project added support for deleting temporary resources (PVC prime, etc.) when the original PVC is deleted.

To achieve this, three new plugin-based functions were introduced:

  • PopulateFn(): Executes the provider-specific data population logic.
  • PopulateCompleteFn(): Checks if the data population process has successfully completed.
  • PopulateCleanupFn(): Cleans up temporary resources created by provider-specific functions after data population is complete.

An example provider has been added in lib-volume-populator/example.

Mutator Functions for Modifying Kubernetes Resources

For GA, the CSI volume populator controller code received a MutatorConfig, allowing the specification of mutator functions to modify Kubernetes resources. For example, if the PVC prime is not an exact copy of the PVC and you need provider-specific information for the driver, you can include this information in the optional MutatorConfig. This allows you to customize Kubernetes objects within the volume populator.

Flexible Metric Handling for Providers

Our Beta phase revealed a new need: the necessity to aggregate metrics not only from lib-volume-populator but also from other components within the provider code.

To address this, SIG Storage introduced a Provider Metric Manager. This improvement delegates the implementation of metric logic to the provider itself, rather than relying solely on lib-volume-populator. This change offers more flexibility and control over metric collection and aggregation, enabling a more comprehensive view of the provider’s performance.

Cleanup of Temporary Resources

During the Beta phase, we identified potential resource leaks when deleting PersistentVolumeClaims (PVC) during volume population due to limitations in handling finalizers. We improved the populator to support the deletion of temporary resources (PVC prime, etc.) when the original PVC is deleted in this GA release.

How to Use It

To try it out, please follow the steps in the previous Beta blog.

For developers and DevOps teams, this new GA release brings numerous benefits that can significantly ease working with PersistentVolumeClaims. For questions or support, ayedo, your Kubernetes partner, is ready to assist!


Source: Kubernetes Blog

Ähnliche Artikel