5.6. 使用 Argo CD 部署 Spring Boot 应用程序

通过 Argo CD,您可以使用 Argo CD 仪表板或使用 oc 工具将应用程序部署到 OpenShift 集群。

先决条件

  • 在集群中安装了 Red Hat OpenShift GitOps。
  • 登录到 Argo CD 实例。

5.6.1. 使用 Argo CD 仪表板创建应用程序

Argo CD 提供了一个仪表板,供您创建应用程序。

此示例工作流逐步指导您完成将 Argo CD 配置为递归将 cluster 目录中的内容同步到 cluster-configs- 应用程序。目录定义了 OpenShift Container Platform Web 控制台集群配置,在 web 控制台中的 red hat applications menu icon 菜单下向 Red Hat Developer Blog - Kubernetes 添加链接,并在集群中定义命名空间 spring-petclinic

流程

  1. 在 Argo CD 控制面板中,单击 NEW APP 以添加新 Argo CD 应用。
  2. 对于此工作流,使用以下配置创建一个 cluster-configs 应用程序:

    应用程序名称
    cluster-configs
    project
    default
    同步策略
    Manual(手动)
    仓库 URL
    https://github.com/redhat-developer/openshift-gitops-getting-started
    修订
    HEAD
    路径
    cluster
    目的地
    https://kubernetes.default.svc
    命名空间
    spring-petclinic
    Directory Recurse
    checked
  3. 对于此工作流,使用以下配置创建一个 spring-petclinic 应用程序:

    应用程序名称
    spring-petclinic
    project
    default
    同步策略
    自动
    仓库 URL
    https://github.com/redhat-developer/openshift-gitops-getting-started
    修订
    HEAD
    路径
    app
    目的地
    https://kubernetes.default.svc
    命名空间
    spring-petclinic
  4. 单击 CREATE 以创建应用程序。
  5. 打开 Web 控制台的 Administrator 视角,并导航到左侧菜单中的 AdministrationNamespaces
  6. 搜索并选择命名空间,然后在 Label 字段中输入 argocd.argoproj.io/managed-by=openshift-gitops,以便 openshift-gitops 命名空间中的 Argo CD 实例可以管理您的命名空间。

5.6.2. 使用 oc 工具创建应用程序

您可以使用 oc 工具在终端中创建 Argo CD 应用程序。

流程

  1. 下载 示例应用程序

    $ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
  2. 创建应用程序:

    $ oc create -f openshift-gitops-getting-started/argo/app.yaml
    $ oc create -f openshift-gitops-getting-started/argo/cluster.yaml
  3. 运行 oc get 命令以查看所创建的应用程序:

    $ oc get application -n openshift-gitops
  4. 在部署应用程序的命名空间中添加标签,以便 openshift-gitops 命名空间中的 Argo CD 实例可以管理它:

    $ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
    $ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops

5.6.3. 验证 Argo CD 自助行为

Argo CD 持续监控已部署应用程序的状态,检测 Git 中指定清单和集群中的实时更改之间的差别,然后自动更正它们。这个行为被称为自我管理。

您可以在 Argo CD 中测试并观察自我管理的行为。

先决条件

  • 已部署并配置 app-spring-petclinic 应用程序示例。

流程

  1. 在 Argo CD 仪表板中,验证您的应用程序是否具有 Synced 状态。
  2. 点 Argo CD 仪表板中的 app-spring-petclinic 标题,查看部署到集群中的应用程序资源。
  3. 在 OpenShift Container Platform web 控制台中进入 Developer 视角。
  4. 修改 Spring PetClinic 部署,并将更改提交到 Git 仓库的 app/ 目录。Argo CD 将自动将更改部署到集群。

    1. Fork OpenShift GitOps getting started repository
    2. deployment.yaml 文件中,将 failureThreshold 值改为 5
    3. 在部署集群中,运行以下命令验证 failureThreshold 字段更改的值:

      $ oc edit deployment spring-petclinic -n spring-petclinic
  5. 通过修改集群上的部署并扩展到两个容器集来测试自我修复行为,同时在 OpenShift Container Platform Web 控制台中观察应用程序。

    1. 运行以下命令修改部署:

      $ oc scale deployment spring-petclinic --replicas 2  -n spring-petclinic
    2. 在 OpenShift Container Platform Web 控制台中,请注意部署最多扩展两个 pod,并立即缩减到一个 pod。Argo CD 检测到与 Git 存储库的区别,并在 OpenShift Container Platform 集群中自动修复应用程序。
  6. 在 Argo CD 仪表板中,点 app-spring-petclinic 标题 → APP DETAILSEVENTSEVENTS 选项卡显示以下事件: Argo CD 检测集群中缺少同步部署资源,然后重新同步 Git 存储库进行更正。