×

Red Hat OpenShift GitOps 使用 Argo CD 管理特定的集群范围资源,包括集群 Operator、可选的 Operator Lifecycle Manager (OLM) Operator 和用户管理。

先决条件

  • 您可以访问 OpenShift Container Platform Web 控制台。

  • 您已登录,并具有 `cluster-admin` 角色。

  • 您已以管理员身份登录到 OpenShift Container Platform 集群。

  • 您的集群已启用 Marketplace 功能 或手动配置了 Red Hat Operator 目录源。

如果您已经安装了 Argo CD Operator 的社区版本,请在安装 Red Hat OpenShift GitOps Operator 之前将其删除。

本指南介绍如何在 OpenShift Container Platform 集群中安装 Red Hat OpenShift GitOps Operator 并登录到 Argo CD 实例。

latest 通道启用 Red Hat OpenShift GitOps Operator 最新稳定版本的安装。目前,它是安装 Red Hat OpenShift GitOps Operator 的默认通道。

要安装特定版本的 Red Hat OpenShift GitOps Operator,集群管理员可以使用相应的 gitops-<version> 通道。例如,要安装 Red Hat OpenShift GitOps Operator 1.8.x 版本,可以使用 gitops-1.8 通道。

在 Web 控制台中安装 Red Hat OpenShift GitOps Operator

您可以使用 Web 控制台从 OperatorHub 安装 Red Hat OpenShift GitOps Operator。

步骤
  1. 打开 Web 控制台的**管理员**视角,然后转到**Operators** → **OperatorHub**。

  2. 搜索 OpenShift GitOps,单击**Red Hat OpenShift GitOps** 磁贴,然后单击**安装**。

  3. 在**安装 Operator** 页面上

    1. 选择一个**更新通道**。

    2. 选择要安装的 GitOps **版本**。

    3. 选择一个**已安装命名空间**。默认安装命名空间是 openshift-gitops-operator

      对于 GitOps 1.10 及更高版本,默认命名空间已从 openshift-operators 更改为 openshift-gitops-operator

    4. 选中**在此命名空间上启用 Operator 建议的集群监控**复选框以启用集群监控。

      您可以通过应用 openshift.io/cluster-monitoring=true 标签来在任何命名空间上启用集群监控。

      $ oc label namespace <namespace> openshift.io/cluster-monitoring=true
      示例输出
      namespace/<namespace> labeled
  4. 单击**安装**以使 GitOps Operator 可用于 OpenShift Container Platform 集群。

    Red Hat OpenShift GitOps 安装在集群的所有命名空间中。

  5. 验证 Red Hat OpenShift GitOps Operator 是否列在**Operators** → **已安装 Operators** 中。**状态**应变为**成功**。

安装 Red Hat OpenShift GitOps Operator 后,它会自动设置一个可在 openshift-gitops 命名空间中使用的 Argo CD 实例,并且控制台工具栏中会显示一个 Argo CD 图标。您可以为项目下的应用程序创建后续的 Argo CD 实例。

使用 CLI 安装 Red Hat OpenShift GitOps Operator

您可以使用 CLI 从 OperatorHub 安装 Red Hat OpenShift GitOps Operator。

对于 GitOps 1.10 及更高版本,默认命名空间已从 openshift-operators 更改为 openshift-gitops-operator

