←
返回首页
🏢 企业级K8s镜像流转完整架构
展示研发内网代码到生产环境的完整隔离架构,包含Harbor仓库、ArgoCD配置管理等真实企业场景
🔒
研发内网区
📝
GitLab (内网)
• 源代码仓库(核心资产)
• 分支管理与代码审查
• 不直接暴露到外网
🔨
CI构建服务器
• GitLab Runner集群
• Docker构建环境
• 代码质量扫描(SonarQube)
• 安全漏洞扫描(Trivy)
🧪
内网测试环境
• 开发自测环境
• 单元测试/集成测试
• 快速验证迭代
🌐
DMZ隔离区
🏗️
Harbor企业仓库
• 镜像存储中心
• 多项目隔离(dev/test/prod)
• 镜像签名与安全扫描
• 访问权限控制
🚪
安全网关
• 单向数据传输通道
• 仅允许内网推送镜像
• 审计日志记录
• 防火墙规则控制
📊
镜像管理平台
• 版本管理与标签策略
• 镜像晋级流程
• 清理策略与配额管理
☁️
生产运维区
📦
配置仓库(GitOps)
• K8s YAML配置文件
• Helm Charts模板
• 环境变量与Secret管理
• 版本控制与回滚
🔄
ArgoCD
• GitOps控制器
• 监听配置仓库变更
• 自动/手动同步策略
• 多集群管理
☸️
K8s集群
• 测试集群(自动部署)
• 预发布集群(手动审批)
• 生产集群(严格审批)
• 灾备集群(主备切换)
🔐 网络隔离边界
📋 镜像流转完整步骤
1
代码提交
研发在内网GitLab提交代码,触发CI/CD流水线
git push origin feature/new-api
# 触发 .gitlab-ci.yml 定义的流水线
2
构建镜像
CI服务器拉取代码,执行构建、测试、扫描
编译打包
单元测试
安全扫描
3
推送Harbor
通过安全通道将镜像推送到DMZ区Harbor仓库
docker push harbor.company.com/project/app:v1.2.3
# 通过专用网络隧道推送
4
更新配置
运维更新配置仓库中的镜像版本信息
# deployment.yaml
image: harbor.company.com/project/app:v1.2.3
5
ArgoCD同步
ArgoCD检测配置变更,从Harbor拉取镜像部署
测试环境-自动
预发布-手动
生产-审批
6
生产运行
容器在K8s集群中运行,配合监控、日志、告警系统
• Prometheus监控
• ELK日志收集
• 自动扩缩容
👨💻
研发团队职责
✅
代码开发与版本管理
✅
编写Dockerfile和CI/CD配置
✅
单元测试和代码质量
✅
内网环境自测验证
❌
不接触生产配置和环境
🔧
运维团队职责
✅
管理K8s配置仓库
✅
控制镜像版本发布
✅
生产环境部署审批
✅
监控告警和故障处理
✅
容量规划和性能优化
💡
关键架构设计要点
🔐
代码隔离:
源代码仓库位于内网,不直接暴露,通过CI构建后仅推送镜像到Harbor
🔄
配置分离:
运维维护独立的配置仓库,ArgoCD监听此仓库而非代码仓库
🚪
单向通道:
内网到Harbor的推送通过专用安全通道,仅允许单向推送
✅
版本控制:
通过修改配置仓库中的镜像标签来控制部署版本
🔍
审计追踪:
所有操作都有日志记录,可追溯每次部署的操作者和时间
🛡️
多重防护:
镜像扫描、签名验证、RBAC权限控制等多层安全机制
📝 实际配置示例
ArgoCD Application配置(运维配置仓库)
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp-production
namespace: argocd
spec:
project: production
source:
repoURL: https://git.ops.company.com/k8s-configs
# 运维配置仓库
targetRevision: main
path: apps/myapp/production
destination:
server: https://kubernetes.default.svc
namespace: myapp-prod
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
prune: false
# 生产环境不自动删除
selfHeal: false
# 生产环境不自动修复
Deployment配置(指定镜像版本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
namespace: myapp-prod
spec:
replicas: 3
template:
spec:
containers:
- name: myapp
image: harbor.company.com/prod/myapp:v1.2.3
# 运维控制版本
imagePullPolicy: Always
imagePullSecrets:
- name: harbor-secret
# Harbor认证凭据
🏭 生产环境必要组件
监控系统
• Prometheus + Grafana
• 应用指标收集
• 自定义告警规则
日志系统
• ELK/EFK Stack
• 集中日志管理
• 日志分析检索
服务网格
• Istio/Linkerd
• 流量管理
• 链路追踪
备份恢复
• Velero备份
• 定期快照
• 灾难恢复
安全加固
• OPA策略引擎
• Falco运行时保护
• NetworkPolicy
🎯 流程演示
点击按钮查看不同阶段的详细流程
研发阶段
构建阶段
部署阶段
运维阶段
选择一个阶段查看详细流程...