扩展子群集
操作器使您能够自动扩展子群集的数量以及每个子群集的 pod 数量。这使您可以根据工作负载的即时需求来利用或节省资源。
以下部分说明如何为新工作负载扩展资源。有关为现有工作负载扩展资源的详细信息,请参阅 VerticaAutoscaler 自定义资源。
先决条件
扩展子群集的数量
调整自定义资源中的子群集数量,以针对短期运行的仪表板查询微调资源。例如,增加子群集的数量以提高吞吐量。有关详细信息,请参阅使用子群集提高查询吞吐量。
-
使用
kubectl edit
打开默认文本编辑器并更新指定的自定义资源的 YAML 文件。以下命令打开名为vdb
的自定义资源进行编辑:$ kubectl edit vdb
-
在自定义资源的
spec
部分中,找到subclusters
子部分。从isPrimary
字段开始定义新的子群集。isPrimary
字段接受一个布尔值,以指定子群集是主群集还是辅助群集。用于自定义资源中已经有一个主子群集,因此输入false
:spec: ... subclusters: ... - isPrimary: false
-
按照创建自定义资源中的步骤完成子群集定义。以下已完成的示例为仪表板查询添加了一个辅助子群集:
spec: ... subclusters: - isPrimary: true name: primary-subcluster ... - isPrimary: false name: dashboard nodePort: 32001 resources: limits: cpu: 32 memory: 96Gi requests: cpu: 32 memory: 96Gi serviceType: NodePort size: 3
-
保存并关闭自定义资源文件。成功更新文件后,您会收到类似如下的消息:
verticadb.vertica.com/vertica-db 已编辑 (verticadb.vertica.com/vertica-db edited)
-
使用
kubectl wait
命令监控新 pod 何时准备就绪:$ kubectl wait --for=condition=Ready pod --selector app.kubernetes.io/name=vertica-db --timeout 180s pod/vdb-dashboard-0 condition met pod/vdb-dashboard-1 condition met pod/vdb-dashboard-2 condition met
扩展子群集中的 pod
对于长时间运行的分析查询,增加子群集的 pod 计数。请参阅使用 Elastic Crunch Scaling 提高查询性能。
-
使用
kubectl edit
打开默认文本编辑器并更新指定的自定义资源的 YAML 文件。以下命令打开名为vdb
的自定义资源进行编辑:$ kubectl edit vertica-db
-
将
subclusters.size
值更新为 6:spec: ... subclusters: ... - isPrimary: false ... size: 6
分片会自动重新平衡。
-
保存并关闭自定义资源文件。成功更新文件后,您会收到类似如下的消息:
verticadb.vertica.com/vertica-db 已编辑 (verticadb.vertica.com/vertica-db edited)
-
使用
kubectl wait
命令监控新 pod 何时准备就绪:$ kubectl wait --for=condition=Ready pod --selector app.kubernetes.io/name=vertica-db --timeout 180s pod/vdb-subcluster1-3 condition met pod/vdb-subcluster1-4 condition met pod/vdb-subcluster1-5 condition met
移除子群集
当不再需要子群集或为了保留资源时,移除子群集。
重要
由于每个自定义资源实例都需要一个主子群集,因此您无法移除所有子群集。-
使用
kubectl edit
打开默认文本编辑器并更新指定的自定义资源的 YAML 文件。以下命令打开名为vdb
的自定义资源进行编辑:$ kubectl edit vertica-db
-
在
spec
下嵌套的subclusters
子部分中,找到要删除的子群集。删除子群集数组中代表要删除的子群集的元素。每个元素由连字符 (-) 标识。 -
删除子群集并保存后,您会收到类似如下的消息:
verticadb.vertica.com/vertica-db 已编辑 (verticadb.vertica.com/vertica-db edited)