KubeFATE配置文件说明

荒凉一梦 提交于 2020-04-21 04:09:56

*本文作者系VMware云原生实验室工程师 彭路

使用KubeFATEkubernetes上部署FATE集群时,提供了两种部署方式:KubeFATE服务和KubeFATE命令行工具。用户可以选择喜欢的方式来部署FATE集群。

有以下几个配置文件需要注意:rbac-config.yamlkubefate.yamlconfig.yamlcluster.yamlcluster-serving.yaml

rbac-config.yaml

创建KubeFATE所需要的NamespaceServiceAccount。给ServiceAccount绑定角色。

kubefate.yaml

KubeFATE服务部署到kubernetes上。包括两部分:KubeFATE服务和MongoDB数据库。

  1. KubeFATE服务

KubeFATE服务有三部分:DeploymentServiceIngress。下面分别介绍一下配置项。

Deployment

env:

  - name: FATECLOUD_MONGO_URL

    value"mongo:27017"

  - name: FATECLOUD_MONGO_USERNAME

    value"root"

  - name: FATECLOUD_MONGO_PASSWORD

    value"root"

  - name: FATECLOUD_MONGO_DATABASE

    value"KubeFate"

  - name: FATECLOUD_REPO_NAME

    value"kubefate"

  - name: FATECLOUD_REPO_URL

    value"https://federatedai.github.io/KubeFATE/"

  - name: FATECLOUD_USER_USERNAME

    value"admin"

  - name: FATECLOUD_USER_PASSWORD

    value"admin"

  - name: FATECLOUD_SERVER_ADDRESS

    value"0.0.0.0"

  - name: FATECLOUD_SERVER_PORT

    value"8080"

  - name: FATECLOUD_LOG_LEVEL

    value"debug"

配置项

说明

FATECLOUD_MONGO_URL

MongoDB的地址,依赖于MongoDB的配置。

FATECLOUD_MONGO_USERNAME

MongoDB的用户名。

FATECLOUD_MONGO_PASSWORD

MongoDB的密码。

FATECLOUD_MONGO_DATABASE

MongoDB里面的数据库名。

FATECLOUD_REPO_NAME

Helm chart远程仓库名。

FATECLOUD_REPO_URL

Helm chart远程仓库地址。

FATECLOUD_USER_USERNAME

KubeFATE服务默认用户名。

FATECLOUD_USER_PASSWORD

KubeFATE服务默认用户密码。

FATECLOUD_SERVER_ADDRESS

KubeFATE服务地址。

FATECLOUD_SERVER_PORT

KubeFATE服务端口。

FATECLOUD_LOG_LEVEL

KubeFATE服务日志等级。

Service

ports:
  - name: "8080"
    port: 8080
    targetPort: 8080
protocol: TCP
type: ClusterIP

端口和deployment配置的一致,网络类型是ClusterIp

Ingress

rules:

  - host: kubefate.net

    http:

      paths:

        - path: /

          backend:

            serviceName: kubefate

            servicePort: 8080

配置项

说明

host

Ingress的域名,通过这个域名来访问KubeFATE服务。

backend

Ingress的后端就是KubeFATEService

更多Ingress相关内容请参考:

https://kubernetes.io/docs/concepts/services-networking/ingress/

  1. MongoDB数据库

Deployment

env:

  - name: MONGO_INITDB_ROOT_USERNAME

    value: root

  - name: MONGO_INITDB_ROOT_PASSWORD

    value: root

MongoDB初始化的用户名和密码。

config.yaml

user:

  username: admin

  password: admin


serviceurl: kubefate.net

KubeFATE命令行工具调用KubeFATE服务时所用到的配置。ServiceurlKubeFATE服务的Ingress地址,userKubeFATE服务的默认用户名密码。

cluster.yaml

cluster.yaml声明需要部署的FATE群集信息,KubeFATE 命令行工具使用这些信息来部署FATE群集。

配置项

类型

说明

name

纯量

FATE集群的名字。

namespace

纯量

FATE集群在kubernetes上的命名空间。

chartName

纯量

部署FATE集群的helm chart名字。

chartVersion

纯量

部署FATE集群的helm chart版本。

partyId

纯量

FATE集群的Parity ID

modules

数组

需要部署的FATE模块。

proxy

对象

Proxy模块需要的配置。

egg

对象

Egg模块需要的配置。

servingIp

纯量

在线推理集群的IP

servingPort

纯量

在线推理集群的端口。

Egg对象:

配置项

类型

说明

count

纯量

FATE集群egg模块的数量。

processor

纯量

Egg模块的进程数。

Proxy对象:

多方FATE集群支持两种部署模式:通过exchange模块连接和直接连接模式。

Exchange模式:

    每个参与方都与exchange集群连接,exchange有所有参与方的proxy地址。

  • Exchange集群只需要部署proxy模块。在proxy对象的配置里,partyList需要所有参与方的proxy地址,不需要exchange配置项。
  • 参与方FATE集群只需要填写exchange配置项,不需要填写partyList

直连模式:

     所有参与方直接互相连接。

  • 不需要填写exchange配置项。
  • Partylist配置项里面需要有所有参与方的proxy地址。

cluster-serving.yaml

cluster-serving.yaml声明需要部署的FATE在线推理群集信息,KubeFATE 命令行工具使用这些信息来部署FATE在线推理群集。

配置项

类型

说明

name

纯量

在线推理集群的名字。

namespace

纯量

在线推理集群在kubernetes上的命名空间。

chartName

纯量

部署在线推理集群的helm chart名字。

chartVersion

纯量

部署在线推理集群的helm chart版本。

partyId

纯量

在线推理集群的Parity ID

modules

数组

需要部署的模块。

servingProxy

对象

在线推理Proxy模块需要的配置。

ServingServer

对象

在线推理Server模块需要的配置。

servingProxy对象:

ServingServer对象:

在线推理集群的Server模块需要和对应的FATE集群的Fate_flow通信。所以需要配置Fate_flow的信息。

咨询与KubeFATE相关问题可通过kubefate@vmware.com联系我们。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!