新闻详情

新闻详情

首页 / 资讯中心 / 详情

ArgoCD离线安装

发布时间:2026/9/30 9:13:15来源:尧图网络
ArgoCD离线安装
文章目录一、引言二、Harbor仓库安装部署可选三、Kubernetes集群安装3.1 下载文件3.2 离线安装3.3 验证安装3.4 配置kubectl命令四、ArgoCD安装部署4.1 获取Helm Chart4.2 拉取镜像4.2.1 拉取和加载镜像4.2.2 上传Harbor私有仓库可选4.3 修改values文件4.3.1 修改镜像源可选4.3.2 配置“非安全模式”4.4 配置K3s4.5 安装ArgoCD4.6 验证安装4.6.1 验证Pod状态4.6.2 访问Web UI4.6.3 修改values文件可选4.7 创建Secret五、总结一、引言在云原生与容器化应用快速普及的背景下KubernetesK8s已成为容器编排与集群管理的事实标准。它通过声明式API和控制器机制为容器化工作负载提供自动部署、服务发现、负载均衡、弹性伸缩、故障自愈和滚动更新等能力。生产环境中应用通常以Kubernetes集群的方式运行从而统一管理计算、存储、网络资源并提升系统的可移植性、可靠性与资源利用率。当Kubernetes集群就绪后如何高效、可靠、可追溯地交付应用成为关键问题。ArgoCD是面向Kubernetes的声明式GitOps持续交付工具其核心思想是以Git仓库作为应用期望状态的唯一事实源持续比较Git中的声明与集群实际状态并自动或手动将集群同步到期望状态。借助ArgoCD可以实现应用部署的版本化、可审计、可回滚和多环境一致性减少手工操作带来的配置漂移和发布风险。本文面向企业内网离线部署场景先以K3s为例介绍Kubernetes集群的离线安装再基于Harbor私有仓库介绍ArgoCD的Helm Chart离线部署为后续构建基于GitOps的持续交付体系奠定基础。二、Harbor仓库安装部署可选若希望构建GitOps持续交付体系建议首先安装Harbor私有仓库相关安装及部署方法可参考此教程。三、Kubernetes集群安装本章以较为轻量化的K3s集群为例介绍离线安装K3s方法。3.1 下载文件首先设定要安装的 K3s 版本号。可以访问官方Release页面查看版本号或者直接使用如下命令获取最新稳定版本exportK3S_VERSION$(curl-shttps://update.k3s.io/v1-release/channels|jq-r.data[] | select(.id stable) | .latest)然后使用以下命令依次下载K3s二进制文件、离线镜像包以及安装脚本或者从官方Release页面手动下载# 下载K3s二进制文件依据部署服务器架构选择curl-LOhttps://github.com/k3s-io/k3s/releases/download/${K3S_VERSION}/k3s_binary# AMD64架构# 下载离线镜像包依据部署服务器架构选择curl-LOhttps://github.com/k3s-io/k3s/releases/download/${K3S_VERSION}/k3s_image_package# AMD64架构# 下载安装脚本curl-Loinstall.sh https://get.k3s.io其中k3s_binary替换为k3sAMD64架构或k3s-arm64ARM64架构k3s_image_package替换为k3s-airgap-images-amd64.tar.zstAMD64架构或k3s-airgap-images-arm64.tar.zstARM64架构。完成此步骤后当前目录下应包含k3s_binary、k3s_image_package以及install.sh。3.2 离线安装在部署服务器上依次将二进制文件k3s-arm64和镜像包k3s-airgap-images-arm64.tar.zst存放至指定位置然后执行安装脚本install.sh# 将二进制文件安装到系统路径并重命名为k3ssudoinstall-oroot-groot-m0755k3s_binary/usr/local/bin/k3s# 创建镜像存放目录sudomkdir-p/var/lib/rancher/k3s/agent/images/# 拷贝离线镜像包实现镜像本地拉取sudocpk3s_image_package/var/lib/rancher/k3s/agent/images/# 赋予安装脚本执行权限chmodx install.sh# 设置环境变量并执行安装脚本INSTALL_K3S_SKIP_DOWNLOADtruesudo-E./install.sh3.3 验证安装安装完成后稍等片刻然后检查K3s服务状态和节点情况。# 检查 K3s 服务状态sudosystemctl status k3s# 检查集群节点 (可能需要等待几十秒让节点就绪)sudok3s kubectl get nodes-Lkubernetes.io/archkubectl get nodes的输出中kubernetes.io/arch列应该显示为amd64AMD64架构或arm64ARM64架构并且节点状态为Ready。3.4 配置kubectl命令K3s安装后其kubeconfig文件位于/etc/rancher/k3s/k3s.yaml。需要将其复制到~/.kube/config并修改权限才能直接使用kubectl命令mkdir-p~/.kubesudocp/etc/rancher/k3s/k3s.yaml ~/.kube/configsudochown$(id-u):$(id-g)~/.kube/configchmod600~/.kube/config四、ArgoCD安装部署离线安装ArgoCD流程较为繁琐本章介绍使用Helm Chart离线安装ArgoCD方法。4.1 获取Helm Chart获取ArgoCD的最新Chart版本号并从官方Helm仓库下载相应Chart包以10.9.0版本为例# 添加ArgoCD的Helm仓库helm repoaddargo https://argoproj.github.io/argo-helm# 更新仓库索引确保获取最新版本列表helm repo update# 列出 argo-cd 的所有可用 Chart 版本按版本号降序其中CHART VERSION即为Argo CD的Chart版本号helm search repo argo/argo-cd--versions|head-10# 下载指定版本的Chart包例如10.9.0helm pull argo/argo-cd--version10.9.0执行后会得到一个argo-cd-10.9.0.tgz文件解压得到argo-cd文件夹其中包含使用Helm Chart安装ArgoCD所需的Chart.yaml和values.yaml等文件。4.2 拉取镜像ArgoCD依赖几个核心镜像。需要参考官方Chart的values.yaml来获取准确的镜像列表和版本通常主要包含以下镜像ArgoCD核心组件quay.io/argoproj/argocdDex用于认证ghcr.io/dexidp/dexRedis用于缓存ecr-public.aws.com/docker/library/redis4.2.1 拉取和加载镜像使用如下命令查看所需镜像及版本号helm template argocd ./argo-cd-10.9.0.tgz--namespaceargocd|grep-Eimage:|sort-u拉取并保存所需镜像包# 拉取并保存ArgoCD核心镜像dockerpull quay.io/argoproj/argocd:v3.5.2dockersave quay.io/argoproj/argocd:v3.5.2-oargocd.tar# 拉取并保存Dex镜像dockerpull ghcr.io/dexidp/dex:v2.45.1dockersave ghcr.io/dexidp/dex:v2.45.1-odex.tar# 拉取并保存Redis镜像dockerpull ecr-public.aws.com/docker/library/redis:8.6.4-alpinedockersave ecr-public.aws.com/docker/library/redis:8.6.4-alpine-oredis.tar在部署服务器上加载镜像dockerload-iargocd.tardockerload-idex.tardockerload-iredis.tar4.2.2 上传Harbor私有仓库可选若已安装Harbor建议将镜像上传至Harbor统一管理。例如存放至gitops仓库exportHARBOR_HOSTharbor_hostexportHARBOR_PROJECTgitops# 将镜像标记为Harbor规范格式harbor_host/harbor_project/image_name:image_tagdockertag quay.io/argoproj/argocd:v3.5.2$HARBOR_HOST/$HARBOR_PROJECT/argocd:v3.5.2dockertag ghcr.io/dexidp/dex:v2.45.1$HARBOR_HOST/$HARBOR_PROJECT/dex:v2.45.1dockertag ecr-public.aws.com/docker/library/redis:8.6.4-alpine$HARBOR_HOST/$HARBOR_PROJECT/redis:8.6.4-alpine# 推送至Harbor仓库dockerlogin$HARBOR_HOSTdockerpush$HARBOR_HOST/$HARBOR_PROJECT/argocd:v3.5.2dockerpush$HARBOR_HOST/$HARBOR_PROJECT/dex:v2.45.1dockerpush$HARBOR_HOST/$HARBOR_PROJECT/redis:8.6.4-alpine4.3 修改values文件创建一个自定义的argocd-values.yaml文件用于替换默认的values.yaml配置。4.3.1 修改镜像源可选若希望使用Harbor统一管理镜像需要将argocd-values.yaml文件中的所有镜像源由外网指向本地Harbor仓库# 复制创建argocd-values.yaml文件cpvalues.yaml argocd-values.yaml# 批量替换镜像地址根据实际情况调整路径sed-is|quay.io/argoproj/argocd|$HARBOR_HOST/$HARBOR_PROJECT/argocd|gargocd-values.yamlsed-is|ghcr.io/dexidp/dex|$HARBOR_HOST/$HARBOR_PROJECT/dex|gargocd-values.yamlsed-is|ecr-public.aws.com/docker/library/redis|$HARBOR_HOST/$HARBOR_PROJECT/redis|gargocd-values.yaml或者也可以手动修改镜像源。在argocd-values.yaml文件中依次搜索quay.io/argoproj/argocd、ghcr.io/dexidp/dex、ecr-public.aws.com/docker/library/redis其中镜像源应替换为实际路径可通过如下命令获取helm template argocd ./argo-cd-10.9.0.tgz--namespaceargocd|grep-Eimage:|sort-u将搜索到的外网镜像源手动替换为本地Harbor仓库路径。4.3.2 配置“非安全模式”ArgoCD Server默认使用HTTPS若要修改为HTTP内网环境下通常采用HTTP需在argocd-values.yaml文件中添加以下“非安全模式”配置configs:params:server.insecure:true4.4 配置K3sK3s的containerd默认使用HTTPS访问Harbor因此如果Harbor使用HTTP协议就需要对K3s进行配置。首先创建配置文件registries.yamlsudomkdir-p/etc/rancher/k3ssudotee/etc/rancher/k3s/registries.yaml/dev/nullEOF mirrors: harbor_host: endpoint: - http://harbor_host configs: harbor_host: auth: username: harbor_username password: harbor_password tls: insecure_skip_verify: true EOF其中harbor_username建议使用Harbor中gitops项目的机器人账户并赋予该机器人镜像拉取和推送权限。创建配置文件后重启K3s并验证# 重启K3ssudosystemctl restart k3s# 确认containerd配置中已包含Harbor仓库sudocat/var/lib/rancher/k3s/agent/etc/containerd/config.toml|grep-A15harbor_host4.5 安装ArgoCD修改完成后即可使用自定义的argocd-values.yaml文件来安装ArgoCD。将argocd-values.yaml和之前下载的Chart包放在同一目录下执行# 创建命名空间kubectl create namespace argocd# 使用Helm安装helm upgrade--installargocd ./argo-cd-10.9.0.tgz--namespaceargocd--valuesargocd-values.yaml--wait等待安装完成。--wait参数会确保所有资源就绪后再返回。4.6 验证安装4.6.1 验证Pod状态查看所有Pod是否Runningkubectl get pods-nargocd4.6.2 访问Web UI获取初始密码并访问UI# 获取admin初始密码kubectl-nargocd get secret argocd-initial-admin-secret-ojsonpath{.data.password}|base64-decho# 临时端口转发访问UIHTTP模式kubectl port-forward svc/argocd-server-nargocdargocd_port:80--address0.0.0.0然后在浏览器中访问argocd_hostname:argocd_port使用用户名admin和初始密码登录其中argocd_hostname为ArgoCD部署服务器地址。提示如果遇到“无法显示网页”问题可能是未配置“非安全模式”导致。由于ArgoCD Server默认使用HTTPS当使用HTTP协议访问时会提示“无法显示网页”。4.6.3 修改values文件可选如果Pod状态有问题或UI无法访问可能需要修改argocd-values.yaml文件如修改镜像源、配置“非安全模式”等vimargocd-values.yaml按需修改完成后使用如下命令更新argocd-cmd-params-cmConfigMap并重启argocd-serverPodhelm upgrade argocd ./argo-cd-10.9.0.tgz--namespaceargocd--valuesargocd-values.yaml--wait4.7 创建Secret确认ArgoCD安装完成后还需要配置ArgoCD从Harbor拉取业务仓库的Chart镜像。首先创建Kubernetes Secret 。创建一个harbor-repo-secret.yaml文件sudoteeharbor-repo-secret.yaml/dev/nullEOF apiVersion: v1 kind: Secret metadata: name: harbor-charts-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository type: Opaque stringData: enableOCI: true insecureOCIForceHttp: true name: harbor-charts type: helm url: harbor_host/harbor_project/charts username: harbor_username password: harbor_password EOF其中harbor_username建议使用harbor_project项目的机器人账户并赋予该机器人镜像拉取和推送权限。执行如下命令以创建Secretkubectl apply-fharbor-repo-secret.yaml创建完成后检查Secret是否存在且状态正常kubectl get secret-nargocd|grepharbor创建Secret成功后可删除harbor-repo-secret.yaml文件避免明文存储Harbor账户密码。五、总结本文面向企业内网离线部署场景介绍了基于K3s的轻量级Kubernetes集群安装方法以及基于Helm Chart和Harbor私有仓库的ArgoCD离线部署流程。通过预先下载K3s二进制文件、离线镜像包和安装脚本并借助Harbor统一管理容器镜像与Helm Chart可以在无法访问公网的环境中完成集群与持续交付工具的部署。整体流程为构建基于GitOps的Kubernetes持续交付体系奠定了基础。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

PyTorch模型压缩三支柱:量化、剪枝与知识蒸馏工程实践 2026/9/30 10:10:11

PyTorch模型压缩三支柱:量化、剪枝与知识蒸馏工程实践

1. 项目概述:这不是一个“一键优化”的魔法按钮,而是一套面向生产环境的模型瘦身工程方法论 “Model-Optimizer”这个名字听起来像某个商业软件的界面按钮,但实际它代表的是一整套在真实业务场景中反复锤炼出来的模型压缩落地流程。我过去三年…

阅读更多 →
PyTorch模型转ONNX精度下降?四大原因与排查优化指南 2026/9/30 10:10:09

PyTorch模型转ONNX精度下降?四大原因与排查优化指南

身边搞模型部署的同事,十有八九都遇到过这种事:PyTorch里明明跑得稳稳当当的模型,导出成ONNX后精度就像被偷偷削了一刀。轻则差百分之零点几,反正就是不对劲;重则直接整个模型崩掉,输出全是垃圾。好消息是&…

阅读更多 →
CLE-TFE:图增强与监督对比学习驱动的加密流量分类框架 2026/9/30 10:10:09

CLE-TFE:图增强与监督对比学习驱动的加密流量分类框架

简介:面向机器学习与网络安全方向的科研人员及工程师,这份关于CLE-TFE加密流量分类框架的复现资料提供了详细可运行代码及解释。框架以监督对比学习和多任务学习为核心,同时处理数据包级与流级分类任务,并通过字节级流量图增强捕获…

阅读更多 →
PyTorch转ONNX精度下降详解:算子、预处理与量化的排坑指南 2026/9/30 10:10:09

PyTorch转ONNX精度下降详解:算子、预处理与量化的排坑指南

把PyTorch模型转成ONNX,再拿到ONNX Runtime或者各个端侧框架上推理,已经成了模型上线的标配流程。但很多人第一次做转换的时候都会遇到一个让人抓狂的问题:PyTorch里测着好好的模型,导出成ONNX之后,精度明显下降&#…

阅读更多 →
基于 JSP 的服装商城交易管理系统设计与实现 2026/9/30 10:10:08

基于 JSP 的服装商城交易管理系统设计与实现

简介:基于JSP的服装商城交易管理系统设计与实现答辩PPT,面向计算机专业毕业生和需要展示系统设计方案的开发者,用于讲解选题背景、需求分析、技术选型与系统设计思路。内容涵盖网上服装销售的B2C模式、系统前后台功能划分、JSP/Servlet与数据…

阅读更多 →
MCP协议打通OA/ERP:Agent生产落地的关键系统集成经验 2026/9/30 10:09:55

MCP协议打通OA/ERP:Agent生产落地的关键系统集成经验

上半年我们组在搞一个 Agent 项目,目标是让员工直接用自然语言跟公司现有的 OA、ERP 打交道。模型选型、提示词优化、RAG 检索,前后折腾了一个多月,大家一度觉得难点全在模型身上。结果一上生产,问题直接换了个画风:真…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