探索FedLCM——解锁FATE部署管理的实用功能

news2024/10/6 18:35:01

FedLCM (Federation Lifecycle Manager,联邦生命周期管理器)是 VMware 在 2022 年贡献到 FATE 社区的开源项目,通过 FedLCM 的部署管理服务和任务管理服务,我们可以用图形化的方式完成包括 FATE 集群的云原生部署、联邦运维以及联邦学习任务创建、数据和模型管理等功能。(点击此链接可查看 FedLCM 的基本介绍和使用指南。)本文将围绕着 FedLCM 的基础设施管理、FATE 集群创建等几个方面的部分重点功能展开介绍。

K8s “基础设施” 的特别用法

1. 省略输入 Kubeconfig

FedLCM 是基于 KubeFATE 来完成 FATE 在 Kuberentes 集群上的部署的,因此在部署 FATE 之前,我们需要将 K8s 集群添加到 FedLCM 系统中,这里一般的方式是我们需要输入 K8s 集群的 Kubeconfig 内容。而如果 FedLCM 本身已经部署在同一个 K8s 集群上,用户可以直接使用 FedLCM 所在的 Kubernetes 集群而无需输入 Kubeconfig 文件。想要这样使用,部署 FedLCM 的时候就需要提供必要的权限,我们可以通过修改 rbac_config.yaml 文件来添加所需的权限,包括 Role 和 RoleBinding 或者 ClusterRoleBinding。如下是绑定 ClusterRole 的 RoleBinding 示例:

#add below settings to enable FedLCM to operate in the specified namespace when adding the cluster as an infra using in-cluster-config


apiVersion: rbac.authorization.k8s.io/v1

kind: RoleBinding

metadata:

name: admin-binding-for-fedlcm

namespace:

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: admin

subjects:

  • kind: ServiceAccount

    name: fedlcm-admin

    namespace: fedlcm

其中 “” 修改为我们想要使用的 namespace 名称即可。添加完权限,我们就可以在添加基础设施的时候,选择 “使用当前服务的 Service Account”,就可以使用到 FedLCM 所在的集群了。
在这里插入图片描述
(无需输入Kubeconfig内容)

2. 仅使用 K8s 某个命名空间权限

在很多生产环境的实际场景中,我们对于所操作的 K8s 集群往往只有单个或某几个命名空间(namespace)的权限,或者即便我们有着整个集群的操作权限,我们也希望部署的 KubeFATE 和 FATE 以及它们的权限也仅存在于某个命名空间。

为了满足在这种权限限制下的 FATE 部署运行的需求,我们可以使用 FedLCM 在添加 K8s 集群作为基础设施的时候,打开界面上的 “限定命名空间” 的开关,并输入 namespace 名称。这样,之后在该基础设施上创建的 KubeFATE 和 FATE 集群以及衍生的权限都会仅存在于这个 namespace。使用这种方式的时候需要注意的是,一个 namespace 下只能部署一个 FATE 集群或者一个 FATE Exchange。如果我们想要部署多个 FATE 集群,就需要多个 namespace 的权限。

与非当前 FedLCM 部署的 FATE 互联

一般情况下,我们通过一个 FedLCM 服务在一个联邦里部署 Exchange 和多个 FATE 集群,集群间通过 Exchange 互联。但是有时候联邦学习是发生在不同组织、单位之间的,在这种情况下一般无法使用一个 FedLCM 服务管理不同组织各自的 K8s 和 FATE 集群。而 FedLCM 也支持这样的形态的联邦,即我们可以通过 FedLCM 部署 FATE 集群,并让其与其他组织的、非当前 FedLCM 部署的 FATE 集群互联,这里其他方的 FATE 集群可以是用另外的 FedLCM 实例部署的,也可以是用 KubeFATE、AnsibleFATE 等方式部署的。

假设有两个组织 Party-9999 和 Party-10000,他们各自部署了自己的 FedLCM,并想要组成联邦。如果 Party-9999 部署了 FATE-Exchange 和自己的 FATE 集群,那么另一方 Party-10000 可以通过 “导入外部的 FATE-Exchange” 的方式来让自己部署的 FATE 集群连接到对方 Party-9999 的 FATE-Exchange 上。然后 Party-9999 再通过 “导入外部的 Cluster” 来让自己的 FATE-Exchange 可以连接到 Party-10000 部署的 FATE 集群。在这个过程中各方的 FedLCM 不会访问和操作对方的 K8s 集群和 FATE 实例,各方只需要提供用于互联的服务的连接地址即可。

