扩展子群集

操作器使您能够自动扩展子群集的数量以及每个子群集的 pod 数量。这使您可以根据工作负载的即时需求来利用或节省资源。

以下部分说明如何为新工作负载扩展资源。有关为现有工作负载扩展资源的详细信息,请参阅 VerticaAutoscaler 自定义资源

先决条件

扩展子群集的数量

调整自定义资源中的子群集数量,以针对短期运行的仪表板查询微调资源。例如,增加子群集的数量以提高吞吐量。有关详细信息,请参阅使用子群集提高查询吞吐量

  1. 使用 kubectl edit 打开默认文本编辑器并更新指定的自定义资源的 YAML 文件。以下命令打开名为 vdb 的自定义资源进行编辑:

    $ kubectl edit vdb
    
  2. 在自定义资源的 spec 部分中,找到 subclusters 子部分。从 isPrimary 字段开始定义新的子群集。

    isPrimary 字段接受一个布尔值,以指定子群集是主群集还是辅助群集。用于自定义资源中已经有一个主子群集,因此输入 false

    spec:
    ...
      subclusters:
      ...
      - isPrimary: false
    
  3. 按照创建自定义资源中的步骤完成子群集定义。以下已完成的示例为仪表板查询添加了一个辅助子群集:

    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
    
  4. 保存并关闭自定义资源文件。成功更新文件后,您会收到类似如下的消息:

    verticadb.vertica.com/vertica-db 已编辑 (verticadb.vertica.com/vertica-db edited)

  5. 使用 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 提高查询性能

  1. 使用 kubectl edit 打开默认文本编辑器并更新指定的自定义资源的 YAML 文件。以下命令打开名为 vdb 的自定义资源进行编辑:

    $ kubectl edit vertica-db
    
  2. subclusters.size 值更新为 6:

    spec:
    ...
      subclusters:
      ...
      - isPrimary: false
        ...
        size: 6
    

    分片会自动重新平衡。

  3. 保存并关闭自定义资源文件。成功更新文件后,您会收到类似如下的消息:

    verticadb.vertica.com/vertica-db 已编辑 (verticadb.vertica.com/vertica-db edited)

  4. 使用 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
    

移除子群集

当不再需要子群集或为了保留资源时,移除子群集。

  1. 使用 kubectl edit 打开默认文本编辑器并更新指定的自定义资源的 YAML 文件。以下命令打开名为 vdb 的自定义资源进行编辑:

    $ kubectl edit vertica-db
    
  2. spec 下嵌套的 subclusters 子部分中,找到要删除的子群集。删除子群集数组中代表要删除的子群集的元素。每个元素由连字符 (-) 标识。

  3. 删除子群集并保存后,您会收到类似如下的消息:

    verticadb.vertica.com/vertica-db 已编辑 (verticadb.vertica.com/vertica-db edited)