在 K8s 上部署 openYuanrong 集群

在 K8s 上部署 openYuanrong 集群#

本节将介绍如何在 Kubernetes 上部署 openYuanrong 集群。

概述#

openYuanrong 集群由主节点 pod 和从节点 pod 组成。

部署参考用户指南,包含配置项介绍、安全、集群运维等更多内容。

主节点 pod#

主节点 pod 用于管理集群,负责全局函数调度、请求转发等工作。包含的组件有 function master、function manager、function scheduler、frontend、meta service、IAM adaptor 及开源 MinIO、etcd。

从节点 pod#

从节点 pod 用于运行分布式任务,部署的 openYuanrong 组件有 function agent、function proxy、data worker 及 runtime manager。

组件介绍#

  • function master

    负责拓扑管理、全局函数调度、函数实例生命周期管理及 function agent 组件的扩缩容。部署形式为 Deployment,一主多备。

  • function manager

    负责租约申请与回收,清理过期连接信息。它是一个 openYuanrong 系统函数。

  • function scheduler

    负责函数服务的调度。它是一个 openYuanrong 系统函数。

  • frontend

    提供 REST API 用于调用服务、订阅流服务等数据处理。它是一个 openYuanrong 系统函数。

  • meta service

    提供 REST API 用于函数创建、资源池创建等管理操作。部署形式为 Deployment

  • IAM adaptor

    负责多租鉴权与认证。部署形式为 Deployment,一主多备。如果无相关需求或已有认证鉴权平台,可以不部署。

  • etcd

    第三方开源组件,用于存储集群组件注册信息、函数元数据以及实例状态等信息。

  • MinIO

    第三方开源组件,用于存储用户上传的函数代码包,可以不部署。

  • function proxy

    负责消息转发、本地函数调度及实例生命周期管理。部署形式为 DaemonSet

  • function agent

    最小资源单元,负责函数代码包下载和解压、网络安全隔离配置等。部署形式为 Deployment,它与 runtime manager 在一个 pod 内。

  • runtime manager

    负责 cpu、memory 等资源采集和上报、函数进程生命周期管理等。部署形式为 Deployment,它与 function agent 在一个 pod 内。

  • data worker

    提供数据对象的存取等能力。部署形式为 DaemonSet

Pod 资源池#

Pod 资源池用于运行函数实例,原理上基于 K8s Deployment 工作负载实现,包括 function agent 和 function manager 两个容器镜像。根据您实际业务函数需要,可以在部署时配置 Pod 资源池的 CPU、内存、副本数量等信息,也可以通过资源池管理 API 在部署后动态创建。