当前位置: 首页 > news >正文

Argo CD 入门 - 安装与第一个应用的声明式同步

Argo CD 入门 - 安装与第一个应用的声明式同步


Argo CD 架构简介

在安装之前,简单了解一下 Argo CD 的几个核心组件,有助于我们理解它的工作方式:

  • API Server: 这是我们与之交互的入口。它提供了一个 gRPC/REST API,支撑着 Web UI 和 CLI 的所有操作,并负责认证、授权等。
  • Repository Server: 这个组件负责拉取 Git 仓库的内容,将其缓存到本地,并解析和渲染 Kubernetes 清单文件(例如,处理 Helm chart 或 Kustomize 配置)。
  • Application Controller: 这是 GitOps 的“心脏”和“大脑”。它是一个持续运行的 Kubernetes 控制器,负责:
    1. 监控 Argo CD Application 资源。
    2. 调用 Repository Server 获取 Git 中的期望状态。
    3. 通过 Kubernetes API 检查集群中的实际状态。
    4. 比对两者,一旦发现偏差 (Drift),就采取行动进行协调 (Reconcile),即修正集群状态以匹配 Git 中的声明。

第一步:安装 Argo CD

我们将使用官方提供的 YAML 清单来安装 Argo CD。这个过程非常简单。

  1. 创建一个专门的命名空间:

    kubectl create namespace argocd
    
  2. 应用官方安装清单:

    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    

    这个命令会从 Argo CD 的官方 GitHub 仓库拉取最新的稳定版安装文件,并在我们刚刚创建的 argocd 命名空间中创建所有必需的资源(Deployments, Services, CRDs, RBAC 配置等)。

  3. 验证安装:

    kubectl get pods -n argocd
    

    等待片刻,直到所有的 Pod 都处于 Running 状态。你应该会看到类似 argocd-server-xxx, argocd-repo-server-xxx, argocd-application-controller-xxx 等 Pod。

第二步:访问 Argo CD

Argo CD 的服务默认不会暴露到集群外部,我们需要通过一些方式来访问它。

A. 访问 Web UI

对于本地测试和学习,最简单的方式是使用 kubectl 的端口转发功能:

kubectl port-forward svc/argocd-server -n argocd 8080:443

这个命令会将你本地的 8080 端口转发到集群中 argocd 命名空间下的 argocd-server 服务的 443 端口。

现在,在你的浏览器中打开 https://localhost:8080。浏览器会提示一个安全警告,因为 Argo CD 默认使用自签名的 TLS 证书,请选择“继续前往”即可。

B. 获取初始管理员密码

Argo CD 在安装时会自动生成一个初始的管理员 (admin) 密码,并将其存储在一个 Kubernetes Secret 中。

使用以下命令来获取密码:

# 对于 Argo CD v2.5+,推荐使用 CLI 获取
# 如果你还没安装 CLI,可以先用下面的 kubectl 方法
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.dat
http://www.dtcms.com/a/238558.html

相关文章:

  • OC—UI学习-2
  • 全志v853跑通rtsp sample
  • 阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】
  • 创新滑模观测器设计:改进趋近律与切换函数的永磁同步电机无传感器控制
  • 65、.NET 中DllImport的用途
  • React、Git、计网、发展趋势等内容——前端面试宝典(字节、小红书和美团)
  • Python环境搭建:pyenv-win的使用指南
  • leetcode56-合并区间
  • 如何将淘宝店铺商品搬到抖店去?利用 API 实现淘宝店铺商品到抖店的高效迁移
  • 分库分表的取舍
  • 机器学习算法_决策树
  • 【Java学习笔记】BigInteger 和 BigDecimal 类
  • Windows开机自动启动中间件
  • Python应用变量与数据类型
  • Redis : Hash形式
  • Linux68 FTP 测试 上传下载
  • 【PCIe总线】-- inbound、outbound配置
  • LSTM-SVM多变量时序预测(Matlab完整源码和数据)
  • Django知识-视图
  • uni-app学习笔记三十--request网络请求传参
  • uni-app学习笔记二十四--showLoading和showModal的用法
  • 基于Python学习《Head First设计模式》第十章 状态模式
  • Vulkan 3D Tiles渲染器开发笔记1-脚手架搭建
  • 时间序列预测的机器学习方法:从基础到实战
  • 材料力学速通
  • 设置QDialog的setModal(true)对show()无法阻塞
  • Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(三)
  • 从 Kubernetes 学习大规模 Go 项目架构
  • 初级程序员入门指南
  • Psychopy音频的使用