当前位置: 首页 > 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.xdnf.cn/news/935569.html

相关文章:

  • IDEA为何一直无法使用超过4g内存
  • 文献阅读:Exploring Autoencoder-based Error-bounded Compression for Scientific Data
  • LSTM-SVM多变量时序预测(Matlab完整源码和数据)
  • VB调用CryReport指南方案
  • JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?
  • 【学习笔记】深入理解Java虚拟机学习笔记——第5章 调优案例分析与实战
  • 第12篇:数据库中间件日志设计与追踪系统落地实践
  • MySQL知识回顾总结----数据库基础
  • 计算机常用快捷键分类汇总,涵盖 Windows、macOS 以及通用软件场景
  • STM32[笔记]--1.前置准备
  • AI系统的构建
  • 基于React 的 AntD 库进行前端开发过程中的问题汇总
  • 空间转录组数据下游分析(二)
  • 玄机——某次行业攻防应急响应(带镜像)
  • Java求职者面试指南:计算机基础与源码原理深度解析
  • 智警杯备赛--机器学习算法实践
  • 深度学习登上Nature子刊!特征选择创新思路
  • C# 表达式和运算符(表达式和字面量)
  • 【JavaScript-Day 35】从 window 到 location,一文掌握浏览器对象模型 BOM
  • Web前端开发:JavaScript中的eval()函数
  • triton学习笔记7: GEMM相关
  • uniapp跳转到webview组件的时候,要注意:移除所有不可见字符(包括零宽空格)
  • Linux系统之grub-mkrescue详解
  • vue.js not detected解决方法
  • Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)
  • 第四篇:服务商(工人端)-02服务商入驻审核
  • SCADA|RESTful学习,Apipost通过GET获取KingSCADA实时数据
  • 软件测试—学习Day11
  • HTTP 重定向详解
  • Vulkan 3D Tiles渲染器开发笔记1-脚手架搭建