cluster.yaml
declares information about the FATE cluster to be deployed, which KubeFATE CLI uses to deploy the FATE cluster.
Name | Type | Description |
---|---|---|
* name | scalars | FATE cluster name. |
* namespace | scalars | Kubernetes namespace for FATE cluster. |
* chartName | scalars | FATE chart name. (fate/fate-serving) |
* chartVersion | scalars | FATE chart corresponding version. |
* partyId | scalars | FATE cluster party id. |
registry | scalars | Other fate images sources. |
pullPolicy | scalars | kubernetes images pull policy |
imagePullSecrets | sequences | The imagePullSecrets names for all deployments |
* persistence | bool | mysql and nodemanager data persistence. |
istio.enable | bool | enable istio |
podSecurityPolicy.enabled | bool | if true , create & use Pod Security Policy resources |
ingressClassName | scalars | The Ingress class name, such as "nginx". |
* modules | sequences | Modules to be deployed in the FATE cluster. |
backend | set(eggroll,spark) | Configure cluster computing engine( eggroll or spark) |
ingress | mappings | Custom domain of FATE UI component |
rollsite | mappings | Configuration of FATE cluster rollsite module. |
nodemanager | mappings | Configuration of FATE cluster nodemanager module. |
python | mappings | Configuration of FATE cluster python module. |
fateboard | mappings | Configuration of FATE cluster fateboard module. |
client | mappings | Configuration of FATE cluster client module. |
mysql | mappings | Configuration of FATE cluster mysql module.If you use your own redis, please delete this item. |
externalMysqlIp | scalars | Access your own MySQL. |
externalMysqlPort | scalars | Access your own MySQL. |
externalMysqlDatabase | scalars | Access your own MySQL. |
externalMysqlUser | scalars | Access your own MySQL. |
externalMysqlPassword | scalars | Access your own MySQL. |
servingIp | scalars | Serving cluster connected to fate. |
servingPort | scalars | Serving cluster connected to fate. |
spark | mappings | Configuration of FATE cluster spark module. |
hdfs | mappings | Configuration of FATE cluster hdfs module. |
nginx | mappings | Configuration of FATE cluster nginx module. |
rabbitmq | mappings | Configuration of FATE cluster rabbitmq module. |
-
rollsite
-
clustermanager
-
nodemanager
-
mysql
-
python
-
fateboard
-
client
-
spark
-
hdfs
-
nginx
-
rabbitmq
Name | Type | Description |
---|---|---|
fateboard |
mappings | Configuration of Fateboard UI domain |
fateboard.annotations |
mappings | The annotations used commonly for ingresses |
fateboard.hosts |
sequences | Set hosts list of ingress record |
fateboard.tls |
sequences | Set this to enable TLS on the ingress record |
client |
mappings | Configuration of Notebook UI domain |
client.annotations |
mappings | The annotations used commonly for ingresses |
client.hosts |
sequencesmappings | Set hosts list of ingress recordConfiguration of Spark UI domain |
client.tls |
sequences | Set this to enable TLS on the ingress record |
spark |
mappings | Configuration of spark UI domain |
rabbitmq |
mappings | Configuration of Rabbitmq UI domain |
It is used to declare the rollsite
module in the FATE cluster to be deployed.
Name | subitem | Type | Description |
---|---|---|---|
type | scalars | Kubernetes ServiceTypes, default is NodePort. | |
nodePort | scalars | The port used by proxy module's kubernetes service, default range: 30000-32767. |
|
partyList | sequences | If this FATE cluster is exchange cluster, partyList is all party's sequences of all parties proxy address. If this FATE cluster is one of participants, delete this configuration item. | |
partyList | partyId | scalars | Participant FATE cluster party ID. |
partyList | partyIp | scalars | Participant FATE cluster IP. |
partyList | partyPort | scalars | Participant FATE cluster port. |
exchange | mappings | FATE cluster exchange module's ip and port. |
|
exchange | ip | mappings | FATE cluster exchange module's ip. . |
exchange | port | mappings | FATE cluster exchange module's port. |
nodeSelector | mappings | kubernetes nodeSelector. | |
polling | rollsite support polling | ||
polling | enabled | enable polling | |
polling | type | polling type (server/client) | |
polling | server | if type choose client, you need a polling server. | |
polling | clientList | if type choose server, this rollsite serve for clientList. | |
polling | concurrency | if type choose server, polling client concurrency. |
FATE cluster has two deployment modes: with exchange and without exchange.
Every party connected to the exchange
, which has the proxy addresses of all parties.
- For
exchange
cluster, only need to deployproxy
modules. Inproxy
configuration, no needexchange
item, need to has the proxy addresses of all parties inpartylist
. - For other FATE clusters, need to fill in the exchange ip and port. Can delete
partylist
configuration item.
The parties are directly connected.
- No need to fill in the
exchange
ip and port. partyList
needs the addresses of all other FATE clusters proxy.
Name | SubItem | Type | Description |
---|---|---|---|
count | scalars | Number of nodes deployed nodemanager. | |
session-Processors-PerNode | scalars | Configuration of FATE cluster nodemanager module. |
|
list | sequences | List of nodemanager nodes. | |
list | name | scalars | nodemanager node name. |
list | nodeSelector | mappings | kubernetes nodeSelector. |
list | session-Processors-PerNode | scalars | Configuration of FATE cluster nodemanager module. |
list | subPath | scalars | Path of data persistence, specify the "subPath" if the PVC is shared with other components. |
list | existingClaim | scalars | Use the existing PVC which must be created manually before bound. |
list | storageClass | scalars | Specify the "storageClass" used to provision the volume. Or the default. StorageClass will be used(the default). Set it to "-" to disable dynamic provisioning. |
list | accessMode | scalars | Kubernetes Persistent Volume Access Modes: ReadWriteOnce ReadOnlyMany ReadWriteMany. |
list | size | scalars | Match the volume size of PVC. |
Name | Type | Description |
---|---|---|
type | scalars | Kubernetes ServiceTypes, default is NodePort. Other modules can connect to the fateflow |
nodePort | scalars | The port used by proxy module's kubernetes service, default range: 30000-32767. |
nodeSelector | mappings | kubernetes nodeSelector. |
enabledNN | bool | If or not neural network workflow is required |
spark | mappings | If you use your own spark, modify the configuration |
spark.cores_per_node | scalars | configuration of FATE fateflow module |
spark.nodes | scalars | configuration of FATE fateflow module |
spark.existingSpark | scalars | If you need to use the existing spark , you can set this configuration |
spark.driverHost | scalars | call back IP of spark executor |
spark.driverHostType | scalars | service type of spark driver |
spark.portMaxRetries | scalars | spark driver's configuration |
spark.driverStartPort | scalars | spark driver start port |
spark.blockManagerStartPort | scalars | spark driver blockManager start port |
spark.pysparkPython | scalars | spark worker node python PATH |
hdfs | mappings | If you use the existing hdfs, you can set this configuration |
rabbitmq | mappings | If you use the existing rabbitmq, you can set this configuration |
nginx | mappings | If you use the existing nginx, you can set this configuration |
Configuration of kubernetes deployment fateboard.
Name | Type | Description |
---|---|---|
type | mappings | Kubernetes nodeSelector. |
username | scalars | Login username of fateboard |
password | scalars | Login password of fateboard |
Configuration of kubernetes deployment client.
Name | Type | Description |
---|---|---|
nodeSelector | mappings | kubernetes nodeSelector. |
subPath | scalars | Path of data persistence, specify the "subPath" if the PVC is shared with other components. |
existingClaim | scalars | Use the existing PVC which must be created manually before bound. |
storageClass | scalars | Specify the "storageClass" used to provision the volume. Or the default. StorageClass will be used(the default). Set it to "-" to disable dynamic provisioning. |
accessMode | scalars | Kubernetes Persistent Volume Access Modes: ReadWriteOnce ReadOnlyMany ReadWriteMany. |
size | scalars | Match the volume size of PVC. |
Configuration of kubernetes deployment mysql.
Name | Type | Description |
---|---|---|
nodeSelector | mappings | kubernetes nodeSelector. |
ip | scalars | Allow other modules to connect to MySQL. |
port | scalars | Mysql port. |
database | scalars | Database name of MySQL. |
user | scalars | User of MySQL. |
password | scalars | Password of MySQL. |
subPath | scalars | Path of data persistence, specify the "subPath" if the PVC is shared with other components. |
existingClaim | scalars | Use the existing PVC which must be created manually before bound. |
storageClass | scalars | Specify the "storageClass" used to provision the volume. Or the default. StorageClass will be used(the default). Set it to "-" to disable dynamic provisioning. |
accessMode | scalars | Kubernetes Persistent Volume Access Modes: ReadWriteOnce ReadOnlyMany ReadWriteMany. |
size | scalars | Match the volume size of PVC. |
Configuration of kubernetes deployment spark.
Name | SubItem | Type | Description |
---|---|---|---|
master/ worker |
Image | scalars | Image of spark components |
ImageTag | scalars | ImageTag of spark components | |
replicas | scalars | Number of copies of pod | |
resources | mappings | resources of Pod | |
nodeSelector | mappings | kubernetes nodeSelector. | |
type | scalars | Kubernetes ServiceTypes. |
Configuration of kubernetes deployment hdfs.
Name | SubItem | Type | Description |
---|---|---|---|
namenode/ datanode |
nodeSelector | mappings | kubernetes nodeSelector. |
type | scalars | Kubernetes ServiceTypes, default is ClusterIp . |
Configuration of kubernetes deployment hdfs.
Name | Type | Description |
---|---|---|
nodeSelector | mappings | kubernetes nodeSelector. |
type | scalars | Kubernetes ServiceTypes. |
nodePort | scalars | Kubernetes Service NodePort. |
route_table | mappings | route table of FATE |
example of route_table:
10000:
proxy:
- host: 192.168.0.1
port: 30103
fateflow:
- host: 192.168.0.1
port: 30102
9999:
proxy:
- host: 192.168.0.2
port: 30093
fateflow:
- host: 192.168.0.2
port: 30092
8888:
proxy:
- host: 192.168.0.3
port: 30083
fateflow:
- host: 192.168.0.3
port: 30082
Configuration of kubernetes deployment rabbitmq .
Name | Type | Description |
---|---|---|
nodeSelector | mappings | kubernetes nodeSelector. |
type | scalars | Kubernetes ServiceTypes, default is ClusterIp . |
nodePort | scalars | Kubernetes Service NodePort. |
default_user | scalars | configuration of rabbitmq. |
default_pass | scalars | configuration of rabbitmq. |
user | scalars | configuration of rabbitmq. |
password | scalars | configuration of rabbitmq. |
route_table | mappings | route table of rabbitmq. |
example of route_table:
10000:
host: 192.168.0.1
port: 30104
9999:
host: 192.168.0.2
port: 30094
8888:
host: 192.168.0.3
port: 30084