3. 使用UI创建应用

任务说明

本案例将使用 Argo CD 的 Web UI 手动创建一个示例应用,并完成首次同步(Sync),以熟悉 UI 操作路径。示例应用使用官方的 guestbook 仓库,该仓库包含 Kubernetes 清单文件。

前置条件

  • 已安装并运行 Argo CD,且可通过 https://<ARGOCD_SERVER> 访问 UI。
  • 已通过 argocd CLI 或 UI 使用管理员账号登录(默认用户名为 admin)。
  • 目标 Kubernetes 集群已作为 Argo CD 的默认集群被添加(通常安装时自动配置)。

操作步骤与实现

以下步骤完全通过 UI 操作完成,无需编写代码。核心流程为:新建应用 → 配置仓库与路径 → 配置目标集群与命名空间 → 创建 → 同步。

  1. 访问 UI:在浏览器中打开 Argo CD 服务器地址,使用管理员账号登录。
  2. 新建应用:点击左侧导航栏的 Applications,然后点击右上角的 + New App 按钮。
  3. 填写应用基本信息:
    • Application Name:输入 guestbook-ui-demo。
    • Project:选择 default。
    • Sync Policy:选择 Manual(本案例手动触发同步)。
  4. 配置 Source(代码源):
    • Repository URL:输入 https://github.com/argoproj/argocd-example-apps.git
    • Revision:保持默认 HEAD 或输入 master。
    • Path:输入 guestbook(该目录下包含 deployment 和 service 清单)。
  5. 配置 Destination(目标集群):
    • Cluster URL:选择 https://kubernetes.default.svc(表示 Argo CD 所在的同一集群)。
    • Namespace:输入 default。
  6. 创建应用:点击页面顶部的 Create 按钮。应用将出现在列表中,初始状态为 OutOfSync。
  7. 手动同步:
    • 点击应用卡片 guestbook-ui-demo 进入详情视图。
    • 点击右上角的 Sync 按钮。
    • 在弹出的确认窗口中,保持默认选项,点击 Synchronize。
  8. 验证结果:同步完成后,应用状态应变为 Synced 且 Healthy。资源树中会显示 guestbook-ui 的 Deployment 和 Service。

验证方法

通过以下条件判断操作是否成功:

  • 在 Argo CD UI 中,应用 guestbook-ui-demo 的 Status 显示为 Synced 和 Healthy。
  • 在 Kubernetes 集群中执行 kubectl get deploy,svc -n default,能看到名为 guestbook-ui 的 Deployment 和 Service。

预期结果

同步完成后,UI 界面中应用状态为绿色(Healthy),资源树中展示 guestbook-ui 的 Deployment 与 Service。命令行验证输出示例:

NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/guestbook-ui   1/1     1            1           2m

NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/guestbook-ui   ClusterIP   10.96.123.45    <none>        80/TCP    2m

常见问题

  • 同步失败且提示 context deadline exceeded:通常为网络无法访问 GitHub。请检查 Argo CD 服务器到 github.com 的连通性。
  • 应用显示 OutOfSync 但同步后无变化:检查 Path 是否填写正确,guestbook 目录下应包含 deployment.yaml 和 service.yaml。
  • 无法选择集群:若 Cluster URL 下拉框为空,需先在 Settings → Clusters 中添加目标集群。