内容提要
Kubernetes 1.31引入了名为Image Volume Source的新的alpha功能,允许用户将图像引用作为pod中的卷。该功能使用户能够共享配置文件,打包和分发二进制文件,以及在pod中挂载大型语言模型权重或机器学习模型权重。它还允许安全工程师使用公共图像进行恶意软件扫描并挂载私有恶意软件签名。该功能以只读和非可执行文件的形式挂载。
延伸解读
功能启用与运行时要求
要使用此 alpha 功能,必须在 API 服务器和 kubelet 上启用 ImageVolume 特性门控,并且容器运行时需支持该功能(如 CRI-O v1.31 及以上)。这意味着并非所有集群都能立即使用,需要集群管理员进行配置。此外,卷的拉取策略与容器镜像相同,支持 Always、Never 和 IfNotPresent,但若使用 :latest 标签,pullPolicy 将默认为 Always,否则默认为 IfNotPresent。
挂载行为与限制
OCI 对象以只读(ro)和非可执行(noexec)方式挂载,且不支持子路径挂载(subpath)。卷通过合并清单层挂载到单个目录,与容器镜像类似。如果 Pod 被删除并重新创建,卷会重新解析,从而获取新的远程内容。但若在 Pod 启动时解析或拉取失败,会阻止容器启动并可能增加显著延迟,失败会按正常卷退避重试并在 Pod 状态中报告。
安全与权限细节
拉取密钥的组装方式与容器镜像相同,会查找节点凭证、服务账户镜像拉取密钥和 Pod 规格中的镜像拉取密钥。该功能也适用于启用 AlwaysPullImages 准入插件的情况。此外,spec.securityContext.fsGroupChangePolicy 对此卷类型无效。这些细节有助于安全工程师在挂载私有恶意软件签名等场景中管理权限。
Q&A
Kubernetes 1.31的Image Volume Source功能有什么用途?
该功能允许用户将图像引用作为pod中的卷,支持共享配置文件、打包和分发二进制文件,以及挂载机器学习模型权重。
如何在Kubernetes中启用Image Volume Source功能?
用户需要在API服务器和kubelet上启用ImageVolume功能门以使其生效。
Image Volume Source支持哪些类型的图像?
该功能支持Open Container Initiative (OCI)兼容的图像和工件。
使用Image Volume Source时,卷的拉取策略是什么?
卷的拉取策略与容器图像相同,包括Always、Never和IfNotPresent等选项。
Image Volume Source如何提高安全性?
该功能以只读和非可执行文件的形式挂载,确保安全性,减少潜在的安全风险。
Kubernetes 1.31的Image Volume Source功能对数据科学家有什么帮助?
数据科学家可以挂载大型语言模型权重,避免将其包含在模型服务器容器镜像中,从而提高效率。