本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。

Kubernetes 1.29:PersistentVolumes 的单 Pod 访问模式进阶为稳定版

随着 Kubernetes v1.29 的发布,ReadWriteOncePod 卷访问模式已正式发布:它已成为 Kubernetes 稳定版 API 的一部分。在这篇博客文章中,我将详细介绍这种访问模式及其功能。

什么是 ReadWriteOncePod

ReadWriteOncePod 是 Kubernetes v1.22 中引入的 PersistentVolumes (PVs) 和 PersistentVolumeClaims (PVCs) 的一种访问模式。此访问模式允许您将卷访问限制为集群中的单个 Pod,确保一次只有一个 Pod 可以写入卷。这对于需要单写入器访问存储的有状态工作负载特别有用。

有关访问模式以及 ReadWriteOncePod 工作原理的更多上下文,请阅读 2021 年的《PersistentVolumes 引入单 Pod 访问模式》一文中的什么是访问模式以及它们为何重要?

如何开始使用 ReadWriteOncePod

ReadWriteOncePod 卷访问模式在 Kubernetes v1.27 及更高版本中默认可用。在 Kubernetes v1.29 及更高版本中,Kubernetes API 始终识别此访问模式。

请注意,ReadWriteOncePod 仅支持 CSI 卷,并且在使用此功能之前,您需要将以下 CSI 边车容器 更新到这些或更高版本。

要开始使用 ReadWriteOncePod,您需要创建一个具有 ReadWriteOncePod 访问模式的 PVC。

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: single-writer-only
spec:
  accessModes:
  - ReadWriteOncePod # Allows only a single pod to access single-writer-only.
  resources:
    requests:
      storage: 1Gi

如果您的存储插件支持动态配置,那么将创建新的 PersistentVolumes 并应用 ReadWriteOncePod 访问模式。

阅读迁移现有 PersistentVolumes以了解将现有卷迁移到使用 ReadWriteOncePod 的详细信息。

我如何了解更多信息?

有关 ReadWriteOncePod 访问模式的更多详细信息和 CSI 规范更改的动机,请参阅博客文章 alphabetaKEP-2485

我如何参与?

Kubernetes #csi Slack 频道以及任何标准的SIG Storage 通信渠道都是联系 SIG Storage 和 CSI 团队的好方法。

特别感谢以下人士,他们的深思熟虑的审查和反馈帮助塑造了此功能

  • Abdullah Gharaibeh (ahg-g)
  • Aldo Culquicondor (alculquicondor)
  • Antonio Ojea (aojea)
  • David Eads (deads2k)
  • Jan Šafránek (jsafrane)
  • Joe Betz (jpbetz)
  • Kante Yin (kerthcet)
  • Michelle Au (msau42)
  • Tim Bannister (sftim)
  • Xing Yang (xing-yang)

如果您有兴趣参与 CSI 或 Kubernetes 存储系统的任何部分的设计和开发,请加入 Kubernetes 存储特别兴趣小组 (SIG)。我们正在迅速发展,并随时欢迎新的贡献者。