个人简介
邹能,资深云原生工程师,专注于云原生生态系统,尤其在维护Kubernetes、CoreDNS、Istio和Containerd等社区方面经验丰富。当前工作重点为Cloud OS、Kubvirt研发及Runtime。
项目背景
- VM现状:集团内部VM存量达万级规模,需求长期存在,但镜像基于较旧的Ubuntu/CentOS,存在安全隐患。当前VM架构基于2014年社区版OpenStack二次开发,近五年维护投入较少。
- 技术趋势:集团主流技术栈基于k8s容器体系,K8s统一管理容器和VM是社区重要方向。
- 发行版切换:2020年CentOS停用后,集团选择使用AlmaLinux9.1,该发行版具有企业级稳定性、开源可控,并支持虚拟化与云原生计算。
- 系统环境:AlmaLinux9.1基于RHEL 9,支持cgroup v2和iptables 1.8.8(nft)。
虚拟机与容器混合管理方案选型
- 需求:服务包括虚拟机和非k8s容器化业务,需解决交付效率、技术栈不统一、非云原生等问题。
- 选型标准:技术方案需在云原生生态中生产就绪且成熟,支持Linux及Windows,并提供完整生命周期管理。
Kubevirt构建交付虚拟机交付平台的痛点与难点
- Kubernetes:K8s 1.28适配、Docker配置兼容优化、VM固定宿主机调度等问题。
- AlmaLinux:Kubevirt部署工艺改造、镜像管理、存储管理、IO隔离等挑战。
- Kubevirt:Systemd版本变动、cgroup v1与v2切换、Linux内核选择等。
Kubevirt构建虚拟机交付平台的最佳实践
- 工艺优化:通过kustomize编排各组件,基于scheduler-plugins实现固定宿主机调度,迁移vm交付中间流程至airflow提升效率。
- 系统数据存储:选择HostDisk模式,将Img格式调整为Qemu增量,通过HostPath模式挂载到协议目录实现数据留存。
- 数据盘扩展:原生HostDisk支持扩展,本地存储模式需调整扩展逻辑实现在线及离线扩盘。
- 数据盘选型:调整vm对象修改目标节点启动即可实现数据迁移。
- IO隔离限制:NRI插件机制优点在于通过plugin方式执行自定义处理,缺点是仅接受增量需求,无法传递Pod update事件信息。