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
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,验证 gitops-addon 控制器 是否在受管集群中运行:

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

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

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

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

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

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

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
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap
    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
      Copy to Clipboard Toggle word wrap
    2. 进入受管集群并运行以下命令来检查 OpenShift Container Platform GitOps operator Manager 的日志:

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

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
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。
  2. 运行以下命令验证 OpenShift GitOps 实例是否已移除:

    oc get pods -n openshift-gitops
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
    1
    这是您在创建连接到 gitop-addon ClusterManagementAddOn 的默认 AddOnDeploymentConfig 时指定的命名空间。
  4. 运行以下命令,验证 OpenShift GitOps 实例是否在新命名空间中应用:

    oc get pods -n openshift-gitops-2
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat