跳转至

CD 环境从零搭建指南

概述

本系列文档描述如何在单台服务器上从零搭建基于 K3s + ArgoCD 的 GitOps CD 环境,并与 GitLab CI 的 Auto-DevOps 模板集成,实现完整的应用持续交付流程。

目标架构

flowchart TD
    CI["GitLab CI\nCI 流水线"]
    REG["Container Registry\n镜像仓库"]
    GITOPS["GitOps 仓库\nHelm Charts"]
    ARGO["ArgoCD\nGitOps 控制器"]
    K8S["Kubernetes\nK3s"]
    APP["应用\nRunning Pod"]

    CI -->|"1. 代码构建 & 镜像推送"| REG
    CI -->|"2. 更新 image.tag"| GITOPS
    GITOPS -->|"3. 检测变更 / 自动同步"| ARGO
    ARGO -->|"4. Helm 渲染 → kubectl apply"| K8S
    K8S -->|"5. 运行"| APP

文档章节

章节 文件 内容
01 K3s 安装 安装 K3s 单节点集群
02 ArgoCD 安装 Helm 安装 ArgoCD
03 GitOps 仓库 创建 Helm Charts 仓库结构(单应用独立仓库)
04 ArgoCD 接入 ArgoCD 接入 GitOps 仓库
05 CI/CD 集成 GitLab CI 触发 CD 流程
06 多项目 GitOps 单仓库多项目管理与 CD 集成

GitOps 仓库架构选型

根据团队规模和项目组织方式,可选择以下两种仓库模式:

模式 参考章节 适用场景
单应用独立仓库
每个应用拥有独立的 GitOps 仓库
章 03~05 项目间独立部署、需要独立权限控制、跨团队协作
单仓库多项目
所有应用共享一个 GitOps 仓库,以文件夹区分
章 06 同一团队管理多个服务、希望统一治理

两种模式的核心 CD 逻辑完全相同,主要差异在于 GitOps 仓库结构和 ArgoCD Application 命名规则。

系统要求

项目 要求
操作系统 Debian 12 / Ubuntu 22.04+
CPU 4 核以上
内存 8 GB 以上
磁盘 50 GB 以上
网络 可访问互联网(拉取镜像)

端口说明

端口 用途
6443 K3s API Server
30080 ArgoCD Web UI (HTTP, NodePort)
30443 ArgoCD Web UI (HTTPS, NodePort)

注意事项

在 Proxmox VE 宿主机上部署 K3s 的限制

若 K3s 部署在 PVE 宿主机,而 GitLab/其他服务运行在 PVE 虚拟机上,Pod 网络无法直接访问 PVE 虚拟机 IP(受 PVE 网桥隔离)。解决方案见 04-argocd-gitops-integration.md