赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 多集群舰队
  6. GitOps
  7. 应用管理
  8. Application管理

Application管理

  • 应用管理
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何使用GitOps系统管理应用,包括创建部署单个应用、更新和回滚应用。

前提条件

  • 已登录GitOps系统。

  • 已添加Git源仓库。

  • 舰队的Fleet实例已添加两个关联集群(服务提供者集群、服务消费者集群)。

创建和部署应用

本文以创建echo-server-demo应用为例,创建应用并将其部署至ACK集群,该集群的APIServer地址为https://47.97.XX.XX:6443。

说明

若由于网络原因导致您无法访问GitHub,您也可以将https://github.com/AliyunContainerService/gitops-demo.git替换为https://code.aliyun.com/shuwei.hsw/gitops-demo.git进行访问。

通过ArgoCD控制台创建和部署

  1. 登录ArgoCD UI,具体操作,请参见通过ArgoCD UI方式登录。

  2. 在ArgoCD UI左侧导航栏选择Applications,然后单击+ NEW APP。

  3. 在弹出的面板配置以下信息,然后单击CREATE进行创建。

    区域

    参数

    参数值

    GENERAL

    Application Name

    echo-server-demo

    Project Name

    default

    SYNC POLICY

    在下拉列表中选择Automatic。

    参数取值如下:

    • Manual:当Git端有变更时,需要用户手动执行同步动作将其部署至目标集群。

    • Automatic:ArgoCD Server每隔3分钟自动检测Git端的变更并将其自动部署至目标集群。

    SYNC OPTIONS

    勾选AUTO-CREATE NAMESPACE。

    SOURCE

    Repository URL

    在下拉列表选择已有Git Repo,此处选择https://github.com/AliyunContainerService/gitops-demo.git。

    Revision

    HEAD

    Path

    manifests/helm/echo-server

    DESTINATION

    Cluster URL/Cluster Name

    在下拉列表中选择目标集群。

    Namespace

    echo-server-demo

    HELM

    VALUES FILES

    values.yaml

  4. 创建完成后,在Application页面,即可看到echo-server-demo的应用状态。

    如果SYNC POLICY选择的是Manual方式,需要手动点击SYNC,将应用同步部署至目标集群。应用的Status为Healthy和Synced,表示已经成功同步。

    image.png

通过ArgoCD CLI创建和部署

  1. 执行以下命令,创建echo-server-demo应用。

    argocd app create echo-server-demo --repo https://github.com/AliyunContainerService/gitops-demo.git --path  manifests/directory/production --dest-namespace echo-server-demo --dest-server https://47.97.XX.XX:6443 --sync-policy none

    预期输出:

    application 'echo-server-demo' created

    命令行参数解释如下表所示。

    参数

    说明

    repo

    该应用所引用的Git源仓库地址。

    path

    echo-server-demo示例应用的YAML编排文件所在的子目录。

    dest-server

    目标集群APIServer地址。

    dest-namespace

    目标集群命名空间。

    sync-policy

    应用的同步策略。默认为none,可选值为auto或none。

    • auto:表示GitOps系统每隔一段时间就会自动检测Git源仓库中echo-server实例应用的变动并自动将其部署到目标集群。

    • none:表示需要用户手动执行同步动作将应用部署到目标集群。

  2. 执行以下命令,将echo-server-demo应用同步部署到目标集群。

    argocd app sync echo-server-demo

    预期输出:

    TIMESTAMP                  GROUP        KIND         NAMESPACE                 NAME         STATUS      HEALTH        HOOK  MESSAGE
    2022-10-17T16:43:20+08:00  apps         Deployment   echo-server-demo          echo-server  OutOfSync   Missing
    2022-10-17T16:43:20+08:00               Service      echo-server-demo          echo-server  OutOfSync   Missing
    2022-10-17T16:43:20+08:00               Service      echo-server-demo          echo-server  Synced      Progressing
    2022-10-17T16:43:20+08:00               Service      echo-server-demo          echo-server  Synced      Progressing         service/echo-server-demo created
    2022-10-17T16:43:20+08:00  apps         Deployment   echo-server-demo          echo-server  OutOfSync   Missing             deployment.apps/echo-server-demo created
    2022-10-17T16:43:20+08:00  apps         Deployment   echo-server-demo          echo-server  Synced      Progressing         deployment.apps/echo-server-demo created
    
    Name:               echo-server-demo
    Project:            default
    Server:             https://47.97.XX.XX:6443
    Namespace:          echo-server-demo
    URL:                https://127.0.0.1:65384/applications/echo-server-demo
    Repo:               https://github.com/AliyunContainerService/gitops-demo.git
    Target:
    Path:               manifests/directory/production
    SyncWindow:         Sync Allowed
    Sync Policy:        <none>
    Sync Status:        Synced to  (02af62b)
    Health Status:      Progressing
    
    Operation:          Sync
    Sync Revision:      02af62bf21e76f53ebfcc282c45865d2308c****
    Phase:              Succeeded
    Start:              2022-10-17 16:43:19 +0800 CST
    Finished:           2022-10-17 16:43:20 +0800 CST
    Duration:           1s
    Message:            successfully synced (all tasks run)
    
    GROUP  KIND        NAMESPACE         NAME              STATUS  HEALTH       HOOK  MESSAGE
           Service     echo-server-demo  echo-server-demo  Synced  Progressing        service/echo-server-demo created
    apps   Deployment  echo-server-demo  echo-server-demo  Synced  Progressing        deployment.apps/echo-server-demo created

