Kubernetes Windows存储

2023-11-01 32

一、持久存储

持久存储(Persistent Storage)是指可以长期保存数据的存储方式,与短暂的临时存储(Ephemeral Storage)相对。在容器编排和管理平台中,需要提供持久存储功能来保证在容器和节点之间的数据持久化,以支持应用程序的数据处理和持久性需求。

二、Windows

Windows 有一个分层文件系统驱动程序用来挂载容器层和创建基于 NTFS 的文件系统拷贝。 容器中的所有文件路径仅在该容器的上下文中解析。

1、使用 Docker 时,卷挂载只能是容器中的目录,而不能是单个文件。此限制不适用于 containerd。

2、卷挂载不能将文件或目录映射回宿主文件系统。

3、不支持只读文件系统,因为 Windows 注册表和 SAM 数据库始终需要写访问权限。不过,Windows 支持只读的卷。

4、不支持卷的用户掩码和访问许可,因为宿主与容器之间并不共享 SAM,二者之间不存在映射关系。 所有访问许可都是在容器上下文中解析的。

因此,Windows 节点不支持以下存储功能:

1、卷子路径挂载:只能在 Windows 容器上挂载整个卷;

2、Secret 的子路径挂载;

3、宿主挂载映射;

4、只读的根文件系统(映射的卷仍然支持 readOnly);

5、块设备映射;

6、内存作为存储介质(例如 emptyDir.medium 设置为 Memory);

7、类似 UID/GID、各用户不同的 Linux 文件系统访问许可等文件系统特性;

8、使用 DefaultMode 设置 Secret 权限 (因为该特性依赖 UID/GID);

9、基于 NFS 的存储和卷支持;

10、扩展已挂载卷(resizefs)。

三、实现数据持久

使用 Kubernetes卷可以实现数据持久性和 Pod 卷共享的需求,这对于部署复杂的应用程序非常重要。在管理与特定存储后端或协议相关的持久卷时,需要执行以下操作:

1、对卷的制备(Provisioning):在存储后端上创建新的持久卷,并将其标记为可用。

2、去配(De-provisioning):从存储后端上删除不再需要的持久卷。

3、调整大小:更改已有卷的大小以适应应用程序的需求。

4、挂接到 Kubernetes 节点或从节点上解除挂接:在 Kubernetes 集群中将存储卷附加到节点上,以便它们可以被容器使用。需要注意,Kubernetes 可以在卷上启动多个 Pod,但是每个 Pod 只能附加一个卷。

5、将卷挂载到需要持久数据的 Pod 中的某容器上或从容器上卸载:在 Kubernetes Pod 中启动容器时,需要指定哪些卷应该被挂载到容器中。在容器退出之前,还需要将这些卷卸载。

卷管理组件作为 Kubernetes 卷插件发布。 Windows 支持以下类型的 Kubernetes 卷插件:

1、FlexVolume plugins

(请注意自 1.23 版本起,FlexVolume 已被弃用)

2、CSI Plugins

四、树内(In-Tree)卷插件

以下树内(In-Tree)插件支持 Windows 节点上的持久存储:

1、azureFile

2、gcePersistentDisk

3、vsphereVolume

  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
Kubernetes Windows存储
上一篇: Kubernetes卷数限制
Kubernetes Windows存储
下一篇: Kubernetes ConfigMap