2.6. 在 Argo CD 中启用基于注解的资源跟踪


Red Hat OpenShift GitOps Operator 通过改进 Argo CD 中的基于注解的资源跟踪来增强多实例支持。在以前的版本中,多个 Argo CD 实例不会正确区分具有相同应用程序名称的资源,这只依赖于基于标签的传统跟踪。在这个版本中,您可以通过为每个实例分配一个唯一的 installationID ID 来充分利用基于注解的跟踪。这可防止资源冲突,消除了无限同步循环,并启用安全并行操作。

您可以使用 OpenShift Container Platform Web 控制台执行以下操作:

  • 设置多个 Argo CD 实例
  • 将基于注解的跟踪与命名空间关联来配置基于注解的跟踪
  • 验证部署
注意
  • 每个 Argo CD 实例都必须具有唯一的 installationID ID,以防止资源跟踪冲突。
  • 确保命名空间被正确标记,因为它允许每个 Argo CD 实例仅管理预期的资源。
  • 如果多个实例具有相同的名称的应用程序,请将资源跟踪设置为 annotation+label
  • 如果出现问题,请检查 Argo CD Application 状态并在 OpenShift Container Platform Web 控制台中记录。

您可以在多个 Argo CD 实例中配置基于注解的跟踪。

注意

此流程使用以下示例值:

  • repoURL: https://github.com/redhat-developer/gitops-operator
  • server: https://kubernetes.default.svc

执行这些步骤时,将 example 值替换为实际值。

先决条件

  • 以管理员身份登录到 OpenShift Container Platform 集群。
  • 您已在 OpenShift Container Platform 集群上安装了 Red Hat OpenShift GitOps Operator。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 在 Web 控制台的 Administrator 视角中,点 Operators Installed Operators

    • Project 列表中,创建或选择您要安装用户定义的 Argo CD 实例的项目。
  3. 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,然后点击 Argo CD 选项卡。
  4. 要创建两个 Argo CD 实例,点 Create ArgoCD 并创建类似以下示例的两个 YAML 文件:

    带有注解标签的第一个 Argo CD 实例示例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: argocd-instance-demo-1 
    1
    
      namespace: argocd-test-demo-1 
    2
    
    spec:
      installationID: "instance-demo-1" 
    3
    
      resourceTrackingMethod: "annotation+label"
    Copy to Clipboard Toggle word wrap

    1
    指定第一个 Argo CD 实例的名称。
    2
    指定用于第一个 Argo CD 实例的命名空间。
    3
    指定第一个 Argo CD 实例的 installationID 对象的名称。

    带有注解标签的第二个 Argo CD 实例示例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: argocd-instance-demo-2 
    1
    
      namespace: argocd-test-demo-2 
    2
    
    spec:
      installationID: "instance-demo-2" 
    3
    
      resourceTrackingMethod: "annotation+label"
    Copy to Clipboard Toggle word wrap

    1
    指定第二个 Argo CD 实例的名称。
    2
    指定用于第二个 Argo CD 实例的命名空间。
    3
    指定第二个 Argo CD 实例的 installationID 对象的名称。
  5. 配置和标记目标命名空间,将命名空间与其 Argo CD 实例关联。

    1. 导航至 Administration Namespaces
    2. 为应用程序部署、app-ns-1app-ns-2 创建命名空间。
    3. 将每个命名空间与其对应的 Argo CD 实例关联:

      1. 运行以下命令,将 app-ns-1 命名空间与 argocd-test-demo-1 Argo CD 实例关联:

        示例命令

        $ oc label namespace app-ns-1 argocd.argoproj.io/managed-by=argocd-test-demo-1
        Copy to Clipboard Toggle word wrap

      2. 运行以下命令,将 app-ns-2 命名空间与 argocd-test-demo-2 Argo CD 实例关联:

        示例命令

        $ oc label namespace app-ns-2 argocd.argoproj.io/managed-by=argocd-test-demo-2
        Copy to Clipboard Toggle word wrap

  6. 在 Argo CD 中创建两个应用程序。

    1. 在 OpenShift Container Platform Web 控制台中,进入 Operators Installed Operators OpenShift GitOps Operator
    2. 选择 Argo CD 并导航到 Applications 选项卡。
    3. Create Application
    4. 输入以下 YAML 片段在 Argo CD 中创建两个应用程序。

      使用 Argo CD 的第一个应用程序示例

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
        name: sprint-petclinic 
      1
      
        namespace: argocd-test-demo-1 
      2
      
      spec:
        project: default
        source:
          repoURL: https://github.com/redhat-developer/gitops-operator
          path: test/examples/nginx
          targetRevision: HEAD
        destination:
          server: https://kubernetes.default.svc
          namespace: app-ns-1
        syncPolicy:
          automated: {}
      Copy to Clipboard Toggle word wrap

      1
      指定第一个应用程序的名称。
      2
      指定用于第一个应用程序的命名空间。

      使用 Argo CD 的第二个应用程序示例

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
        name: sprint-petclinic 
      1
      
        namespace: argocd-test-demo-2 
      2
      
      spec:
        project: default
        source:
          repoURL: https://github.com/redhat-developer/gitops-operator
          path: test/examples/nginx
          targetRevision: HEAD
        destination:
          server: https://kubernetes.default.svc
          namespace: app-ns-2
        syncPolicy:
          automated: {}
      Copy to Clipboard Toggle word wrap

      1
      指定创建第二个应用的名称,其名称与第一个应用的名称相同。
      2
      指定用于第二个应用程序的命名空间。

验证

  1. 在 OpenShift Container Platform Web 控制台中进入到 Workloads Pods
  2. 确保 Argo CD 实例的 pod argocd-instance-demo-1argocd-instance-demo-2 正在运行。
  3. Argo CD Applications YAML 选项卡中检查应用程序同步状态。
  4. 进入 argocd-test-demo-1argocd-test-demo-2 命名空间中的 argocd-cm 配置映射,并验证 installationID 对象是否已成功配置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat