返回首页

🏢 企业级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

🎯 流程演示

点击按钮查看不同阶段的详细流程

选择一个阶段查看详细流程...