Argo CD持续交付工具部署
介绍
Argo CD 是一款适用于 Kubernetes 的声明式 GitOps 持续交付工具。
架构
Argo CD 是作为一个 Kubernetes 控制器来实现的,它能持续监控运行中的应用程序,并将当前的实时状态与所需的目标状态(在 Git 仓库中指定)进行比较。 如果部署的应用程序的实时状态与目标状态有偏差,则会被视为 "不同步"。 Argo CD 会报告并可视化差异,同时提供自动或手动同步实时状态的功能,使其恢复到所需的目标状态。 对 Git 仓库中的所需目标状态所做的任何修改都会自动应用并反映在指定的目标环境中。
功能
- 将应用程序自动部署到指定的目标环境中
- 支持多种配置管理/模板工具(kustomize、helm、Jsonnet、plain-YAML)
- 管理和部署到多个集群的能力
- SSO 集成(OIDC、OAuth2、LDAP、SAML 2.0、GitHub、GitLab、Microsoft、LinkedIn)
- 多租户和 RBAC 授权策略
- 回滚/任意滚动到 Git 仓库中提交的任何应用程序配置
- 应用资源健康状态分析
- 自动配置漂移检测和可视化
- 自动或手动将应用程序同步到所需状态
- 提供应用程序活动实时视图的 Web UI
- 用于自动化和 CI 集成的 CLI
- Webhook 集成(GitHub、BitBucket、GitLab)
- 用于自动化的访问令牌
- 同步前、同步中、同步后钩子,以支持复杂的应用程序推出(如蓝色/绿色和金丝雀升级)
- 应用程序事件和 API 调用的审计跟踪
- Prometheus 指标
- 参数重写,用于重写 Git 中的 helm 参数
安装
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
部署完成后查看pod是否正常启动
kubectl get pods -n argocd
安装 Argo CD CLI
Argo CD CLI 是用于管理 Argo CD 的命令行工具,具体操作系统安装文档参考 Argo CD CLI 安装文档
# ubuntu 系统安装
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
# 授权
chmod +x /usr/local/bin/argocd
验证:
暴露 Argo CD 服务
默认情况下,Argo CD API 服务器不公开外部 IP。 要访问 API 服务器,请选择以下技术之一公开 Argo CD API 服务器:
# NodePort
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
# LoadBalancer
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
浏览器通过https://:31951 访问Argo CD
获取 Argo CD 密码
Argo CD 安装后有一个内置的 "admin "用户,可以完全访问系统。 建议仅在初始配置时使用 "admin "用户,然后切换到本地用户或配置 SSO 集成,admin "账户的初始密码会自动生成,并以明文形式存储在 Argo CD 安装命名空间中名为 "argocd-initial-admin-secret "的秘密中的 "password "字段中。
# 获取 admin 密码
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
命令方式获取
argocd admin initial-password -n argocd
修改 Argo CD 密码
图形化界面修改 Argo CD 密码
命令行方式修改 Argo CD 密码
# 首先登录
argocd login 192.168.0.81:31951
# 修改密码
argocd account update-password
测试通过 Git 实现应用部署
首先在设置里面添加git仓库
创建成功显示
创建应用
点击sync部署
kubernetes-dashboard查看
Argo CD持续交付工具部署的更多相关文章
- 持续交付工具ThoughtWorks Go部署step by step
持续交付工具ThoughtWorks Go部署step by step http://blogs.360.cn/360cloud/2014/05/13/%E6%8C%81%E7%BB%AD%E4%BA ...
- 02: CI(持续集成)/CD(持续交付/持续部署)
1.1 持续集成.持续交付 介绍 参考博客:https://www.cnblogs.com/cay83/p/8856231.html 1.传统交付 1. 传统软件的开发与交付的周期都很漫长,从需求 ...
- 容器时代的持续交付工具---Drone:Drone介绍与安装
Drone:Drone is a Container-Native, Continuous Delivery Platform. 官方给的定义,从上面的定义可以得出两个关键点: 1,Container ...
- 持续集成和持续交付工具-jenkins
jenkins说明 jenkins是一款由Java编写的开源的持续集成工具,它运行在Servlet容器中(例如Apache Tomcat).它支持软件配置管理(SCM)工具(包括AccuRev SCM ...
- ansible结合SHELL搭建自己的CD持续交付系统
一. 设计出发点 因公司业务面临频繁的迭代上线,一日数次.仅仅依靠手工效率过低且易出错. 考虑搭建一套可以满足现有场景的上线系统. 二 .为何采用ansible+shell方式 1.可控性(完全自主拥 ...
- 容器时代的持续交付工具---Drone:Drone使用
上一篇文章里已经介绍了如何安装Drone,下面我们来看下如何使用.还是基于gogs作为git仓储. 首先打开server对应的地址,进入登录页面,输入在启动server时配置的管理员账号(对应的就是g ...
- 04: CI(持续集成)/CD(持续交付/持续部署)
1.1 持续集成.持续交付 介绍 参考博客:https://www.cnblogs.com/cay83/p/8856231.html 1.传统交付 1. 传统软件的开发与交付的周期都很漫长,从需求 ...
- 持续集成、持续交付(CI/CD)开篇,先来唠唠嗑
前言 现在稍微有点规模的系统,很多都是采用分布式/微服务架构,将一个大系统拆分为很多个功能模块进行开发.测试.发布.管理等,如果全部流程都采用人工的形式进行的话,效率肯定是超级不高效滴.而且现在很多项 ...
- 持续集成及部署利器:Go
Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目 ...
- CI Weekly #14 | 如何搭建合适的持续交付开发流程?
时隔 10 个月,flow.ci 开始正式收费上线.为感谢对我们的内测支持,所有内测用户可继续免费使用基础版 30 天,截止至 3 月 15 日失效.欢迎随时告诉我们你对收费版 flow.ci 的反馈 ...
随机推荐
- JuiceFS 企业版 5.2:迈入千亿文件时代,稳定性与性能再升级,首次支持 Windows 客户端
JuiceFS 企业版 5.2 版本近日发布,文件管理规模迈入千亿级.此次升级重点提升了超大规模集群的稳定性,优化了分布式缓存的网络性能,并增强了系统的易用性与安全性,旨在支持高并发访问等复杂的高性能 ...
- TINYINT[M]、INT[M]和BIGINT[M]中M值的意义
TINYINT[(M)] [UNSIGNED] [ZEROFILL] A very small integer. The signed range is -128 to 127. The unsign ...
- 记录一次自己用 AI 写IOS APP的经历
我是几乎没有移动端开发经验的.仅有的一点安卓开发经验还是十几年前没毕业的时候自己瞎折腾. 故事的起源是每天辅导我儿子功课时的暴跳如雷. 我儿子上一年级了,在语文的生词上落后得非常严重(当然可能是他同学 ...
- linux安全基线自查手册
1.Redhat/CentOS 7.x配置模板 1.1 帐号管理 1.1.1 检查是否设置除root之外UID为0的用户 严重级别:中危 理论依据:任何UID为0的帐户都具有系统上的超级用户特权,只有 ...
- 「Log」做题记录 2023.11.27-2023.12.31
\(2023.11.27-2023.12.3\) \(\color{black}{P6965}\) 2-sat 是显著的. 对于无问号串,直接否定向自己连边即可,然后塞到 Trie 树里. Trie ...
- k8s在线修改alertmanager.yaml
简单说明 有些情况下,我们可以进入集群查看某些secret的配置,这里如果想修改secret的配置时,没有secrets的源文件,可以采取如下的方案. 例如我们需要修改alertmanager.yam ...
- 用AI工具ChatMoney一键创作,让你的公众号文章流量飙升!
本文由 ChatMoney团队出品 引言 想不想你的公众号文章一炮而红?是不是羡慕那些动不动就10W+的爆款文章?别眼红了,用ChatMoney,你也可以做到!这货可不是普通的写作工具,它是你的文章变 ...
- LogStash输入插件详解
概述 官方文档:https://www.elastic.co/guide/en/logstash/7.17/input-plugins.html 输入插件使 Logstash 能够读取特定的事件源. ...
- linux(Ubuntu22.04)二进制安装mysql及redis
安装MySQL 1.下载mysql安装包 https://downloads.mysql.com/archives/community/ 解压压缩包 tar xf mysql-8.0.30-linux ...
- 用Java获取本机IP或者请求用户的真正IP地址
一.在Web请求中获取请求用户的IP地址 public static String getUserRealIP(HttpServletRequest request) throws UnknownHo ...