1.8. 部署 Red Hat OpenShift GitOps 实例(技术预览)


使用 GitOps 附加组件,您可以为 ArgoCD pull 模型管理所有类型的 Red Hat OpenShift Container Platform 和非 OpenShift Container Platform 受管集群上的 OpenShift GitOps 实例的生命周期。

当您在 hub 集群上在集群命名空间中创建 gitops-addon ManagedClusterAddon 附加组件时,GitOps 附加组件将部署到管理安装、升级和删除 OpenShift GitOps 实例的受管集群中。

GitOps 附加组件部署的 OpenShift GitOps 实例主要用于 Red Hat Advanced Cluster Management ArgoCD pull 模型。因此,您只能访问受管集群中安装的以下组件:

  • OpenShift GitOps 应用程序控制器
  • OpenShift GitOps repo server
  • OpenShift GitOps Redis server

要为 ArgoCD pull 模型部署 OpenShift GitOps 实例,请完成以下部分:

1.8.1. 在受管集群中安装 OpenShift GitOps 实例

当您将 Red Hat Advanced Cluster Management 升级到其最新版本时,所有受管集群上的 OpenShift GitOps 实例会自动升级,并与 GitOps 附加组件捆绑。

要在受管集群中安装 OpenShift GitOps 实例,请完成以下步骤:

  1. 在 hub 集群中,在所选集群命名空间中应用以下 YAML 示例来创建 managedClusterAddon 资源:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: ManagedClusterAddOn
    metadata:
      name: gitops-addon
      namespace: <Cluster-Name>
    spec:
      installNamespace: open-cluster-management-agent-addon
  2. 运行以下命令,验证 gitops-addon 控制器 是否在受管集群中运行:

    oc get pods -n open-cluster-management-agent-addon
  3. 运行以下命令,验证 OpenShift GitOps operator 是否在 openshift-gitops-operator 命名空间中运行:

    oc get pods -n openshift-gitops-operator
  4. 运行以下命令,验证 OpenShift GitOps 实例是否在 openshift-gitops 命名空间中运行:

    oc get pods -n openshift-gitops
  5. 如果 OpenShift GitOps 实例失败,请检查以下位置的日志,具体取决于您需要检查的故障:

    1. 进入受管集群并运行以下命令来检查 GitOps 附加组件控制器的日志:

      oc logs -n open-cluster-management-agent-addon -l app=gitops-addon
    2. 进入受管集群并运行以下命令来检查 OpenShift Container Platform GitOps operator Manager 的日志:

      oc get pods -n openshift-gitops-operator
    3. 进入受管集群并运行以下命令来检查 OpenShift Container Platform GitOps 组件的日志:
    oc get pods -n openshift-gitops

1.8.2. 升级 OpenShift GitOps 实例和 Operator

如果要升级到不是当前版本的版本,您必须手动将 OpenShift GitOps operator 及其实例升级到您想要的版本。

如果将 AddOnDeploymentConfig 附加到 gitops-addon ClusterManagementAddon,则指定的镜像标签始终应用到 OpenShift GitOps operator 及其实例。Operator 及其实例的最新版本不会自动更新。要应用最新版本,请在默认 AddOnDeploymentConfig 中删除自定义镜像设置 GITOPS_OPERATOR_IMAGE, GITOPS_IMAGE, REDIS_IMAGE

