基于K3s搭建GitOps环境
系列文章目录
本文是基于K3s搭建GitOps环境的系列文章总览,包含完整的组件规划和部署路线图。本系列旨在帮助您在K3s轻量级Kubernetes集群上构建完整的GitOps环境,实现从代码到部署的自动化流水线。
基础环境篇
- 基于K3s搭建GitOps环境1-K3s安装 - K3s集群部署与基础配置
- 基于K3s搭建GitOps环境2-配置Traefik - Traefik反向代理配置
- 基于K3s搭建GitOps环境3-配置内网域名 - CoreDNS内网域名解析
- 基于K3s搭建GitOps环境4-证书管理 - cert-manager证书管理
核心组件篇
- [[基于K3s搭建GitOps5-部署Gitea]] - 代码仓库部署
- [[基于K3s搭建GitOps6-部署ArgoCD]] - GitOps核心部署
- [[基于K3s搭建GitOps7-部署Tekton]] - CI流水线部署
- [[基于K3s搭建GitOps8-部署Harbor]] - 镜像仓库部署
GitOps环境架构
1 |
|
组件规划
开放端口
| 端口 | 用途 | 说明 |
|---|---|---|
| 53 | CoreDNS服务 | 内网域名解析 |
| 443, 80 | Traefik入口 | HTTPS/HTTP访问入口 |
| 5432/3306 | 数据库服务 | PostgreSQL/MySQL(二选一) |
| 6379 | Redis缓存 | 缓存服务 |
| 8022 | SSH管理 | 服务器管理端口 |
| 22 | Git SSH | git+ssh方式代码上传 |
域名规划(统一使用example.io)
| 组件 | 访问地址 | 说明 |
|---|---|---|
| Traefik Dashboard | https://traefik.example.io | 反向代理管理界面 |
| Harbor | https://harbor.example.io | 私有镜像仓库,支持镜像签名与安全扫描 |
| Gitea | https://gitea.example.io | 轻量级代码仓库 |
| Tekton | https://tekton.example.io | 云原生CI流水线 |
| ArgoCD | https://argocd.example.io | GitOps持续部署核心 |
| Notary | https://notary.example.io | 镜像签名服务(Harbor集成) |
部署路线图
第一阶段:基础环境搭建(1-4天)
- 第1天:部署K3s集群,配置存储和网络
- 第2天:配置Traefik反向代理,启用Dashboard
- 第3天:配置CoreDNS内网域名解析
- 第4天:部署cert-manager,配置证书管理
第二阶段:核心组件部署(5-8天)
- 第5天:部署Gitea代码仓库,配置数据库连接
- 第6天:部署ArgoCD,配置GitOps工作流
- 第7天:部署Tekton,配置CI流水线
- 第8天:部署Harbor,配置镜像仓库和安全扫描
第三阶段:集成与优化(9-10天)
- 第9天:组件间联动配置,打通完整流水线
- 第10天:生产环境优化,配置监控和告警
环境要求
硬件要求
- 最低配置:2核CPU,4GB内存,50GB存储
- 推荐配置:4核CPU,8GB内存,100GB存储
- 生产环境:根据业务规模弹性扩展
软件要求
- 操作系统:Ubuntu 20.04+ / CentOS 7+ / RHEL 8+
- 容器运行时:Containerd(K3s默认集成)
- 网络:内网互通,可访问外网(用于拉取镜像)
配置参考
所有组件的详细配置文件和部署脚本请参考:KubeTemplate-devops
该仓库包含:
- K3s集群部署脚本
- 各组件Helm Chart配置
- 示例应用部署文件
- 监控和日志配置
- 生产环境优化建议
注意事项
- 域名配置:所有示例域名使用
example.io,实际部署时请替换为您的域名 - 证书管理:生产环境建议使用Let’s Encrypt证书,内网环境可使用自签名证书
- 存储配置:K3s默认使用local-path存储类,生产环境建议配置持久化存储
- 安全加固:部署完成后请及时修改默认密码,配置网络策略
- 备份策略:定期备份数据库和持久化卷数据
常见问题
Q1: K3s与其他Kubernetes发行版有何区别?
A: K3s是轻量级Kubernetes发行版,专为边缘计算和资源受限环境设计,相比标准K8s:
- 安装包更小(约40MB)
- 内存占用更低
- 默认集成Containerd、Traefik、CoreDNS等组件
- 简化了配置和管理
Q2: GitOps与传统CI/CD有何不同?
A: GitOps的核心思想是”Git作为单一可信源”:
- 声明式配置:所有环境配置存储在Git仓库中
- 自动同步:集群状态自动与Git仓库中的期望状态同步
- 可追溯性:所有变更都有Git提交记录
- 一键回滚:通过Git版本控制实现快速回滚
Q3: 如何选择数据库?
A: 本系列支持两种数据库方案:
- PostgreSQL:功能丰富,适合复杂应用
- MySQL:轻量快速,适合简单场景
您可以根据实际需求选择一种,配置方法类似。