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 参数

安装

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

部署完成后查看pod是否正常启动

sh 复制代码
kubectl get pods -n argocd

安装 Argo CD CLI

Argo CD CLI 是用于管理 Argo CD 的命令行工具,具体操作系统安装文档参考 Argo CD CLI 安装文档

sh 复制代码
# 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 服务器:

sh 复制代码
# 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 "字段中。

sh 复制代码
# 获取 admin 密码
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d

命令方式获取

sh 复制代码
argocd admin initial-password -n argocd

修改 Argo CD 密码

图形化界面修改 Argo CD 密码

命令行方式修改 Argo CD 密码

sh 复制代码
# 首先登录
argocd login 192.168.0.81:31951

# 修改密码
argocd account update-password

测试通过 Git 实现应用部署

首先在设置里面添加git仓库

创建成功显示

创建应用

点击sync部署

kubernetes-dashboard查看

相关推荐
刘叨叨趣味运维1 天前
解剖K8s控制平面(上):API Server与etcd如何成为集群的“大脑“与“记忆“?
平面·kubernetes·etcd
-dcr1 天前
56.kubernetes弹性伸缩
云原生·容器·kubernetes
Hui Baby1 天前
K8S联邦负载
java·容器·kubernetes
qq_312920111 天前
K8s Ingress实战:七层负载均衡流量治理
容器·kubernetes·负载均衡
海鸥811 天前
k8s中Jenkins 配置文件「 更新不了 」
java·kubernetes·jenkins
Cyber4K1 天前
【Kubernetes专项】K8s 常见持久化存储方案及存储类动态 PV
云原生·容器·kubernetes
噎住佩奇2 天前
k8s-配置管理
云原生·容器·kubernetes
程序媛Dev2 天前
K8s 太重、虚拟机太旧,Sealos 找到了基础架构的最优解
云原生·容器·kubernetes
索荣荣2 天前
Java定时任务与Kubernetes CronJob、AWS EventBridge的集成方案指南
java·开发语言·kubernetes·aws
回忆是昨天里的海2 天前
k8s-部署spring cloud微服务
spring cloud·微服务·kubernetes