1、深入探讨Windows CSI driver HostProcess容器Andy Zhang,Principal Software Engineer MicrosoftIntroAndy Zhang(张夏张夏)存储项目负责人AKS(Azure Kubernetes Service)组多个k8s开源项目维护者Azure Disk/File/Blob CSI driversSMB,NFS under volume provisionerAzure cloud providercsi-proxyGithub:andyzhangxEmail:Slack:andyzhang kubernetes3议程介
2、绍Windows csi-proxy 项目背景HostProcess 容器的介绍将 Windows 上的 CSI 驱动从 csi-proxy 依赖迁移到HostProcess 容器部署关键的学习和注意事项云服务提供商的迁移进展结论和未来工作4介绍大多数 Windows 节点上的 CSI 驱动依赖于 csi-proxy 进程csi-proxy 代表 CSI 驱动容器执行特权操作Windows HostProcess 容器在 k8s 1.23 中引入,在 k8s 1.26 中稳定作为具有特权的常规进程直接在 Windows 主机上运行切换到 HostProcess 容器部署将使 Windows C
3、SI 驱动的开发和部署更加容易5Windows csi-proxy 项目背景内置存储驱动程序Kubelet 在 Linux 和 Windows 节点上处理内置存储驱动程序的特权操作例如,磁盘格式化、挂载/卸载等操作CSI 驱动程序在 k8s 1.13 中引入内置驱动程序的移除和迁移到 CSI 驱动程序节点插件容器需要特权权限才能执行存储操作在 Kubernetes v1.23 之前,特权 pod 仅支持 Linux 节点,而不支持 Windows 节点6CSI 驱动程序在Linux节点上与k8s的交互方式7format/mount volumeCSI驱动程序在Windows节点上使用csi-p
4、roxy与k8s的交互方式参考:https:/ 容器的介绍HostProcess 容器在 k8s v1.23 中引入,在 v1.26 中正式发布作为具有特权的常规进程直接在主机上运行相对于Windows 节点上的csi-proxy,HostProcess 容器的优势简化开发和部署流程简化故障排除过程镜像大小更小910HostProcesscontainer(privileged container)process isolated containerHostProcess 相对于csi-proxy的优势使用 csi-proxy 的开发和部署流程1.在 csi-proxy 服务器和客户端中添加新
5、的 API2.发布新的 csi-proxy 版本3.在 CSI 驱动程序中采用新的 csi-proxy 版本4.将新的 csi-proxy 版本部署到 Windows 节点上5.在所有 Windows 节点上升级新的 CSI 驱动程序版本痛点:在某些 Kubernetes 集群中,不支持就地替换,需要升级所有节点的整个镜像新的 CSI 驱动程序版本必须与所有最近的 csi-proxy 版本兼容11HostProcess 相对于csi-proxy的优势使用 csi-proxy 进行故障排除的痛点用户需要登录到节点,确保 csi-proxy 服务正常运行,然后在故障排除过程中额外获取 csi-pr
6、oxy 日志12HostProcess 相对于csi-proxy的优势使用 HostProcess CSI 驱动程序的开发和部署流程1.在 CSI 驱动程序中添加新功能(无需新的 API)2.发布新的 CSI 驱动程序版本3.在所有 Windows 节点上部署新的 CSI 驱动程序版本13csi-proxy 项目现状14https:/ 容器限制需要 Kubernetes 1.23+需要 containerd 1.6+默认情况下,Host Process容器只提供有限的主机用户帐户CSI驱动程序使用本地系统帐户HostProcess容器不支持文件系统和Hy