在这里插入图片描述

(导入外部的 Exchange,需要提供 Exchange 中 Traffic Server 和 Nginx 的地址)

在这里插入图片描述

(导入外部的 Cluster,需要提供该 FATE 集群中 Pulsar 和 Nginx 的地址)

对接现有的基础引擎

通过 FedLCM 部署的 FATE 集群使用的基础引擎是 Spark、HDFS 和 Pulsar。企业或组织在部署 FATE 时,默认情况下 FedLCM 会部署一套以容器形式运行的基础引擎服务。同时,若组织内已经部署和运行有这些服务,FedLCM 也支持直接让 FATE 系统对接这些资源,而不再另行部署这些组件。这样可以充分利用组织内现有的稳定的服务,更好地管理和分配这些资源,并进一步提升效率。在使用 FedLCM 部署 FATE 的时候,可以在 “选择是否使用已存在的基础引擎服务” 页面中,打开服务名字后面的开关,并配置这些服务的相关信息。这种方式的配置内容和和注意事项(比如如何全部或部分使用已存在的基础服务,对 Spark 集群的要求等),可以参考 FedLCM 项目仓库中相关深入介绍的文档。

在这里插入图片描述
(配置对接外部已存在的基础引擎)

升级 FATE 与 Exchange

过往的文章中介绍了 KubeFATE 对升级 FATE 集群的支持,升级的时候 KubeFATE 首先会停止原来的 FATE 集群,然后使用升级脚本升级 FATE 集群的持久化数据,最后启动新版本的 FATE 集群。

基于 KubeFATE 的这个功能,FedLCM 也支持了对 FATE 集群和 FATE-Exchange 的升级,当然,需要先升级 FedLCM 本身到新版本,然后才能升级它管理的 FATE 到新版本。对于 FedLCM 的升级,如果数据库使用了持久化的卷,那么可以直接使用新版本部署覆盖原来的版本就可以完成升级。如果数据库没有使用持久化的卷,那么需要先备份数据库,然后部署新版本的 FedLCM,再使用备份的数据库恢复数据。

在升级 FedLCM 之后,新的 FedLCM 将会含有新版本 FATE 的部署 chart,如下图所示,如果当前管理的 FATE 和 Exchange 不是最新版本,那么在 FATE 和 Exchange 的集群操作操作页面上就会出现升级选项:

在这里插入图片描述

(第一步:找到并点击待升级的 FATE 集群)

在这里插入图片描述

(第二步:选择目标版本并等待升级完成)

此时我们点击升级,并在升级操作页面选择升级版本即可,之后我们等待升级成功就可以使用新版本的 FATE 了。同样需要注意的是,升级功能需要在部署 FATE 时开启持久化,同时升级前请做好数据备份。

总结

以上就是 FedLCM 在 v0.2 和 v0.3 版本中引入的部分实用功能,除了这些之外,FedLCM 中还有很多其他新增的功能,如自定义镜像仓库和登陆信息、Site Portal 服务支持单独部署、支持纵向联邦学习算法等等,详细的介绍都可以在项目的文档目录中找到。项目地址是 https://github.com/FederatedAI/FedLCM,欢迎大家关注,如果有任何想法或建议,以及代码贡献,也欢迎发起 Issue 和 Pull Request 与开发者交流。后续 FedLCM 会增加更多适用于真实环境的功能支持,同时期待和社区一起进一步探索联邦学习落地实践中的方方面面。

作者团队介绍

本文由 VMware 中国研发中心云原生实验室贡献,该团队属于 VMware CTO 办公室的 AI Labs 部门,负责 AI/ML、云原生等前沿技术领域的创新项目。VMware 作为 FATE TSC Board 成员参与 FATE 开源项目的开发和维护工作,贡献了包括 KubeFATE、FedLCM 等项目以加速 FATE 的运维管理。本文主要作者为该实验室工程师、KubeFATE 和 FedLCM 项目维护者马陈龙和王方驰。