查看应用列表

通过ArgoCD控制台查看

  1. 在ArgoCD UI左侧导航栏选择Applications,即可查看应用列表。

  2. 单击echo-server-demo应用名称,即可查看应用详情,展示应用相关的Kubernetes资源的拓扑结构及相应状态。

    image.png

通过ArgoCD CLI查看

执行以下命令,查看应用列表。

argocd app list

预期输出:

NAME         CLUSTER                     NAMESPACE         PROJECT  STATUS  HEALTH   SYNCPOLICY  CONDITIONS  REPO                                                       PATH                            TARGET
echo-server  https://47.97.XX.XX:6443    echo-server-demo  default  Synced  Healthy  <none>      <none>      https://github.com/AliyunContainerService/gitops-demo.git  manifests/directory/production

更新应用

在GitOps应用发布模型下,所有关于应用的变更都需要在Git源仓库中提交,再将变更同步部署至目标集群。

  1. 在Git源仓库中提交变更内容。

  2. 执行以下命令,同步部署最新应用到目标集群。

    argocd app sync echo-server-demo
  3. 执行以下命令,访问应用。

    curl XX.XX.XX.XX:8080/version    #替换XX.XX.XX.XX为应用的IP地址。

    预期输出:

    "Hello Echo Server v2.0"

回滚应用

通过ArgoCD控制台回滚

  1. 在ArgoCD UI左侧导航栏选择Applications,在应用列表中找到echo-server-demo应用并单击应用名称。

  2. 在应用详情页面单击HISTORY AND ROLLBACK,在弹出的应用历史版本中,选择要回滚到的目标版本,单击右上角弹出的Rollback。

    image

  3. 等待回滚完成后,回到应用详情页面验证应用版本。

通过ArgoCD CLI回滚

  1. 执行以下命令,查看已有且可用的历史版本。

    argocd app history echo-server-demo

    预期输出:

    ID  DATE                           REVISION
    0   2022-10-17 16:43:20 +0800 CST   (02af62b)
    1   2022-10-17 16:52:49 +0800 CST   (56ae547)

    当前新版本REVISION为56ae547,序列号为1。

  2. 执行以下命令,将应用回滚到REVISION为02af62b的历史版本。

    argocd app rollback echo-server-demo 0

    待回滚完成后,继续验证访问应用。

  3. 执行以下命令,访问应用。

    curl XX.XX.XX.XX:8080/version    #替换XX.XX.XX.XX为应用的IP地址。

    预期输出:

    "Hello Echo Server v1.0"

相关文章

仓库管理 2025-04-18 18:11

本文介绍如何在GitOps系统中,通过ArgoCD CLI和ArgoCD控制台方式添加、查看及删除Git源仓库和Helm源仓库。 前提条件 已登录GitOps系统。具体操作,请参见登录GitOps系统

Application管理 2025-04-18 18:11

本文介绍如何使用GitOps系统管理应用,包括创建部署单个应用、更新和回滚应用。 前提条件

Application同步选项 2025-04-18 18:11

使用GitOps管理应用时,ArgoCD会提供一些同步选项,您可以按需定制如何将资源同步到目标集群。本文对主要同步选项进行简要介绍。 关于同步选项的详细信息,请参见Argo CD Sync Options。

创建多集群应用 2025-04-18 18:11

多集群应用控制台可以简化多集群应用编排(ArgoCD ApplicationSet),它可以基于单一应用编排并根据您的编排内容自动生成一个或多个应用。本文介绍如何使用ACK One控制台创建多集群应用。 前提条件

应用使用HPA 2025-04-18 18:11

由于Argo CD会定时同步Git仓库和集群中应用的状态,会和通过容器水平伸缩(HPA)来控制Pod副本数的行为发生冲突。因此对于使用GitOps发布的应用,如果使用容器水平伸缩控制Pod副本数,您需要对应用进行相应配置避免产生冲突。配置方式按照副本数分为默认1个副本和默认多个副本两种场景。 默认1

使用钉钉机器人通知GitOps应用变更 2025-04-18 18:11

使用GitOps发布应用时,可以配置多种通知服务(例如Email、钉钉等)用于接收应用的重要变化。当应用发布异常时您可以快速收到通知提醒。本文以发送钉钉消息为例,介绍如何在GitOps中发送通知。 背景信息 Argo CD Notifications提供了配置应用通知的机制,有以下几个主要概念:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号