openYuanrong datasystem Kubernetes配置项#
本文档描述了openYuanrong datasystem Kubernetes快速启动以及详细配置项说明。
最小化配置项#
本节描述了在Kubernetes部署openYuanrong datasystem的必须配置项,最小化配置项如下表所示:
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
string |
|
镜像仓库 url |
|
string |
|
镜像名称和镜像标签 |
|
string |
|
ETCD 服务端访问地址,openYuanrong datasystem的集群管理依赖ETCD |
样例:
global:
# 镜像:openyuanrong_datasystem:0.5.0
imageRegistry: ""
images:
datasystem: "openyuanrong-datasystem:0.5.0"
etcd:
etcdAddress: "127.0.0.1:2379"
部署openYuanrong datasystem请参考:openYuanrong datasystem Kubernetes部署。
默认情况下,每个 openYuanrong datasystem DaemonSet 最大可使用 2GB 共享内存空间用于缓存数据,如果需要调整该值,可以通过 global.resources.datasystemWorker.sharedMemory 调整。
global:
# 镜像:openyuanrong_datasystem:0.5.0
imageRegistry: ""
images:
datasystem: "openyuanrong-datasystem:0.5.0"
etcd:
etcdAddress: "127.0.0.1:2379"
resources:
datasystemWorker:
limits:
cpu: "3"
# 该值必须大于等于 requests.memory
memory: "5Gi"
requests:
cpu: "3"
# 该值必须大于 shreadMemory
memory: "5Gi"
# 将共享内存最大使用容量调整为4GB
sharedMemory: 4096
注意事项:
openYuanrong datasystem依赖ETCD进行集群管理,请确保部署前ETCD服务处于可用状态。
openYuanrong datasystem默认占用端口号
31501,请确保Kubernetes集群中每个节点的31501端口处于空闲状态,或者通过global.port.datasystemWorker更换默认端口号。请确保Kubernetes集群中每个节点拥有至少3核4G的资源剩余,或者通过资源相关配置减少默认的资源需求。
openYuanrong datasystem Pod内容器默认会挂载以下宿主机目录,请确保容器运行用户具备以下目录的可读可写可访问权限(rwx):
宿主机目录
配置项
作用
/home/sn/datasystem/logs
日志持久化目录
/home/uds
Unix Domain Socket目录,用于启用共享内存免拷贝能力
/home/sn/datasystem/rocksdb
元数据持久化目录
/dev/shm
-
共享内存目录
详细配置项#
镜像相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.imageRegistry |
string |
|
镜像仓库 url |
global.images.datasystem |
string |
|
镜像名称和镜像标签 |
样例:
global:
# 镜像:openyuanrong_datasystem:0.5.0
imageRegistry: ""
images:
datasystem: "openyuanrong-datasystem:0.5.0"
命名空间相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.namespace |
string |
|
命名空间名称 |
global.autoCreatedNamespace |
bool |
|
是否自动创建不存在的命名空间 |
资源相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.resources.datasystemWorker.limits.cpu |
string |
|
openYuanrong datasystem单个DaemonSet占用的最大CPU核数 |
global.resources.datasystemWorker.limits.memory |
string |
|
openYuanrong datasystem单个DaemonSet占用的最大内存量 |
global.resources.datasystemWorker.requests.cpu |
string |
|
openYuanrong datasystem单个DaemonSet初始化时需要的CPU核数,该值的大小必须小于等于 |
global.resources.datasystemWorker.requests.memory |
string |
|
openYuanrong datasystem单个DaemonSet初始化时需要的内存量,该值的大小必须小于等于 |
global.resources.datasystemWorker.maxClientNum |
int |
|
openYuanrong datasystem单个DaemonSet最大可同时连接的客户端数 |
global.resources.datasystemWorker.sharedMemory |
int |
|
openYuanrong datasystem单个DaemonSet可使用的共享内存资源大小(以MB为单位),该值的大小必须小于 |
IPC/RPC相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.ipc.ipcThroughSharedMemory |
bool |
|
datasystem-worker共享内存启用开关 |
global.ipc.udsDir |
string |
|
Unix Domain Socket (UDS) 文件存储目录配置,UDS文件该在该路径下产生,路径最大长度不能超过80个字符。该目录会被自动挂载到宿主机同名目录上,请确保容器具备宿主机同名目录的操作权限 |
global.port.datasystemWorker |
int |
|
openYuanrong datasystem DaemonSet占用的主机端口号 |
global.rpc.enableCurveZmq |
bool |
|
是否开启服务端组件间认证鉴权功能 |
global.rpc.curveKeyDir |
string |
|
用于查找 ZMQ Curve 密钥文件的目录,启用 ZMQ 认证时必须指定该路径 |
global.rpc.curveZmqKey.clientPublicKey |
string |
|
客户端公钥 |
global.rpc.curveZmqKey.workerPublicKey |
string |
|
datasystem-worker的公钥 |
global.rpc.curveZmqKey.workerSecretKey |
string |
|
datasystem-worker的私钥 |
global.rpc.ocWorkerWorkerDirectPort |
int |
|
对象/KV缓存datasystem-worker之间用于数据传输的TCP通道,0表示禁用该功能;当指定为一个非0值时,datasystem-worker将会建立一条单独用于数据传输的TCP通道,用于加速节点间数据的传输速度,降低数据传输时延 |
global.rpc.ocWorkerWorkerPoolSize |
int |
|
datasystem-worker间用于数据传输的并行连接数,用于提升节点间数据传输的吞吐量,只有当 |
global.rpc.payloadNocopyThreshold |
string |
|
datasystem-worker间数据传输时免数据拷贝的阈值(以字节为单位) |
global.rpc.rpcThreadNum |
int |
|
配置服务端的RPC线程数,必须为大于0的数 |
global.rpc.ocThreadNum |
int |
|
配置服务端用于处理对象/KV缓存的业务线程数 |
global.rpc.zmqServerIoContext |
int |
|
ZMQ服务端性能优化参数,其数值与系统吞吐量正相关,取值范围:[1, 32] |
global.rpc.zmqClientIoContext |
int |
|
ZMQ客户端性能优化参数,其数值与系统吞吐量正相关,取值范围:[1, 32] |
global.rpc.zmqChunkSz |
int |
|
并行负载分块大小配置(以字节为单位) |
global.rpc.maxRpcSessionNum |
int |
|
单个datasystem-worker最大可缓存会话数,取值范围:[512, 10,000] |
global.rpc.streamIdleTimes |
int |
|
配置流的空闲时间。默认值为300秒(5分钟) |
global.rpc.remoteSendThreadNum |
int |
|
配置服务端用于将元素发送到远程工作线程的线程数量 |
样例: 配置一个Unix Domain Socket路径为 “/home/uds”,并使用31501作为openYuanrong datasystem DaemonSet的监听端口号
global:
port:
datasystemWorker: 31501
ipc:
ipcThroughSharedMemory: true
udsDir: /home/uds
ETCD相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.etcd.etcdAddress |
string |
|
ETCD 服务端访问地址 |
global.etcd.enableEtcdAuth |
bool |
|
是否启用 ETCD 认证 |
global.etcd.etcdCa |
string |
|
CA明文证书,使用Base64编码 |
global.etcd.etcdCert |
string |
|
客户端明文证书,使用Base64转码 |
global.etcd.etcdKey |
string |
|
客户端私钥。需进行Base64转码,是否加密取决于是否设置了密码短语. |
global.etcd.etcdCertDir |
string |
|
已加密 etcd 证书的挂载路径, |
global.etcd.passphraseValue |
string |
|
密码短语的值,需加密并进行Base64转码。 |
global.etcd.etcdMetaPoolSize |
int |
|
ETCD元数据异步队列大小,用于将KV接口 |
global.etcd.etcdTargetNameOverride |
string |
|
设置用于SSL主机名校验的ETCD目标名称覆盖。该配置值应与TLS证书的Subject Alternate Names(主题备用名称)中的DNS内容保持一致。 |
样例:
global:
# 连接一个无需认证鉴权的ETCD服务
etcd:
etcdAddress: "127.0.0.1:2379"
enableEtcdAuth: false
etcdTargetNameOverride: ""
etcdCa: ""
etcdCert: ""
etcdKey: ""
etcdCertDir: ""
passphraseValue: ""
etcdMetaPoolSize: 8
Spill相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.spill.spillDirectory |
string |
|
配置缓存溢出功能的本地磁盘路径,为空表示禁用缓存溢出功能。当配置该路径后,溢出的缓存数据将保存在该路径下的 |
global.spill.spillSizeLimit |
string |
|
配置缓存溢出的最大容量(以字节为单位) |
global.spill.spillThreadNum |
int |
|
表示溢出数据写文件的最大并行度,线程数越多会消耗越多的CPU和I/O资源 |
global.spill.spillFileMaxSizeMb |
int |
|
单个溢出文件的最大大小(以MB为单位);对于小于此值的对象,会聚合存储于同一个文件中;对于超过此值的对象,将以单个对象单独存为一个文件 |
global.spill.spillFileOpenLimit |
int |
|
溢出文件的最大打开文件描述符数量。若已打开文件数超过此值,系统将临时关闭部分文件以防止超出系统最大限制。在系统资源有限的情况下,应适当调低此数值 |
global.spill.spillEnableReadahead |
bool |
|
是否启用磁盘预读功能,当预读功能被禁用时,可以缓解KV语义 |
global.spill.evictionThreadNum |
int |
|
后台驱逐线程池大小,用于将缓存数据从共享内存驱逐到溢出队列中等到溢出到磁盘 |
样例1:
Spill目录为 “/opt/spill/yr_datasystem_spill”,大小为10GB。
global: spill: spillDirectory: "/opt/spill/yr_datasystem_spill" spillSizeLimit: "10737418240" spillThreadNum: 8 spillFileMaxSizeMb: 200 spillFileOpenLimit: 512 spillEnableReadahead: true evictionThreadNum: 1
样例2:
Spill目录为 “/opt/spill/yr_datasystem_spill”,需要使用宿主机的SSD盘提升Spill性能(宿主机的SSD路径假设为:“/data/ssd”),大小同样为10GB。这种场景下需要配合挂载路径相关配置一起使用。
global: spill: spillDirectory: "/opt/spill/yr_datasystem_spill" spillSizeLimit: "10737418240" spillThreadNum: 8 spillFileMaxSizeMb: 200 spillFileOpenLimit: 512 spillEnableReadahead: true evictionThreadNum: 1 mount: # 宿主机挂载目录,该场景下即为宿主机的SSD路径 - hostPath: "/data/ssd/yr_datasystem_spill" # 容器内挂载目录,需要和 `spillDirectory` 保持一致 mountPath: "/opt/spill/yr_datasystem_spill"
日志与可观测相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.log.logDir |
string |
|
日志目录,服务端产生的日志将保存到此目录中,该路径会被自动挂载到宿主机同名路径下 |
global.log.logLevel |
int |
|
冗余日志级别,0表示不开启冗余日志,取值范围:[0, 3] |
global.log.logAsync |
bool |
|
是否开启异步刷新日志功能 |
global.log.logAsyncQueueSize |
int |
|
异步日志的消息队列大小 |
global.log.logCompress |
bool |
|
是否开启日志压缩功能,当开启时会将历史日志压缩为gzip格式 |
global.log.logBufSecs |
int |
|
最多缓冲这么多秒的日志消息 |
global.log.logFilename |
string |
|
日志前缀名,当值为空时前缀名为 |
global.log.logRetentionDay |
int |
|
日志保留天数,当该值大于0时,最后修改时间早于 |
global.log.maxLogFileNum |
int |
|
最大日志文件个数,当日志文件个数超过该值时,会将最旧的日志文件删除,通过日志滚动机制保证日志文件最大个数小于等于该值 |
global.log.maxLogSize |
int |
|
单个日志文件最大大小(以MB为单位) |
global.observability.logMonitor |
bool |
|
是否开启接口性能与资源观测日志 |
global.observability.logMonitorExporter |
string |
|
指定观测日志导出类型,当前仅支持按 |
global.observability.logMonitorIntervalMs |
int |
|
观测日志收集导出的间隔时间(以毫秒为单位) |
global.log.minLogLevel |
int |
|
设置记录冗余日志的最低级别,低于这个级别的日志不会被记录 |
样例:
global:
# 配置日志路径为 '/home/sn/datasystem/openeuler_datasystem/logs',日志前缀名为 'openeuler_datasystem'
log:
logDir: /home/sn/datasystem/openeuler_datasystem/logs
logAsyncQueueSize: 65536
logLevel: 0
maxLogSize: 400
maxLogFileNum: 25
logRetentionDay: 0
logAsync: true
logBufSecs: 10
# 开启日志压缩功能,历史日志将被压缩成gzip格式节约磁盘空间
logCompress: true
# 日志前缀名,配置为 'openeuler_datasystem'
logFilename: "openeuler_datasystem"
二级缓存相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.l2Cache.l2CacheType |
string |
|
配置二级缓存类型, |
global.l2Cache.l2CacheDeleteThreadNum |
int |
|
配置二级缓存异步删除线程池大小,增大该值可以提升二级缓存删除并行度,同时也会提升worker的CPU消耗 |
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.l2Cache.obs.obsAccessKey |
string |
|
对象存储服务(OBS) AK/SK认证的访问密钥(Access Key) |
global.l2Cache.obs.obsSecretKey |
string |
|
对象存储服务(OBS) AK/SK认证的密钥(Secret Key) |
global.l2Cache.obs.obsEndpoint |
string |
|
对象存储服务(OBS) 访问域名 |
global.l2Cache.obs.obsBucket |
string |
|
对象存储服务(OBS) 桶的名称 |
global.l2Cache.obs.obsHttpsEnabled |
bool |
|
是否启用HTTPS连接对象存储服务(OBS),默认为HTTP |
global.l2Cache.obs.cloudServiceTokenRotation.enable |
bool |
|
是否使用CCMS凭据轮换模式访问OBS,默认值为 |
global.l2Cache.obs.cloudServiceTokenRotation.iamHostName |
string |
|
需要获取的IAM token的域名。例如:iam.cn-beijing-4.myhuaweicloud.com |
global.l2Cache.obs.cloudServiceTokenRotation.identityProvider |
string |
|
为 openYuanrong datasystem 提供权限的 Provider。例如:csms-datasystem |
global.l2Cache.obs.cloudServiceTokenRotation.projectId |
string |
|
对象存储服务(OBS) 的项目ID。例如:fb6a00ff7ae54a5fbb8ff855d0841d00。 |
global.l2Cache.obs.cloudServiceTokenRotation.regionId |
string |
|
对象存储服务(OBS) 的区域ID。例如:cn-north-7 |
global.l2Cache.obs.cloudServiceTokenRotation.enableTokenByAgency |
bool |
|
是否通过委托代理访问其他账号的 对象存储服务(OBS) ,默认值为 |
global.l2Cache.obs.cloudServiceTokenRotation.tokenAgencyDomain |
string |
|
用于代理访问其他账号的委托名称。例如:obs_access |
global.l2Cache.obs.cloudServiceTokenRotation.tokenAgencyName |
string |
|
用于代理访问其他账号的委托方域名。例如:op_svc_cff |
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.l2Cache.sfsTurbo.endpoint |
string |
|
sfs-turbo 的接入点,例如:127.0.0.1 |
global.l2Cache.sfsTurbo.subPath |
string |
|
挂载到 datasystem-worker 的 sfs-turbo 子路径。若未指定该参数,默认挂载 sfs-turbo 的根目录 “/” |
global.l2Cache.sfsTurbo.id |
string |
|
指定 sfs-turbo 的 ID,该 ID 可在 sfs-turbo 页面查看 |
global.l2Cache.sfsTurbo.projectId |
string |
|
指定sfs-turbo的企业项目ID,该ID可在sfs-turbo页面查看 |
global.l2Cache.sfsTurbo.capacity |
string |
|
指定 sfs-turbo 的最大可用容量,该值必须要小于 sfs-turbo 的实际可用大小 |
多集群相关配置#
注: 多集群模式为实验性质特性, 某些场景下可能会有问题,详见:多集群模式FAQ
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.clusterName |
string |
|
可用区的名称 |
global.crossAz.otherClusterNames |
string |
|
指定其他可用区的名称,如果需要指定多个可用区通过’,’进行分隔 |
global.crossAz.crossAzGetDataFromWorker |
bool |
|
是否优先尝试从其他可用区的datasystem-worker获取数据。如果为 |
global.crossAz.crossAzGetMetaFromWorker |
bool |
|
是否从其他可用区的datasystem-worker获取元数据,如果为 |
样例:
global:
azName: "az1"
crossAz:
otherAzNames: "az2,az3,az4"
crossAzGetDataFromWorker: true
crossAzGetMetaFromWorker: false
元数据相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.metadata.enableMetaReplica |
bool |
|
是否开启元数据多副本功能 |
global.metadata.rocksdbStoreDir |
string |
|
配置元数据持久化目录,元数据通过RocksDB持久化在磁盘中 |
global.metadata.rocksdbBackgroundThreads |
int |
|
RocksDB的后台线程数,用于元数据的刷盘和压缩 |
global.metadata.rocksdbMaxOpenFile |
int |
|
RocksDB可使用的最大打开文件个数 |
global.metadata.rocksdbWriteMode |
string |
|
配置元数据写入RocksDB的方式,支持不写、同步和异步写入,默认值为 |
可靠性相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.reliability.clientReconnectWaitS |
int |
|
客户端断链重连最大等待时间(单位为秒) |
global.reliability.clientDeadTimeoutS |
int |
|
客户端存活检测最大时间间隔(单位为秒) |
global.reliability.heartbeatIntervalMs |
int |
|
服务端与ETCD的心跳间隔时间(单位为毫秒) |
global.reliability.nodeTimeoutS |
int |
|
服务端节点超时最大时间间隔(单位为秒) |
global.reliability.nodeDeadTimeoutS |
int |
|
服务端节点存活检测最大时间间隔(单位为秒),当节点超过存活检测最大时间间隔后仍未恢复心跳,会被标记为死亡节点,该值必须大于 |
global.reliability.enableReconciliation |
bool |
|
当节点重启时是否启用对账功能 |
global.reliability.enableHashRingSelfHealing |
bool |
|
是否启用哈希环自愈功能,如果该值为 |
global.reliability.livenessProbeTimeoutS |
int |
|
Kubernetes 存活探针超时时间配置 |
global.reliability.addNodeWaitTimeS |
int |
|
新节点加入哈希环的等待超时时间 |
global.reliability.autoDelDeadNode |
bool |
|
是否启用死亡节点自动清理功能,当该值为 |
global.reliability.enableDistributedMaster |
bool |
|
是否启用分布式主节点,默认值为true |
优雅退出相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.gracefulShutdown.scaleInTaint |
string |
|
识别优雅退出的污点,格式为 |
global.gracefulShutdown.enableLosslessDataExitMode |
bool |
|
是否启用无损数据退出模式,当该值为 |
global.gracefulShutdown.checkAsyncQueueEmptyTimeS |
int |
|
datasystem-worker检测异步队列为空的时间,单位为秒 |
global.gracefulShutdown.dataMigrateRateLimitMb |
int |
|
配置优雅退出数据迁移的流控(以MB/s为单位) |
global.gracefulShutdown.livenessProbeTerminationGracePeriodSeconds |
int |
|
优雅退出的最大处理时间,0表示无限时间;当该值大于0时,如果优雅退出时间超过该值,Kubernetes会强制清除datasystem-worekr Pod |
性能相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.performance.enableHugeTlb |
bool |
|
是否开启共享内存大页内存功能,它可以提高内存访问,减少页表的开销 |
global.performance.enableFallocate |
bool |
|
由于Kubernetes(k8s)的资源计算策略,共享内存有时会被计算两次,这可能会导致客户端OOM崩溃。为了解决这个问题,我们使用了fallocate来链接客户端和工作节点的共享内存,从而纠正内存计算错误。缺省情况下,fallocate是使能的。启用fallocate会降低内存分配的效率 |
global.performance.sharedMemoryPopulate |
bool |
|
是否开启共享内存预热功能,启用该功能可以加速应用运行期间的共享内存拷贝速度,但是在datasystem_worker进程启动时也会由于预热导致启动速度变慢(取决于sharedMemory的配置)。如果开启该功能,’arenaPerTenant’必须设置为1,’enableFallocate’必须设置为false |
global.performance.enableThp |
bool |
|
是否启用透明大页(Transparent Huge Page,THP)功能,启用透明大页可以提高性能,减少页表开销,但也可能导致 Pod 内存使用增加 |
global.performance.arenaPerTenant |
int |
|
每个租户的共享内存分配器数量。多分配器可以提高第一次分配共享内存的性能,但每个分配器会多使用一个fd,导致fd资源使用量上升。取值范围:[1, 32] |
global.performance.memoryReclamationTimeSecond |
int |
|
释放后的内存回收时间,未回收的内存可以提供给下次分配复用,提升分配效率 |
global.performance.asyncDelete |
bool |
|
是否异步删除对象,如果设置为 |
global.performance.enableP2pTransfer |
bool |
|
是否开启异构对象传输协议支持点对点传输 |
global.performance.enableWorkerWorkerBatchGet |
bool |
|
是否开启worker到worker的对象数据批量获取,默认值为false |
global.performance.ocShmTransferThresholdKB |
int |
|
在客户端和worker之间通过共享内存传输对象数据的阈值,单位为KB |
global.performance.enableUrma |
bool |
|
是否开启Urma以实现对象worker之间的数据传输 |
global.performance.urmaPollSize |
int |
|
一次可轮询的完整记录数量,该设备最多可轮询16条记录 |
global.performance.urmaRegisterWholeArena |
bool |
|
是否在初始化时将整个arena注册为一个段,如果设置为 |
global.performance.urmaConnectionSize |
int |
|
jfs和jfr对的数量 |
global.performance.urmaEventMode |
bool |
|
是否使用中断模式轮询完成事件 |
global.performance.sharedDiskDirectory |
string |
|
磁盘缓存数据存放目录,默认为空,表示未启用磁盘缓存 |
global.performance.sharedDiskSize |
int |
|
共享磁盘的大小上限,单位为MB,默认为0,表示未启用磁盘缓存 |
global.performance.sharedDiskArenaPerTenant |
int |
|
每个租户的磁盘缓存区域数量,多个区域可以提高首次共享磁盘分配的性能,但每个区域会多占用一个文件描述符(fd)。取值范围:[0, 32] |
AK/SK相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.akSk.systemAccessKey |
string |
|
系统访问密钥 |
global.akSk.systemSecretKey |
string |
|
系统密钥 |
global.akSk.tenantAccessKey |
string |
|
租户访问密钥 |
global.akSk.tenantSecretKey |
string |
|
租户密钥 |
global.akSk.requestExpireTimeS |
int |
|
请求过期时间,单位为秒,最大值为300 |
Kubernetes亲和性相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.affinity.nodeSelector |
object |
|
亲和标签,控制Pod调度到符合特定条件的Node节点 |
global.affinity.nodeAffinity |
object |
|
亲和标签,精确控制Pod调度到符合特定条件的Node节点,相比 |
global.affinity.tolerations |
list |
|
污点容忍标签,Pod被动接受节点的排斥,不会被驱逐 |
挂载路径相关配置#
挂载路径相关配置一般与Spill相关配置相配合使用。
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.mount.hostPath |
string |
|
主机路径 |
global.mount.mountPath |
string |
|
容器内挂载路径 |
样例:
global:
mount:
# Spill挂载路径1
- hostPath: "/data/ssd1/yr_datasystem_spill"
mountPath: "/opt/spill/yr_datasystem_spill1"
# Spill挂载路径2
- hostPath: "/data/ssd2/yr_datasystem_spill"
mountPath: "/opt/spill/yr_datasystem_spill2"
混合部署相关配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.multiSpec |
list |
|
混合部署支持,默认情况下所有openYuanrong datasystem的DaemonSet Pod都是相同规格的,如果需要配置不同规格的Pod,需要使用该配置,该配置需要与节点亲和性标签一起配合使用 |
样例:
global:
# ...
multiSpec:
# 在亲和性标签为 `mid` 的节点部署第一种规格的Pod
- name: "ds-worker-mid"
affinityLabel: "mid"
resources:
limits:
cpu: "3"
memory: "4Gi"
requests:
cpu: "3"
memory: "4Gi"
workerResources:
sharedMemory: 1024
# 在亲和性标签为 `small` 的节点部署第一种规格的Pod
- name: "ds-worker-small"
affinityLabel: "small"
resources:
limits:
cpu: "2"
memory: "3Gi"
requests:
cpu: "1"
memory: "2Gi"
workerResources:
sharedMemory: 1024
# 在亲和性标签为 `big` 的节点部署第一种规格的Pod
- name: "ds-worker-big"
affinityLabel: "big"
resources:
limits:
cpu: "5"
memory: "6Gi"
requests:
cpu: "4"
memory: "5Gi"
workerResources:
sharedMemory: 2048
Kubernetes精细化控制配置#
配置项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
global.annotations |
object |
|
Kubernetes 元注解 |
global.enableNonPreemptive |
bool |
|
配置priorityClass。如果该值为false,则默认priorityClass为system-cluster-key。如果为true,则会创建一个preemptionPolicy Never的priorityClass |
global.fsGid |
string |
|
fsGroup配置。容器的所有进程也是附加组ID的一部分 |
global.rollingUpdateTimeoutS |
int |
|
滚动升级的最大持续时间,默认值为1800秒 |