内容来源|公众号:VMware 中国研发中心

有任何疑问,欢迎扫描下方公众号联系我们哦~

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/954200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Acwing791. 高精度加法

Acwing791. 高精度加法 题目描述代码展示 题目描述 代码展示 #include <iostream> #include <vector>using namespace std;vector<int> add(vector<int> &A, vector<int> &B) {if (A.size() < B.size()) return add(B, A);vector<…

扎根嵌入式行业需要什么学历文凭?

在嵌入式行业&#xff0c;学历并不是唯一关键。我本人拥有电子工程学士学位&#xff0c;但嵌入式行业更看重实际技能和经验。视频后方有免费的嵌入式学习资料&#xff0c;入门和进阶内容都涵盖其中。嵌入式行业一般接纳各种学历&#xff0c;从专科到本科到研究生&#xff0c;甚…

C++——vector:resize与reserve的区别,验证写入4GB大数据时相比原生操作的效率提升

resize和reserve的区别 reserve&#xff1a;预留空间&#xff0c;但不实例化元素对象。所以在没有添加新的对象之前&#xff0c;不能引用容器内的元素。而要通过调用push_back或者insert。 resize&#xff1a;改变容器元素的数量&#xff0c;且会实例化对象&#xff08;指定或…

用Python轻松实现Word文档到PDF的批量转换

Word文件&#xff08;Doc、Docx&#xff09;和PDF文件都是使用广泛的文档格式。其中&#xff0c;Word文档格式在编辑内容时优势明显&#xff0c;能够满足各种编辑需求。但想要保证文档的完整和格式的一致&#xff0c;以及使文档有良好的跨平台兼容性&#xff0c;PDF格式则是更好…

点对点传输技术可实现更大的文件传输

互联网的早期主要是基于点对点的系统。这是一个由学者和研究人员构成的网络&#xff0c;连接到这个网络的计算机都是同等的&#xff0c;因为每台计算机都提供了尽可能多的信息。在点对点连接的初期&#xff0c;不需要考虑快速传输大型文件。 随着互联网的发展&#xff0c;客户端…

strlen是碰到第一个字符串结束符‘\0‘就结束,所以长度不包括‘\0‘。定义数组时会默认在字符串后面添加一个‘\0‘

1 字符串数组 定义字符串数组的时候&#xff0c;会默认在字符串后面添加一个’\0’ 2 strlen 在碰到第一个字符串结束符’\0’的时候就结束计算&#xff0c;所以strlen的长度不包括’\0’。 3 实例 #include <stdio.h> #include <string.h>int main(void) {in…

Windows下将nginx等可执行文件添加为服务

Windows下将nginx等可执行文件添加为服务 为什么将可执行文件添加为服务&#xff1f;将可执行文件添加为服务的步骤步骤 1&#xff1a;下载和安装 Nginx步骤 2&#xff1a;添加为服务方法一&#xff1a;使用 Windows 自带的 sc 命令方法二&#xff1a;使用 NSSM&#xff08;Non…

[Go版]算法通关村第十六关青铜——原来滑动窗口如此简单

目录 应用了滑动窗口思想的示例滑动窗口的基本思想两个入门题题目&#xff1a;子数组最大平均数思路分析&#xff1a;计算滑动窗口值总和为 right -left复杂度&#xff1a;时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)Go代码 题目&#xff1a;最长连续递增序列…

unity 物体至视图中心以及新对象创建位置

如果游戏对象不在视野中心或在视野之外&#xff0c; 一种方法是双击Hierarchy中的对象名称 另一种是选中后按F 新建物体时对象的位置不是在坐标原点&#xff0c;而是在当前屏幕的中心

【Android】SDK安装及配置

一、下载SDK Tools https://www.androiddevtools.cn 以windows10系统为例&#xff0c;下载压缩版直接解压即可。 二、安装SDK Tools 解压后双击运行SDK Manager.exe 一般根据默认推荐安装即可。 如果无法打开SDK Manager&#xff0c;可以参考&#xff1a;https://blog.cs…

【Ubuntu】解决ubuntu虚拟机和物理机之间复制粘贴问题(无需桌面工具)

