Cloudpods 是一个开源的 Golang 实现的云原生的多云和混合云交融平台。Cloudpods 不仅能够治理本地的虚拟机和物理机资源,还能够治理其余私有云和公有云平台的资源。
Cloudpods 由北京云联壹云技术有限公司主导开发,并于 2019 年 9 月于 Github 开源。Cloudpods 采纳外围开源模式,其商业版本云联壹云企业版(YunionCloud)自 2017 年开始研发,曾经服务了上百家企业客户。
一、重点性能介绍
1、开源之夏
感激 2022 年开源之夏的三位同学为 Cloudpods 3.10 减少了如下性能个性:
PROXMOX 纳管反对。PROXMOX 是一款宽泛应用的开源虚拟化计划,社区始终都在召唤对 PROXMOX 的纳管反对。IxaKylin(Github ID)同学为 Cloudpods 减少了对 PVE 的纳管反对。
纳管 1.20 以上高版本的 k8s 集群。k8s 始终在飞速发展,从 1.20 开始 API 和之前版本无奈兼容。CoderLee-Y(Github ID)同学为 Cloudpods 反对了 1.20 以上高版本 k8s 的纳管能力。
将 dns 记录导出为 bind 的 zone 格式文件。Bind 的 zone 文件是 DNS 记录的事实标准文件格式,将纳管的 DNS 记录导出为 zone 文件格式,进一步丰盛了云管 DNS 纳管的性能个性。ykdh(Github ID)同学为 Cloudpods 实现了导出 DNS 记录的 zone 文件格式的性能。
2、公有云性能优化
3.10 之前始终存在热拔插或热扩容的虚拟机无奈热迁徙的问题,这是因为虚拟机的设施在运行态进行了更改,导致迁徙的指标机虚构设施配置无奈跟待迁徙虚拟机完全一致。为了解决这个问题,咱们在 3.10 改写了 QEMU 虚拟机设施治理的代码,反对基于 QEMU 的 QOM 设施树重建 QEMU 虚拟机的外设配置,最终实现了对热扩容或热拔插设施后的虚拟机也能失常热迁徙。同时也依据客户和社区反馈,迭代改良了宕机主动迁徙,主备机,不停机更换磁盘存储,VMWare 虚拟机迁徙 KVM 等高可用高级个性。另外还反对了 SR-IOV 网卡,默认启用大页内存,设置磁盘启动程序等新个性性能。使得虚拟化性能个性更加丰盛,古代和实用。
3.10 开始,负载平衡开始反对 VPC 网络,但因为这个变动,lbagent 须要依赖部署了 openvswitch 的内核,以及相干 ovn 组件和配置,原来通过 ansible 部署的形式不再实用(因为须要替换内核重启主机等)。因而,从 3.10 开始,lbagent 的部署改为采纳 ocboot 部署形式。
3、云管性能优化
3.1 cloudmux
3.10 开始将云管底层对接云平台的代码抽离进去,放入一个独自的仓库,命名为:cloudmux。至此,Cloudpods 我的项目代码由三个次要仓库形成:cloudmux, cloudpods 和 kubecomps。cloudmux 定位为一个 in-process 的多云适配 golang 库,反对了 VMware,OpenStack,Proxmox VE 等支流公有云,阿里云,腾讯云,华为云,天翼云,AWS,Azure,GCP 等支流私有云的次要云产品。Cloudpods 基于 cloudmux 实现多云的资源适配,构建一个多租户自服务的云平台,只是这个云平台底层的云资源能够蕴含其余云平台的资源,对外提供一套对立的 API。Kubcomps 则基于 Cloudpods 的对立 API 实现对部署在多云上的 k8s 集群的治理。
3.2 更轻量的云管部署形式
Cloudpods 一大特点是部署于 kubernetes 之上,整个部署过程须要先部署一套独立部署的 k8s,再部署平台。社区一直有人反馈比较复杂简短,容易出错,咱们也反思是否能够有更轻量的部署形式。咱们认为之所以采纳独立部署 k8s 的形式是因为内置公有云的性能对底层有依赖,须要对平台有独占性,因而须要用 ocboot 部署一套独立的 Kubernets,并且装置依赖的内核和系统软件 rpm。然而如果用户仅应用云管的性能,则对底层的 kubernets 平台和操作系统都没有太多依赖,齐全能够作为一个 Application 部署在 K8s 中,和其余利用共存。因而,咱们首先提供了基于 Helm 部署 Cloudpods 云管性能的形式,并且曾经被社区应用。但这种形式要求用户必须先有一套 k8s 集群。随着 3.10 的推出,咱们新增一种基于 Docker compose 的云管部署形式,用户只须要下载 docker compose 的 yaml 文件,花十多分钟下载镜像后就能疾速拉起一个单机版的 Cloudpods 云管服务。置信这可能给应用用户带来更加轻量便捷的部署体验。
3.3 其余云管性能迭代
除了以上更新,3.10 版本在多云治理不便方面持续开疆拓土,本次新对接华为公有云 HCS、浪潮超交融平台、华三 CloudOS 平台及 Proxmox VE 平台,在资源类型同步扩大,新反对阿里表格存储资源。同时多云对资源我的项目归属继续迭代,反对基于资源或云上我的项目标签动静归属资源我的项目,全面满足不同企业对资源分类的个性化需要。
4、企业版性能迭代
4.1 报表性能
客户须要每周 / 月统计不同资源的应用状况报表,如各虚拟机的 CPU/ 内存 / 存储配置及均匀使用率,或者各项目标虚拟机总数,CPU/ 内存 / 存储的总量及均匀应用状况,更高层级的各租户资源数量统计及均匀使用率状况等需要,之前依附人工,费时费力,每次做报表都消耗较长时间,而且后果也不肯定精确,没有可比照状况。
云联壹云企业版 3.10 新增报表功能模块,可自定义报表字段,用户可依据本身需要定义报表模版。在配置报表生成频率后,定期生成报表。反对独自查看同一条数据所有时间段的报表信息,不便进行横向对接,反对整体报表导出,可本地进行数据分析。同时反对报表订阅,可定期将报表内容通过邮箱发送给指定人。报表生成更快、更全面、更精确。
4.2 公共费用摊派
客户在应用私有云时,有时候会通过云上的我的项目进行资源隔离,从而进行账单宰割,然而在理论应用中发现有局部资源无奈归属给具体我的项目,也无奈通过标签标记。如短信服务,流量等费用。然而这些费用在摊派时无奈精确归类,应用账单解决不太通顺。局部客户因为这些费用是属于公共应用资源,所以心愿将这些费用进行均摊,另外有局部用户心愿将这些费用摊派给局部我的项目,因为只有局部我的项目应用这些服务,无论何种场景,客户都心愿能够在平台设置一个摊派策略,在账单同步后,能够依照账单摊派策略进行费用宰割,最终生成一份与理论逻辑统一的账单。缩小人工参加。
云联壹云企业版 3.10 新增账单摊派性能,用户可自定义设置摊派策略,能够抉择要摊派的资源类型,反对均摊给所有我的项目或指定我的项目,在策略设置后,进行账单账单摊派工作后,即可依照策略对未归集我的项目下的账单进行二次归类,最终会从新生成一份新的账单。反对用户进行切换,能够查看摊派后的账单状况,也能够查看摊派前的账单,不便用户进行比照及账单核查。保障账单摊派精确、高效、便捷。
4.3 一键巡检和定期主动备份
为了进步平台运行的稳定性,3.10 企业版减少了一键巡检的性能,管理员能够自助地生成平台巡检报告,清晰获取平台运行的健康状况。同时,为了保障平台数据安全,在装置后,会主动开启定期每日数据库备份,循环保留最近 10 天的备份,在零碎数据失落的状况下,能够应用这些备份复原平台。
二、具体性能清单
1、新性能
【报表】新增报表模块(企业版)
【多云】华为 HCS 平台对接(企业版)
【多云】浪潮超交融平台对接(企业版)
【多云】华三 CloudOS 平台对接(企业版)
【多云】Proxmox 平台对接
【主机】KVM 平台大页内存虚拟机反对
【主机】KVM 宿主机 CPU 预留反对
【主机】KVM 反对 SR-IOV 网卡透传
【主机】host desc 结构化
【主机】QEMU pcie 热插拔
【主机】GPU 卡反对热操作
【主机】KVM 主机反对指定启动程序
【主机】KVM 主机新建反对装置监控 Agent
【主机】KVM 主机反对更换磁盘块存储
【计费】反对包年包月 / 预留实例费用均摊(企业版)
【计费】反对未归属我的项目费用摊派(企业版)
【计费】多维度分子减少主账号和子账号剖析(企业版)
【零碎】反对一键巡检同步生成巡检报告(企业版)
【多云】腾讯云 CDN 反对新建
【多云】vmware 平台迁徙反对
【多云】阿里云表格存储对接
【多云】云账号反对绑定基于标签归属的同步策略
【容器】麒麟容器部署反对
【容器】纳管反对高版本容器集群反对
【部署】反对 docker compose 部署 CMP
2、性能优化
【面板】数字图款式及使用率面板款式优化(企业版)
【主机】主备机优化
【主机】宕机主动迁徙优化
【主机】KVM 虚拟机反对指定启动系统盘
【主机】KVM 虚拟机减少 power_status 的字段
【零碎】全局搜寻减少云上 ID
【监控】告警承受人反对指定角色告警
【多云】Cloudpods 纳管监控数据改良
【认证】明码过期用户反对登录批改明码
【认证】对接华为云短信服务
【认证】权限设置更细化,反对资源操作粒度设置(企业版)
点击浏览原文
GitHub:https://github.com/yunionio/cloudpods