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查看

相关推荐
Britz_Kevin2 小时前
从零开始的云计算生活——激流勇进,kubernetes模块之Pod资源对象
kubernetes·云计算·生活·#pod
小白不想白a13 小时前
【k8s】k8s安装与集群部署脚本
云原生·容器·kubernetes
我来找弟弟13 小时前
open Euler--单master部署集群k8s
云原生·容器·kubernetes
数据智能老司机16 小时前
基于 Kubernetes 的平台工程——云原生应用的挑战
云原生·kubernetes·devops
数据智能老司机16 小时前
基于 Kubernetes 的平台工程——Kubernetes 上的平台化浪潮
kubernetes·云计算·devops
岚天start17 小时前
K8S中,kubectl cordon、uncordon、drain、taint的区别
云原生·容器·kubernetes·cordon·uncordon·taint·drain
昌sit!21 小时前
k8s基本概念
云原生·容器·kubernetes
斯普信专业组1 天前
Kubernetes部署apisix的理论与最佳实践(四)
云原生·容器·kubernetes
郝同学的测开笔记1 天前
告别硬编码:手把手教你用Secrets保护CronJob的阿里云AK/SK
云原生·kubernetes·测试
阿波罗尼亚1 天前
容器 K8S Docker Kata 学习(一)
docker·容器·kubernetes