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

相关推荐
岁岁种桃花儿3 小时前
详解 Kubernetes 命令:kubectl exec -it nginx -- bash 及实战场景
运维·nginx·kubernetes
qq_5693841216 小时前
K8S (使用步骤)
云原生·容器·kubernetes
simon_skywalker18 小时前
阿里云云原生挑战官方用例SPL
阿里云·云原生·kubernetes
hello_2501 天前
k8s安全机制解析:RBAC、Service Account与安全上下文
java·安全·kubernetes
JanelSirry1 天前
VMware+RockyLinux+ikuai+docker+cri-docker+k8s 自用 实践笔记(一)
linux·docker·kubernetes
Misnice1 天前
k8s 常用命令
linux·docker·kubernetes
NanXi_XZ1 天前
kubernetes事件监控工具--Kube-Event
python·kubernetes
斯普信专业组1 天前
Kubernetes(K8S)完全详解:从架构设计到云原生实践
云原生·容器·kubernetes
能不能别报错1 天前
K8s学习笔记(四) etcd组件
笔记·学习·kubernetes
能不能别报错1 天前
kubeasz二进制部署k8s生产环境集群
云原生·容器·kubernetes