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

相关推荐
云游2 小时前
k8s:手动创建PV,解决postgis数据库本地永久存储
云原生·容器·kubernetes
虚伪的空想家4 小时前
关于虚拟机部署的k8s集群calico组件在开机恢复快照时的问题
云原生·容器·kubernetes
影龙帝皖6 小时前
K8S基础环境部署
云原生·容器·kubernetes
liux35287 小时前
基于Kubernetes的微服务CI/CD:Jenkins Pipeline全流程实践
ci/cd·微服务·kubernetes
云游7 小时前
k8s:离线部署tomcatV11.0.9,报Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh
容器·kubernetes·tomcat
XMYX-012 小时前
FastDFS 6.11.0 单机环境搭建与测试(附 Nginx 集成)+ docker构建+k8s启动文件
nginx·docker·kubernetes·fastdfs
ASDyushui14 小时前
Kubernetes服务发布基础
云原生·容器·kubernetes
睡觉z1 天前
Kubernetes Pod调度基础
云原生·容器·kubernetes
B64A-消闲1 天前
k8s知识点
云原生·容器·kubernetes