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

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 中国研发中心

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

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu入门04——目录与文件

目录 1.显示当前工作目录 2.更改目录 3.创建工作目录 4.删除工作目录 5.移动文件或者文件夹 6.文件夹and文件查看命令 7. 回到根目录,回到上一级 8.删除工作目录 9.查看目录和文件 10.以树状图列出目录内容 11.文件查找 12.在数据库中查找文件或目录 1…

201天稳定运行!太保核心系统升级落地完成里程碑突破

7 月 7 日,2023 全球数字经济大会在京举行,国内首个全险种核心迁移至国产数据库的系统在会上正式亮相。 P17 核心系统,是太平洋保险(集团)股份有限公司(以下称“太平洋保险”)对接旗下子公司全业…

C语言:static关键字的使用

1.static修饰局部变量 这是static关键字使用最多的情况。我们知道局部变量是在程序运行阶段在栈上创建的,但是static修饰的局部变量是在程序编译阶段在代码段(静态区)创建的。所以在static修饰的变量所在函数执行结束后该变量依然存在。 //…

Linux查日志的六种实用方法

工具(比Xshell好用,国产且免费) 先给大家安利一个软件:FinalShell官网 你打印出了日志,可以直接在这个上面搜索高亮 查日志 # 持续打印最新的日志,300行 tail -300f xxx.log# 查某个值 grep "内容&q…

YOLO目标检测——人脸表情识别数据集下载分享

受试者在15个视点和19个照明条件下成像,同时显示一系列面部表情,资源包括PIE照明子集(1154张人脸灰度图,3232)和三个Pose05、Pose07、Pose09子集(分别包括3332张、1629张、859张人脸灰度图,6464…

持续加码,科士达重仓储能!

储能的热度,如温度计一样真实展现在各种数据榜单上:新注册企业的数量,转型跨界的企业,尤其IPO募资扩产规模,更是成为了储能企业竞赛的新标准。 日前,科士达一则新的定向募资预案,吸引了业内广泛…

基于java+springboot+vue的交流互动系统-lw

​ 系统介绍: 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多企业的之中,随之就产生了“交流互动系统”,这样就让交流互动系统更加方便简单。 对于本交流互动系统的设计来说&a…

ceph中PGLog处理流程

正文 struct pg_log_entry_t {ObjectModDesc mod_desc; //用于保存本地回滚的一些信息,用于EC模式下的回滚操作bufferlist snaps; //克隆操作,用于记录当前对象的snap列表hobject_t soid; …

前端list列表自定义图标并设置大小

前端list列表自定义图标并设置大小 一、前端list列表基础知识回顾 前端公有两种列表,一种是有序列表(ol),一种是无序列表(ul),它们的子元素都是(li)。 1.1 有序列表&a…

nacos服务器启动报错集合

报错1 Error creating bean with name ‘user‘: Unsatisfied dependency expressed through field ‘jwtTokenManage 开启鉴权之后,你可以自定义用于生成JWT令牌的密钥,application.properties中的配置信息为: ### Since 1.4.1, worked when…

Matlab 使用经验分享(常用函数介绍;矩阵常见计算)

Matlab 使用经验分享 大家好!最近有很多朋友询问我关于 Matlab 的使用,于是我决定写一篇博客来分享一下我的经验。对于数学和编程爱好者来说,Matlab 是一个非常有用的工具。我自己在数学实验和数学建模竞赛中也经常使用它。那么,…

JavaScript常见的运算符

一、运算符和运算元 1.认识运算符 在小学的时候我们就学习了各种运算符,比如加号 、乘号 *、减号 - 、除号/ 几乎所有的编程语言都有各种各样的运算符(也被称之为操作符,operators) 初次接触这些运算符, 你会感觉种类繁多, 难以记忆.但是并不需要特别…

pdf文件打开后部分文字无法显示

场景:pdf文件在系统内预览正常,但是下载到本地电脑上,使用wps查看,部分标题会消失,只有标题里面的数字还能显示出来 经过一系列排查,发现查看的电脑上缺失了字体,使用wps查看时,缺失…

springCloudAlibaba详解

一、概述 1、简介 Spring Cloud Alibaba,它是由一些阿里巴巴的开源组件和云产品组成的。这个项目的目的是为了给Java开发者带来使用 Spring Boot 和 Spring Cloud 的更多便利。 Spring Cloud Alibaba 致力于 提供微服务开发的一站式解决方案。该项目包含开发分布…

案例分享:西河水库安全监测信息化系统实施方案

一、项目概述1.1项目背景西河水库信息化工作已开展多年,但是由于西河水库监测设备都已经老化或者损坏,现有设备已渐渐不能满足新时期西河水库信息化和现代化发展需求。因此,灌区管理局拟在运用现代信息和通信技术手段感测、分析、整合水库运行…

gif怎么转换成mp4格式视频

gif怎么转换成mp4格式视频?GIF格式是一种广泛应用的公用图像文件格式标准,具有许多优势。它占用的内存较小,可以实现自动循环播放,并且兼容多个平台。然而,GIF格式也存在一些缺点。例如,它无法处理复杂的图…

Hibernate(Spring-Data)3种实体继承创建表方式指南

文章目录 引言1. Hibernate 实体继承概述1.1 继承的概念和作用1.2 Hibernate 中的实体继承方式1.3 基础注解 2. 单表继承策略2.1 概述2.2 表结构设计2.3 实体类映射配置 3. 具体类继承策略3.1 概述3.2 表结构设计3.3 实体类映射配置 4. 映射超类策略(每个类一张表)4.1 概述4.2 …

Wolfram Mathematica 13 for Mac 数学计算工具

Wolfram Mathematica for Mac是一款功能强大、划时代的科学计算软件。它结合了数字和符号计算引擎、图形系统、编程语言、文本系统以及与其他应用程序的高级连接,在许多功能方面处于世界领先地位,截至2009年,它是使用最广泛的数学软件之一。人…

智慧工地源码带开发手册文档 app 数据大屏、硬件对接、萤石云

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR、AR等技术相结合,为工程项目管理提供先进技术手段,构建工地现场智能监控和控制体系,弥补传统方法在监管中的缺陷,最终实现项目对人、机、料、法、环的全方…

计算机毕设 基于机器学习的餐厅销量预测 -大数据 python

文章目录 0 前言餐厅销量预测模型简介2.ARIMA模型介绍2.1自回归模型AR2.2移动平均模型MA2.3自回归移动平均模型ARMA 三、模型识别四、模型检验4.1半稳性检验(1)用途(1)什么是平稳序列?(2)检验平稳性 ◆白噪声检验(纯随机性检验)(1)用途(1)什么是纯随机序列?(2)检验纯随机性 五…