解决Ubuntu虚拟机和物理机之间复制粘贴问题 第一步 先删除原来的vmware tools&#xff08;如果有的话&#xff09; sudo apt-get autoremove open-vm-tools第二步 安装软件包&#xff0c;一般都是用的desktop版本&#xff08;如果是server换一下&#xff09; sudo apt-get …

视频云存储/安防监控视频/智能分析网关V3裸土未覆盖/苫盖算法功能详解

随着经济的发展和建筑工地的增多&#xff0c;对于土堆的裸露情况实时监测和管理变得尤为重要。为了解决这一问题&#xff0c;TSINGSEEE青犀AI智能分析网关V3的裸土未苫盖算法就能很好地解决。 AI算法模型可以实时识别路面/建筑工地中的土堆是否裸露&#xff0c;将工地、道路等…

Erasure-Code(纠删码) 最佳实践

Erasure-Code(纠删码) 最佳实践 1. 纠删码原理 这个星球产生的数据越来越庞大&#xff0c;差不多2010年开始各大互联网公司大都上线了系统以应对数据膨胀带来的成本增长。Erasure-Code&#xff08;纠删码&#xff09;技术应用其中。典型如Google 新一代分布式存储系统colossu…

一种借助MYSQL递归CTE生成所有的组合情况的实现方法

需求说明 有如下表和数据&#xff1a; Nname1户口2查询机构数过多3危险驾驶4多头用信 需要输出name里的所有组合情况&#xff0c;即单个值&#xff0c;两两组合&#xff0c;三个组合、四个组合。结果为2的n次方-1中情况&#xff0c;这里是15。 预期结果为&#xff1a; Com…

DP358 11MHz 增益带宽轨到轨输出运算放大器

DP358、DP321、DP323、DP324是一款低噪声、低压、低 功耗轨到轨输出运放大器&#xff0c;该系列放大器的增益带宽为 11MHz,压摆率为 8.5V/uS,其中DP323 在掉电工作模式下待机电流小于1uA。该系列放大器可以广泛应用于各种电子产品领域。 主要特性: 轨到轨最大输入输出失调电压…

国标GB28181视频监控EasyGBS国标视频平台分享链接不生效的问题解决方案

EasyGBS平台可提供流媒体接入、处理、转发等服务&#xff0c;支持内网、公网的监控设备通过国标GB/T28181协议进行视频监控直播。平台可拓展性强&#xff0c;部署灵活&#xff0c;可实现的视频能力有&#xff1a;实时直播、视频录像、语音对讲、云存储、检索及回放、告警、级联…

【OpenCV入门】第三部分——绘制图形与文字

文章结构 线段的绘制矩形的绘制圆形的绘制多边形的绘制文字的绘制文字的斜体效果文字的垂直镜像效果在图像上绘制文字 动态绘制图形 线段的绘制 使用 line() 方法可绘制长短不一的、粗细各异的、五颜六色的线段。 img cv2.line(img,pt1,pt2,color,thickness)img&#xff1a;…

苹果使用3D打印技术制造Apple Watch Series 9手表外壳

据彭博社的马克・古尔曼报道&#xff0c;苹果公司正在使用 3D 打印技术来制造即将推出的部分Apple Watch Series 9 的外壳。这种制造工艺可以节省传统数控加工所需的大量金属材料&#xff0c;同时缩短生产时间。这与之前苹果分析师郭明錤的说法相吻合。 苹果公司自2021年推出Ai…

【三等奖方案】小样本数据分类任务赛题「痛!太痛了!」团队解题思路

第十届CCF大数据与计算智能大赛&#xff08;2022 CCF BDCI&#xff09;已圆满结束。大赛官方竞赛平台DataFountain&#xff08;简称DF平台&#xff09;将陆续释出各赛题获奖队伍的方案思路。 本方案为【小样本数据分类任务】赛题的三等奖获奖方案&#xff0c;赛题地址&#xf…

亚马逊自动广告如何投放?这些技巧你了解嘛!

现如今&#xff0c;亚马逊店铺为了能够提升产品的转化率&#xff0c;为了增加产品曝光率&#xff0c;会选择投放站内广告&#xff0c;现在大多数的亚马逊店铺都有在站内投放广告&#xff0c;不然的话要想获取到自然流量实在是太难了。 很多没有投放站内广告的亚马逊店铺&#…