配置集群参数
从 v0.6.0 版本开始,KubeBlocks 支持使用 kbcli cluster configure 和 kbcli cluster edit-config 两种方式来配置参数。它们的区别在于,kbcli cluster configure 可以自动配置参数,而 kbcli cluster edit-config 则允许以可视化的方式直接编辑参数。
一共有 3 类参数:
- 环境参数,比如 GC 相关的参数,
PULSAR_MEM和PULSAR_GC。参数变更对每个组件都适用。 - 配置参数,比如
zookeeper或bookies.conf配置文件。可以通过env的方式做变更,变更会重启 pod。 - 动态参数,比如
brokers.conf中的配置文件。Pulsar 的broker支持两种变更模式:- 一种是需要重启的参数变更,比如
zookeeperSessionExpiredPolicy。 - 另外一种是支持 dynamic 的参数,可以通过
pulsar-admin brokers list-dynamic-config获取所有的动态参数列表。
- 一种是需要重启的参数变更,比如
备注
pulsar-admin 是 Pulsar 集群自带的管理工具,可以通过 kubectl exec -it <pod-name> -- bash 登录到对应的 Pod 中(pod-name 可通过 kubectl get pods 获取,选择名字中带有 broker 字样的 Pod 即可)。在 Pod 中的 /pulsar/bin path 路径下有对应的命令。关于 pulsar-admin 的更多信息,可参考官方文档。
- 编辑配置文件
- OpsRequest
- kbcli
-
编辑 Pulsar 集群的
broker.conf文件。本文实例修改了名为pulsar-broker-broker-config的文件。kubectl edit cm pulsar-broker-broker-config -n demo -
按需配置参数。
-
查看配置是否生效。
kubectl get pod -l app.kubernetes.io/name=pulsar-broker
备注
如果您无法找到集群的配置文件,您可以使用 kbcli 查看集群当前的配置文件。
kbcli cluster describe-config mycluster -n demo
-
在名为
mycluster-configuring-demo.yaml的 YAML 文件中定义 OpsRequest,并修改参数。如下示例中,lostBookieRecoveryDelay参数修改为1000。apiVersion: apps.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: mycluster-configuring-demo
namespace: demo
spec:
clusterName: mycluster
reconfigure:
componentName: bookies
configurations:
- keys:
- key: bookkeeper.conf
parameters:
- key: lostBookieRecoveryDelay
value: "1000"
name: bookies-config
preConditionDeadlineSeconds: 0
type: Reconfiguring
EOF字段 定义 metadata.name定义了 OpsRequest 的名称。 metadata.namespace定义了集群所在的 namespace。 spec.clusterName定义了本次运维操作指向的集群名称。 spec.reconfigure定义了需配置的 component 及相关配置更新内容。 spec.reconfigure.componentName定义了改集群的 component 名称。 spec.configurations包含一系列 ConfigurationItem 对象,定义了 component 的配置模板名称、更新策略 、参数键值对。 spec.reconfigure.configurations.keys.key定义了 configuration map。 spec.reconfigure.configurations.keys.parameters定义了单个参数文件的键值对列表。 spec.reconfigure.configurations.keys.parameter.key代表您需要编辑的参数名称。 spec.reconfigure.configurations.keys.parameter.value代表了将要更新的参数值。如果设置为 nil,Key 字段定义的参数将会被移出配置文件。 spec.reconfigure.configurations.name定义了配置模板名称。 preConditionDeadlineSeconds定义了本次 OpsRequest 中止之前,满足其启动条件的最长等待时间(单位为秒)。如果设置为 0(默认),则必须立即满足启动条件,OpsRequest 才能继续。 -
应用配置 OpsRequest。
kubectl apply -f mycluster-configuring-demo.yaml -n demo -
确认配置是否生效。
-
查看配置进度。
kubectl get ops -n demo -
查看配置是否生效。
kubectl get pod -l app.kubernetes.io/name=pulsar -n demo
-
备注
如果您无法找到集群的配置文件,您可以使用 kbcli 查看集群当前的配置文件。
kbcli cluster describe-config mycluster -n demo
查看参数信息
-
查看集群的当前配置文件。
kbcli cluster describe-config mycluster -n demo -
查看当前配置文件的详细信息。
kbcli cluster describe-config mycluster -n demo --show-detail -
查看参数描述。
kbcli cluster explain-config mycluster -n demo | head -n 20