基于Harvester实现容器与虚拟机的混合应用架构

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 基于Harvester实现 容器与虚拟机的混合应用 张志龙 SUSE 解决方案架构师
2.
3. 张志龙 SUSE 中国北区担任解决方案架构师 擅长K8S容器技术,曾从事基础架构运维、解决方 案设计工作,具备丰富的架构设计和项目实施经 验 。
4. • 容器与虚拟化平台割裂的痛点 • Harvester架构简介 • Harvester功能简介 • 案例:容器与虚拟机混合应用
5. 开发和部署模式的演变 ~ 1980 开发流程 应用架构 部署形式 基础设施 瀑布模式 单体架构 物理机 数据中心 敏捷开发 分层架构 虚拟机 托管 DevOps 微服务架构 容器 云 ~ 1990 ~ 2000 ~ 2010 至今 Plan Monitor Code Operat e Build Deply Test Releas e
6. 数据中心架构的演变 集计算、存储、网络和相关的管理 功能于一体,通过软件定义的方式 提供基础架构。 Virtualization Server Ser Server ver • Server Virtualization Server Server Server Server Server Server Server Server Network Storage • 降低成本: 由通用的服务器代替 专用的计算、存储软硬件设备 • 简化管理:更简单的配置和集中 化的管理 • 弹性伸缩:服务器和存储的扩缩 容更加容易和快速 HCI
7. 虚拟机+容器:用户必然面临的场景 容器需求量呈指数增长 虚拟化技术非常成熟 预计到2024年底,75%的企业使用容器管理软件 (Gartner) 超过90%的企业正在使用服务器虚拟化技术 数据来源:Gartner - Forecast Analysis: Container Management (Software and Services), Worldwide 29 May 2020 数据来源:Spiceworks - The 2020 State of Virtualization Technology https://www.spiceworks.com/marketing/reports/state-of-virtualization
8. 同时构建虚拟化和容器平台带来的问题 Kubernetes Cluster Application Application 企业已有虚拟化/HCI平台,新建一套容器平台,可能存在如下 VM Application Control Plane Node Node Node Node Node Node 01 新建容器平台+已有虚拟化平台 Legacy App 的问题: • 两个平台完全独立,各自为政 • 技术栈完全不同,难以集成 Database etc. VM 02 虚拟化厂商提供容器解决方案 由已有的虚拟化/HCI厂商提供自己的容器解决方案,消除割裂 VM 的问题,可能面临新的问题: • 多为专有的、闭源的方案,投入大 • 用户完全锁定在特定的生态系统/解决方案
9. 容器与虚拟化平台割裂的痛点与需求 01 统一管理 02 统一编排 03 降本增效 各类虚拟化基础设施与Kubernetes采 以应用为中心的DevOps协作方式往往 现有虚拟化/HCI平台并不是为了容器 用不同的技术栈,各自的运维管理工 需要统一的应用编排方式,以便于快 和虚拟机工作负载之间的集成而设计 具和方法不同,避免为构建平台而陷 速的应用更新迭代。虚拟机及容器等 的,在此基础上满足容器环境的解决 入简单的技术栈堆叠中,增加管理复 各种资源对象如果可以通过标准的描 方案是昂贵的,不是开源的,需要额 杂度和不必要的资源投入,需要可靠 述文件进行定义和编排,实现“基础设 外的授权;而且二者的技术栈难以集 的解决方案简化混合环境的管理运 施即代码”。 成,构建敏捷的基础设施变得困难, 维。 阻碍了业务创新、迭代增长的能力。
10. Harvester的应对之道 采用云原生现代技术 基于Kubernetes、Longhorn、KubeVirt等技术实现,提供完整的HCI功 能,虚拟化与容器采用相同的技术栈,保障基础设施跟随技术发展趋势, 为基础设施创新提供可能。 降低基础设施复杂度 提供生产就绪的用户体验,与Rancher集成,提供统一的管理UI和API接 口,多租户的认证和基于角色的访问控制,实现从数据中心到边缘侧的容 器和虚拟机管理能力。 100%开源、开放、可互操作的 超融合基础架构解决方案 https://github.com/harvester/harvester 降级基础设施构建成本 100%开源,没有锁定,不依赖复杂的硬件,减少用户对专有解决方案的 依赖,在不影响功能的前提下,有效的降低同时构建虚拟化平台和容器平 台的成本。
11. 应用场景:虚拟机+K8S混合管理 针对需要从单一管理平面同时管理虚拟机和容器的场景
12. 应用场景:虚拟机管理 针对以虚拟机类型工作负载为主的场景
13. 应用场景:Kubernetes管理 针对需要将基础设施变为Kubernetes的场景
14. 应用场景:混合云管理 使用Rancher统一管理公有云、数据中心、边缘场景的虚拟机和Kubernetes
15. • 容器与虚拟化平台割裂的痛点 • Harvester架构简介 • Harvester功能简介 • 案例:容器与虚拟机混合应用
16. Harvester架构概览 RKE2
17. Harvester架构-操作系统 • 基于OpenSUSE Kernel的定制化OS,支持一键式升级的 不可变基础设施架构 • 当前版本内核为OpenSUSE Leap 15.3 • 基于OCI镜像,支持A/B模式升级 • 内置K8S集群(默认为RKE2) • 自动安装并支持基于Harvester进行升级 • 系统支持Cloud-init样式的配置 • 基于Kubernetes Operators的运维模式
18. Harvester架构-编排引擎(RKE2) 基于Kubernetes,提供分布式的调 度与管理: • 自动恢复 • 弹性伸缩 • 统一的API风格(/api/v1) • 容器化应用管理 • 强大的生态系统
19. Harvester架构-计算(KubeVirt) Kubevirt提供了基于KVM的虚拟化支持,通过 CRD定义Libvirt的API接口配置,kubevirt创 建虚拟机的核心就是:创建了一个特殊的 pod virt-launcher,其中的子进程包括libvirt 和qemu。 (1) (3) (1)client 向 k8s API server 发送创建VMI 命令,K8S API 创建VMI (2)virt-controller监听到VMI创建时,根据 VMI spec生成pod spec文件 (3)k8s根据pod spec 调度并创建pods (4)virt-controller监听到pods创建后,根 据pods的调度node,更新VMI 的nodeName (5)virt-handler监听到VMI nodeName与自 身节点匹配后,与pod内的virt-launcher通信, virt-laucher创建虚拟机,并负责虚拟机生命 周期管理 (3) (5) (2) (4)
20. Harvester架构-存储(Longhorn) Longhorn提供高可用、分布式块存 储,向虚拟机提供磁盘,以及作为 K8S的存储类向工作负载提供存储。 • • • 支持NVMe与SSD类型硬盘 支持ext4与xfs格式文件系统目录 内置Longhorn UI (https://{{HARVESTER_IP}}/dashboard/c/lo cal/longhorn)
21. Harvester架构-网络 • 集群内置管理网络(Canal) • 为虚拟机提供临时的IP(重启后变化) • 支持集群内服务直接的相互通讯和集 群内主机可达 • 多网卡支持与VLAN网络 • 支持多网卡Bond冗余 • 交换机需开启Trunk模式 • 可添加Untagged Vlan(默认PVID 1) • 支持不同Vlan间的网络隔离 • 未来支持每个Vlan使用一个独立物理 网卡
22. • 容器与虚拟化平台割裂的痛点 • Harvester架构简介 • Harvester功能简介 • 案例:容器与虚拟机混合应用
23. Harvester的安装部署 • • • • • • • • • 环境配置与安装 支持ISO、USB、PXE安装 支持在线/离线环境安装 交互式安装过程 组建集群 支持多个节点组建为一个集群 前三个节点自动组成高可用的管 理节点,同时可作为工作节点 其余节点为工作节点 快速横向扩容
24. Harvester功能概览 • 主机管理 • 节点维护、封锁节点、节点磁盘管理 • 虚拟机管理 • CRUD、SSH key注入、Cloud-init • 备份恢复、热迁移、热插拔 • 图形和串口控制台 • 卷管理 • 生命周期管理 • 卷克隆 • 导出为虚拟机 • 镜像管理 • 支持ISO、raw、qcow2格式
25. Harvester功能概览 • • • • • • • • • • • 模板管理 内置iso、raw格式镜像的虚拟机模板 支持linux、windows的虚拟机模板 支持Cloud-init的网络和用户数据模板 备份/恢复管理 在虚拟机上执行备份,支持备份到 nfs、S3 支持恢复到元虚拟机,或恢复为新虚拟机 网络管理 支持使用K8S的管理网络或VLAN网络 支持使用不同VLAN隔离虚拟机 VLAN支持DHCP或手配置
26. Harvester与Rancher集成 • 虚拟化管理 • 利用Rancher管理多个Harvester集群 • 利用Rancher的认证和RBAC实现多租 户管理 • Harvester主机驱动 • 虚拟机模板管理 • 从Rancher中直接在Harvester集群中 创建K8S(rke/rke2/k3s)集群,不用 事先创建虚拟机 • Harvester Cloud Provider • 为K8S提供负载均衡器 • 为K8S提供持久化存储
27. 基于UI和Yaml的资源管理
28. • 容器与虚拟化平台割裂的痛点 • Harvester架构简介 • Harvester功能简介 • 案例:容器与虚拟机混合应用
29. 应用案例:虚拟机和容器统一管理架构
30. 应用案例:整体部署架构 • 3 Master + N Worker • 容器和虚拟机统一管理 • Rancher管理Harvester • Rancher管理Kubernetes • Harvester管理虚拟机 • 混合应用 • 同一套应用部分容器化、部 分虚拟化部署 • 低优先级的应用虚拟化部署 • 遗留无法改造的应用虚拟化 部署
31. 应用案例:服务器及网络配置 • 磁盘配置 • 系统盘Raid1 • Longhorn数据盘直通 • 管理网、业务网分离 • 管理网卡配置IP地址,安装时可选择 多个网卡做bond • 业务网卡不配置IP地址,直接接入交 换机 • 交换机配置 • 管理网配置Access模式(或者Trunk 模式同时配置PVID) • 业务网配置Trunk模式,允许对应 Vlan通过
32. 应用案例:通用虚拟机模板配置 • 实例配置 • CPU、内存计算资源 • 磁盘存储资源 • 操作系统镜像 • Vlan网络资源 • Cloud-init初始化配置 • 配置网络数据 • 配置用户数据 • 安装业务软件
33. 应用案例:K8S节点虚拟机模板配置 • 实例配置 • CPU、内存计算资源 • 磁盘存储资源 • Vlan网络资源 • 操作系统镜像 • Cloud-init初始化配置 • 配置网络数据 • 配置用户数据 • K8S节点配置 • 标签、污点配置 • Docker引擎配置
34. 应用案例:利用主机驱动创建K8S集群 • 配置主机池 • 选择主机模板 • 定义主机角色 • 配置主机数量 • 配置K8S • 选择K8S版本 • 选择网络插件 • 配置K8S组件参数 • 创建K8S • 自动创建节点 • 自动安装docker • 自动安装K8S
35. 用户案例:利用流水线发布容器和虚拟机 • • • • • • • • • 基础设施即代码 所有对象以K8S资源进行编排 利用cloudinit初始化虚拟机及安装运 行软件 发布和更新 使用GitOps理念,将资源发布到git 仓库 Fleet监听仓库的变化,部署资源到 目标K8S集群 Fleet将虚拟机资源部发布到 Harvester Fleet将容器资源发布到K8S 更新K3S集群版本
36. Harvester资源参考 • 源代码及ISO:https://github.com/harvester/harvester • 官方文档:https://docs.harvesterhci.io • 官方公众号: Rancher
37.
38.

inicio - Wiki
Copyright © 2011-2024 iteam. Current version is 2.129.0. UTC+08:00, 2024-07-08 19:17
浙ICP备14020137号-1 $mapa de visitantes$