要升级 OpenShift GitOps 实例和 Operator,请完成以下步骤:

  1. 通过应用以下 YAML 示例来创建 AddOnDeploymentConfig 自定义镜像:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: gitops-addon-config
      namespace: <namespace> 
    1
    
    spec:
      customizedVariables:
      - name: GITOPS_OPERATOR_IMAGE
        value: <string> 
    2
    
      - name: GITOPS_IMAGE
        value: <string> 
    3
    
      - name: REDIS_IMAGE
        value: <string> 
    4
    1
    添加您想要的任何命名空间。
    2
    指定 OpenShift GitOps Operator 的新镜像和标签。例如: registry.redhat.io/openshift-gitops-1/gitops-rhel8-operator@sha256:73f13a5587bbfbea5a64bd3507120eb83b6be85088139c6d65a9aa9cd56e186a
    3
    指定 OpenShift GitOps 实例的新镜像和标签。例如: registry.redhat.io/openshift-gitops-1/argocd-rhel8@sha256:706d5c99715eece77616135da2fbf90863b7aef17fd64ab03bf7dd20877490ec
    4
    指定 OpenShift GitOps Redis 的新镜像和标签。例如: registry.redhat.io/rhel8/redis-6@sha256:a848cc4edb4405846c673187dd68ce66c328dd1ad42f193f5737288c7971399d
  2. 通过应用以下 YAML 示例,将 AddOnDeploymentConfig 连接到 gitops-addon ClusterManagementAddon,方法是指定 addondeploymentconfigs 资源的 defaultConfig 名称和命名空间:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: ClusterManagementAddOn
    metadata:
      name: gitops-addon
      annotations:
        addon.open-cluster-management.io/lifecycle: "gitops-addon"
    spec:
      addOnMeta:
        description: gitops-addon
        displayName: gitops-addon
      supportedConfigs:
      - group: addon.open-cluster-management.io
        resource: addondeploymentconfigs
        defaultConfig:
          name: gitops-addon-config
          namespace: ocm 
    1
    
      - group: addon.open-cluster-management.io
        resource: addontemplates
        defaultConfig:
          name: gitops-addon
    1
    AddOnDeploymentConfig 中指定的命名空间。
  3. 在受管集群中,验证 OpenShift GitOps operator Pod 和实例 pod 是否使用新的镜像标签重启。
  4. 如果 OpenShift GitOps 实例失败,请检查以下位置的日志,具体取决于您需要检查的故障:

    1. 进入受管集群并运行以下命令来检查 GitOps 附加组件控制器的日志:

      oc logs -n open-cluster-management-agent-addon -l app=gitops-addon
    2. 进入受管集群并运行以下命令来检查 OpenShift Container Platform GitOps operator Manager 的日志:

      oc get pods -n openshift-gitops-operator
    3. 进入受管集群并运行以下命令来检查 OpenShift Container Platform GitOps 组件的日志:
    oc get pods -n openshift-gitops

1.8.3. 删除 OpenShift GitOps 实例和 Operator

即使 OpenShift GitOps operator 被删除后,所有依赖 ArgoCD 自定义资源定义(CRD)仍会保留,确保所有现有 ArgoCD 应用程序不会在 Operator 删除时被删除。

您可以将 OpenShift GitOps Operator 重新安装到同一默认命名空间中。始终将 OpenShift GitOps Operator 安装到 default 命名空间 openshift-gitops-operator 中。无论 Operator 安装命名空间是什么,OpenShift GitOps operator 会监视任何命名空间中的 ArgoCD 资源。

要删除 OpenShift GitOps 实例和 Operator,请完成以下步骤:

  1. 通过应用以下 YAML 示例来删除 OpenShift GitOps 实例:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: gitops-addon-config
      namespace:<namespace> 
    1
    
    spec:
      customizedVariables:
      - name: ACTION
        value: Delete-Instance
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。
  2. 通过应用以下 YAML 示例来删除 OpenShift GitOps operator:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: gitops-addon-config
      namespace: <namespace> 
    1
    
    spec:
      customizedVariables:
      - name: ACTION
        value: Delete-Operator
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。

1.8.4. 在任意命名空间中协调 ArgoCD 应用程序

您可以配置 OpenShift GitOps 实例,以协调任意命名空间中的 ArgoCD 应用程序。

要协调任何命名空间中的 ArgoCD 应用程序,请完成以下步骤:

  1. 在链接的默认 AddOnDeploymentConfig 中,通过应用以下 YAML 示例来指定自定义变量 RECONCILE_SCOPEAll-Namespaces

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: gitops-addon-config
      namespace: <namespace> 
    1
    
    spec:
      customizedVariables:
      - name: RECONCILE_SCOPE
        value: 
    2
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。
    2
    您有两个可用选项用于这个值。all -Namespaces,GitOps ArgoCD 实例可以在所有命名空间中协调应用程序,其中 GitOps ArgoCD 实例只能协调运行 GitOps ArgoCD 实例的命名空间中的应用程序。

默认情况下,OpenShift GitOps 实例安装在 openshift-gitops 命名空间中。如果要在另一个命名空间中安装 OpenShift GitOps 实例,请完成以下步骤:

  1. 通过应用以下 YAML 示例来删除 OpenShift GitOps 实例:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: gitops-addon-config
      namespace: <namespace> 
    1
    
    spec:
      customizedVariables:
      - name: ACTION
        value: Delete-Instance
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。
  2. 运行以下命令验证 OpenShift GitOps 实例是否已移除:

    oc get pods -n openshift-gitops
  3. 通过应用以下 YAML 示例,将 OpenShift GitOps 实例安装到另一个命名空间中:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: gitops-addon-config
      namespace: <namespace> 
    1
    
    spec:
      customizedVariables:
      - name: GITOPS_NAMESPACE
        value: openshift-gitops-2
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。
  4. 运行以下命令,验证 OpenShift GitOps 实例是否在新命名空间中应用:

    oc get pods -n openshift-gitops-2
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部