步骤
  1. 创建一个 openshift-gitops-operator 命名空间

    $ oc create ns openshift-gitops-operator
    示例输出
    namespace/openshift-gitops-operator created

    您可以通过应用 openshift.io/cluster-monitoring=true 标签来在 openshift-gitops-operator 或任何命名空间上启用集群监控

    $ oc label namespace <namespace> openshift.io/cluster-monitoring=true
    示例输出
    namespace/<namespace> labeled
  2. 创建一个 OperatorGroup 对象 YAML 文件,例如 gitops-operator-group.yaml

    OperatorGroup 示例
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-gitops-operator
      namespace: openshift-gitops-operator
    spec:
      upgradeStrategy: Default
  3. OperatorGroup 应用于集群

    $ oc apply -f gitops-operator-group.yaml
    示例输出
    operatorgroup.operators.coreos.com/openshift-gitops-operator created
  4. 创建一个 Subscription 对象 YAML 文件以将命名空间订阅到 Red Hat OpenShift GitOps Operator,例如 openshift-gitops-sub.yaml

    Subscription 示例
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: openshift-gitops-operator
      namespace: openshift-gitops-operator
    spec:
      channel: latest (1)
      installPlanApproval: Automatic
      name: openshift-gitops-operator (2)
      source: redhat-operators (3)
      sourceNamespace: openshift-marketplace (4)
    1 指定您要从中订阅 Operator 的通道名称。
    2 指定要订阅的 Operator 的名称。
    3 指定提供 Operator 的 CatalogSource 的名称。
    4 CatalogSource 的命名空间。对于默认的 OperatorHub CatalogSources,使用 openshift-marketplace
  5. Subscription 应用于集群

    $ oc apply -f openshift-gitops-sub.yaml
    示例输出
    subscription.operators.coreos.com/openshift-gitops-operator created
  6. 安装完成后,验证 openshift-gitops 命名空间中的所有 pod 是否正在运行

    $ oc get pods -n openshift-gitops
    示例输出
    NAME                                                      	  READY   STATUS    RESTARTS   AGE
    cluster-b5798d6f9-zr576                                   	  1/1 	  Running   0          65m
    openshift-gitops-application-controller-0                 	  1/1 	  Running   0          53m
    openshift-gitops-applicationset-controller-6447b8dfdd-5ckgh       1/1 	  Running   0          65m
    openshift-gitops-dex-server-569b498bd9-vf6mr                      1/1     Running   0          65m
    openshift-gitops-redis-74bd8d7d96-49bjf                   	  1/1 	  Running   0          65m
    openshift-gitops-repo-server-c999f75d5-l4rsg              	  1/1 	  Running   0          65m
    openshift-gitops-server-5785f7668b-wj57t                  	  1/1 	  Running   0          53m
  7. 验证 openshift-gitops-operator 命名空间中的 pod 是否正在运行

    $ oc get pods -n openshift-gitops-operator
    示例输出
    NAME                                                            READY   STATUS    RESTARTS   AGE
    openshift-gitops-operator-controller-manager-664966d547-vr4vb   2/2     Running   0          65m

使用 Argo CD 管理员帐户登录到 Argo CD 实例

Red Hat OpenShift GitOps 会自动创建一个可在 openshift-gitops 命名空间中使用的 Argo CD 实例。或者,您可以创建一个新的 Argo CD 实例来管理集群配置或部署应用程序。

使用 Argo CD 管理员帐户登录到默认的即用型 Argo CD 实例或新安装和部署的 Argo CD 实例。

先决条件
  • 您已在 OpenShift Container Platform 集群上安装 Red Hat OpenShift GitOps Operator。

步骤
  1. 在 Web 控制台的**管理员**视角中,导航到**Operators** → **已安装 Operators** 以验证 Red Hat OpenShift GitOps Operator 是否已安装。

  2. 导航到 red hat applications menu icon 菜单 → **OpenShift GitOps** → **集群 Argo CD**。Argo CD UI 的登录页面将显示在新窗口中。

  3. 可选:要使用 OpenShift Container Platform 凭据登录,请确保您是 cluster-admins 组的用户,然后在 Argo CD 用户界面中选择 通过 OpenShift 登录 选项。

    要成为 cluster-admins 组的用户,请使用 oc adm groups new cluster-admins <user> 命令,其中 <user> 是您可以绑定到用户和组的集群范围或本地默认集群角色。

  4. 获取 Argo CD 实例的密码

    1. 使用导航面板转到**工作负载** → **Secrets** 页面。

    2. 使用**项目**下拉列表并选择创建 Argo CD 实例的命名空间。

    3. 选择**<argo_CD_instance_name>-cluster** 实例以显示密码。

    4. 在**详细信息**选项卡上,复制**数据** → **admin.password** 下的密码。

  5. 使用 admin 作为**用户名**,并使用复制的密码作为**密码**登录新窗口中的 Argo CD UI。

您不能在同一个命名空间中创建两个 Argo CD CR。

其他资源