搜索

2.2. 启用 Argo CD Application Controller 的动态扩展

download PDF
重要

分片的动态扩展只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

默认情况下,Argo CD Application Controller 无限分配集群到分片。如果您使用 循环 分片算法,这个静态分配可能会导致分片分布不均匀,特别是在添加或删除副本时。您可以启用动态扩展分片,根据给定时间由 Argo CD Application Controller 管理的集群数量自动调整分片数量。这样可确保分片良好平衡,并优化计算资源的使用。

注意

启用动态扩展后,您无法手动修改分片计数。系统会根据给定时间由 Argo CD Application Controller 管理的集群数量自动调整分片数量。

2.2.1. 在 web 控制台中启用动态扩展分片

您可以使用 OpenShift Container Platform Web 控制台启用动态扩展分片。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 访问 OpenShift Container Platform web 控制台。
  • 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。

流程

  1. 在 OpenShift Container Platform Web 控制台的 Administator 视角中,进入 Operators Installed Operators
  2. Installed Operators 列表中,选择 Red Hat OpenShift GitOps Operator,然后点 ArgoCD 选项卡。
  3. 选择您要为其启用动态扩展分片的 Argo CD 实例名称,如 openshift-gitops
  4. YAML 选项卡,然后编辑并配置 spec.controller.sharding 属性,如下所示:

    启用动态扩展的 Argo CD YAML 文件示例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: openshift-gitops
      namespace: openshift-gitops
    spec:
      controller:
        sharding:
          dynamicScalingEnabled: true 1
          minShards: 1 2
          maxShards: 3 3
          clustersPerShard: 1 4

    1
    dynamicScalingEnabled 设置为 true 以启用动态扩展。
    2
    minShards 设置为您要具有的最小分片数量。该值必须设置为 1 或更高。
    3
    maxShards 设置为您要具有的最大分片数。该值必须大于 minShards 的值。
    4
    clusterPerShard 设置为您要为每个分片具有的集群数量。该值必须设置为 1 或更高。
  5. 点击 Save

    此时会出现一个成功通知警报 openshift-gitops 更新至 <version&gt; 版本。

    注意

    如果您编辑了默认的 openshift-gitops 实例,则会显示 Managed resource 对话框。再次单击 Save 以确认更改。

验证

通过检查命名空间中的 pod 数量来验证分片是否已启用:

  1. 进入 Workloads StatefulSets
  2. Project 下拉列表中选择部署 Argo CD 实例的命名空间,如 openshift-gitops
  3. 点 Argo CD 实例名称的 StatefulSet 对象的名称,如 openshift-gitops-apllication-controller
  4. Pods 选项卡,然后验证 pod 的数量等于或大于您在 Argo CD YAML 文件中设置的 minShards 值。

2.2.2. 使用 CLI 启用动态扩展分片

您可以使用 OpenShift CLI (oc)启用动态扩展分片。

先决条件

  • 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。
  • 您可以使用 cluster-admin 权限访问集群。

流程

  1. 以具有 cluster-admin 权限的用户身份登录 oc 工具。
  2. 运行以下命令来启用动态扩展:

    $ oc patch argocd <argocd_instance> -n <namespace> --type=merge --patch='{"spec":{"controller":{"sharding":{"dynamicScalingEnabled":true,"minShards":<value>,"maxShards":<value>,"clustersPerShard":<value>}}}}'

    示例命令

    $ oc patch argocd openshift-gitops -n openshift-gitops --type=merge --patch='{"spec":{"controller":{"sharding":{"dynamicScalingEnabled":true,"minShards":1,"maxShards":3,"clustersPerShard":1}}}}' 1

    1
    示例命令为 openshift-gitops 命名空间中的 openshift-gitops Argo CD 实例启用动态扩展,并将最小分片数量设置为 1,将分片的最大数量设置为 3,以及每个分片的集群数量 1minShardclusterPerShard 的值必须设置为 1 或更高。maxShard 的值必须等于或大于 minShard 的值。

    输出示例

    argocd.argoproj.io/openshift-gitops patched

验证

  1. 检查 Argo CD 实例的 spec.controller.sharding 属性:

    $ oc get argocd <argocd_instance> -n <namespace> -o jsonpath='{.spec.controller.sharding}'

    示例命令

    $ oc get argocd openshift-gitops -n openshift-gitops -o jsonpath='{.spec.controller.sharding}'

    启用分片动态扩展时的输出示例

    {"dynamicScalingEnabled":true,"minShards":1,"maxShards":3,"clustersPerShard":1}

  2. 可选:通过检查 OpenShift Container Platform web 控制台中的 Argo CD 实例的配置 YAML 文件中的 spec.controller.sharding 属性来验证是否启用了动态扩展。
  3. 检查 Argo CD Application Controller pod 的数量:

    $ oc get pods -n <namespace> -l app.kubernetes.io/name=<argocd_instance>-application-controller

    示例命令

    $ oc get pods -n openshift-gitops -l app.kubernetes.io/name=openshift-gitops-application-controller

    输出示例

    NAME                                           READY   STATUS    RESTARTS   AGE
    openshift-gitops-application-controller-0      1/1     Running   0          2m  1

    1
    Argo CD Application Controller pod 的数量必须等于或大于 minShard 的值。

2.2.3. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.