首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Argo CD初体验

编程知识
2024年09月08日 10:38

什么是 Argo CD?

Argo CD 是一个声明式的 GitOps 持续交付工具,用于 Kubernetes 集群。它通过持续监控 Git 仓库中的 Kubernetes 资源配置文件,将这些配置自动应用到指定的 Kubernetes 集群中,确保集群的实际状态与仓库中的配置保持一致。Argo CD 支持各种 Kubernetes 清单格式,如 Kustomize、Helm Charts、Ksonnet、YAML 和 JSON,允许你通过 Git 仓库管理和部署 Kubernetes 资源。

Argo CD 的好处

  1. 声明式管理:Argo CD 采用声明式的管理方式,开发者只需在 Git 仓库中定义好应用的期望状态,Argo CD 就会自动将集群的实际状态与之同步。这样可以减少人为错误,并使配置管理更加清晰和可审计。

  2. GitOps 工作流:Argo CD 将 Git 仓库作为配置管理的唯一真理来源(Source of Truth),实现了 GitOps 的最佳实践。每一次应用的部署或更新都通过提交代码和合并请求触发,从而保证了自动化和审核跟踪。

  3. 持续同步和自愈:Argo CD 能够持续监控 Kubernetes 集群中的资源状态,并在检测到任何偏离期望状态的情况时自动纠正,使集群的状态始终与 Git 仓库中的配置一致。

  4. 多集群支持:Argo CD 可以管理多个 Kubernetes 集群,使得跨集群的应用部署和管理更加容易。

  5. 细粒度访问控制:Argo CD 提供了细粒度的访问控制机制,允许基于角色的访问控制(RBAC)以及通过 SSO 集成来控制对特定项目和应用的访问权限。

Argo CD 与 Jenkins 的对比

功能Argo CDJenkins
架构 专注于 Kubernetes 集群的声明式部署 通用的 CI/CD 工具,支持多种编程语言和环境
GitOps 支持 内置支持 GitOps 工作流,Git 是唯一的真理来源 需要通过插件或自定义脚本来支持 GitOps 工作流
部署自动化 自动同步 Kubernetes 资源配置,持续保持集群一致性 通过流水线(pipeline)手动配置部署过程
可观测性和回滚 内置监控和自动回滚功能 通过第三方工具或插件实现
插件支持 提供基础功能,无需大量插件 通过插件扩展功能,插件种类丰富
CI/CD 整合 专注于 CD 部分,通常与 Argo Workflows 等其他工具整合使用 既支持 CI 又支持 CD,整合度较高

使用 Argo CD 部署一个服务

接下来我们将展示如何使用 Argo CD 部署一个简单的服务。假设我们要在 Kubernetes 集群中部署一个 Nginx 服务。

1. 安装 Argo CD

首先,我们需要在 Kubernetes 集群中安装 Argo CD:

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

安装完成后,可以通过以下命令获取 Argo CD API Server 的外部访问地址:

kubectl get svc -n argocd

2. 访问 Argo CD

你可以通过 port-forward 访问 Argo CD 的 Web 界面:

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

然后在浏览器中访问 https://localhost:8080。默认的用户名是 admin,可以通过以下命令获取初始密码:

kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d

3. 创建 Git 仓库并推送配置

在 GitHub 或其他 Git 服务上创建一个新仓库,并将以下内容保存为 nginx-deployment.yaml 文件,推送到你的 Git 仓库中。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

4. 使用 YAML 文件定义 Argo CD 应用

创建一个新的 YAML 文件 argo-nginx-app.yaml,并将以下内容添加到其中:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: nginx-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: '<YOUR_GIT_REPOSITORY_URL>'
    targetRevision: HEAD
    path: '<YOUR_APP_PATH>'
  destination:
    server: https://kubernetes.default.svc
    namespace: default
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

<your-username><your-repo> 替换为你的 GitHub 用户名和仓库名。

5. 应用 YAML 文件

通过以下命令将 Argo CD 应用的定义文件应用到 Kubernetes 集群:

kubectl apply -f argo-nginx-app.yaml

6. 验证部署

回到 Argo CD 的 Web 界面,你应该能看到名为 nginx-app 的应用。如果状态为 “Synced”,说明部署已经成功。

你也可以通过以下命令在 Kubernetes 中验证 Nginx 服务是否正常运行:

kubectl get pods -l app=nginx
kubectl get svc nginx-service

总结

Argo CD 是一个强大的 Kubernetes 持续交付工具,能够简化和自动化 Kubernetes 集群中的应用管理。通过 GitOps 工作流,Argo CD 使得应用部署和配置更具透明性和可追溯性。与 Jenkins 等传统 CI/CD 工具相比,Argo CD 更专注于 Kubernetes 环境,尤其适合微服务和容器化应用的持续交付。

From:https://www.cnblogs.com/chenyishi/p/18402683
本文地址: http://www.shuzixingkong.net/article/1825
0评论
提交 加载更多评论
其他文章 数据包格式
目录前言请求数据格式请求行请求方法请求头AcceptRefererUser-AgentHOSTX_FORWARDED_FORContent-TypeContent-LengthTransfer-EncodingCookieConnectionAccept-EncodingAccept-Languag
数据包格式 数据包格式
一步一步将PlantUML类图导出为自定义格式的XMI文件
一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08 PlantUML官网: https://plantuml.com/zh/ PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f5488
C#自定义控件—旋转按钮
C#用户控件之旋转按钮 按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边); 【制作方法】 找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得; 【关键节点】 No.1 获取中心坐标,思考要绘制图形的相对坐标、宽度、高度; No.2 更改坐标系原点,以此原点
C#自定义控件—旋转按钮 C#自定义控件—旋转按钮 C#自定义控件—旋转按钮
SpringBoot兼容SpringMVC带有.do后缀的请求
背景 MVC框架请求的都是.do后缀,但controller控制层拦截的是没有后缀的链接。如controller请求/111/222,当请求/111/222.do时,可以正常进入。当我们将存量一些旧工程(SpringMVC框架)升级到Springboot后,发现无法进入,此处我们针对这块进行最丝滑的
FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer
​GSYVideoPlayer是一个国产的移动端视频播放器,它采用了IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等四种播放器内核,支持弹幕、滤镜、广告等多项功能。 GSYVideoPlayer的Github主页为https://github.co
FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析)
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @目录八,SpringBoot Web 开发访问静态资源(附+详细源码剖析)1. 基本介绍2. 快速入门2.1 准备工作3. 改变静态资源访问前缀,定义为我们自己想要的4. 改变Spring Boot当中的默认的静态资源路径(实
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析)
红日靶机(一) 笔记
红日靶机(一)笔记 概述 域渗透靶机,可以练习对域渗透的一些知识,主要还是要熟悉 powershell 语法,powershell 往往比 cmd 的命令行更加强大,而很多渗透开源的脚本都是 powershell 的。例如 NiShang,PowerView 等等。这是域渗透的初学靶机。其中也遇到了
红日靶机(一) 笔记 红日靶机(一) 笔记 红日靶机(一) 笔记
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
前言 今天大姚给大家分享一个.NET开源、免费的用于管理 Git 存储库的独立图形用户界面(GUI)工具,它还与 Windows 资源管理器和 Microsoft Visual Studio (2015/2017/2019/2022) 集成:Git Extensions。 Git新手指南:从基础到实
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具 Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具 Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具