微众银行金融场景下容器运维平台架构介绍

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 微众银行容器运维系统架构介绍 金融场景下容器安全运维 刘乐 微众银行基础架构容器平台
3. 目录 • 微众银行容器化里程碑 • 微众银行安全运维系统架构及演进 • 微众银行安全运维系统和套件介绍 • 微众银行容器组件开源
4. 微众银行容器化里程碑 2018/10 容器项目启动 2020/09 中间件通用 Operator编排 网格 2019/12 上线容器安全 运维系统 2019/01 自研多IDC多 K8S集群 2019/02 测试环境接入 TKE服务 2020/03 全量容器化 2020/10 开源
5. 微众银行容器化规模 容器作为基础设施支撑业务快速发展 子系统 > 2000个 容器 > 3万个(含非业务容器) 资源池 > 10万核 > 20万G 节点 > 1500个 IDC 多个 K8S集群 多个 数据截至2020.12
6. 微众银行容器总体架构 生产系统 云原生服务 业务系统 基础中间件 DevOps Service Mesh Nginx/Redis/RocketMQ/TDS QL/TIDB 微服务技术栈(服务治理/微服务 /Tracing) 业务支持系统 AI/大数据 计算框架 (Spark/Flink) 深度学习 WCS API 监控服务 Kubernetes APIServer 集群路由 资源管理 TOR高可用 日志归档 调度策略 应用画像 镜像仓库 容量规划 Operator IPAMD 弹性 伸缩 CRI CSI Docker WeCNI Containerd IDC OS 机房 WCS容器 管理平台 存储 DCN 机房 运维服务 HTTPDNS 负载均衡 Kubelet 虚拟机 ETCD集群 云原生应用 管理引擎 Agent集群 CVM VPC DNS OpenStack 网络 安全服务 机房 公有云
7. 为什么需要安全运维? Kubernetes 用户 • 容器资源限制严格,危险操作 容易OOM • 原生K8SAPI无安全限制 • 希望支持类似虚机的操作体验 • 容器Bash操作无法监管 • 无法接入内部组件,例如 CMDB等 • 摒弃Kubernetes理念 • 便捷操作 审计 • 金融场景监管要求 • 所有命令都支持审查 • 针对非安全命令支持拦截、禁 止执行 • 支持回溯和重放 • 接入内部安全模块
8. 微众银行在容器安全运维的探索 初期通过kubectl进行运维: 部门1 Pod Pod kubectl • 通过kubectl操作容器 • 证书文件散落在各个部门 Pod 部门2 部门3 • 通过脚本包装kubectl实现批量 kubectl … 部门8 • 通过RBAC控制命名空间和资源 操作权限 Node-1 Node-2 Pod Pod ETCD Pod
9. 微众银行在容器安全运维的探索 基于client-go开发: 跳板机 • 使用虚拟Bash环境 http CI/CD • 增加命令执行白名单 • 接口支持批量 测试平台 • 收敛容器操作入口 • 集成内部工具,比如CMDB、发 布平台等 • 支持IP白名单限制 • 接入安全审计 … websocket 批量 安 全 运 维 系 统 接 入 层 虚拟terminal IP白名单 命令白名单 协议转换 Pod Pod Node-1 Pod CMDB 安全审计 Pod spdy • 多集群支持 Node-1 多集群管理 Pod List/watch ETCD Pod
10. 微众银行在容器安全运维的探索 增加多种高可用机制,解耦,优化 请求链路: Node 跳板机 Daemonset Bash协议解析 运维Agent spdy • 接入UM账号校验,实现实名登录 容器 http CI/CD • 真实Bash环境下命令拦截 • Pod操作实现分组隔离 测试平台 • Exec去除APIServer依赖 • 精简调用链路 … • 接入HTTPDNS实现故障自动隔离 • Exec 支持root操作 websocket 批量 安 全 运 维 系 统 接 入 层 IP白名单 docker api 命令白名单 Docker CMDB unix-socket 安全审计 Container List 协议转换 Container Container UM HTTPDNS List/watch APIServer ETCD
11. 微众银行安全运维系统架构 接入层 客 户 端 容器运 维安全 平台 服 务 端 跳板机 CI/CD 批处理 应用监控 测试平台 安全SSH 批量 容器Debug SCP POD/NODE 容器查询 Debug Exec 日志 HTTPDNS UM 命令/脚本解 析 Websocket/SP DY协议转换 IP白名单 命令白名单 安全审计 账户隔离 证书管理 SSH协议解析 批量 Kubernetes集群 其他依赖 Kubelet 依赖服务 Agent 业务容器 CMDB 高可用资源 计算 REDIS HTTPDNS Harbor UM APIServer
12. Pod操作权限隔离 内部UM系统实现权限隔离 RBAC • Kubernetes本身并不支持以 Pod为粒度的安全控制 • 基于RBAC只能实现命名空间 隔离,资源操作的隔离。 • 无法接入内部权限管理等系统 角色绑定 User Manager(UM) 角色绑定 RoleBinding/ClusterRoleBinding 角色 Role/ClusterRole 主体 User/Group/Servi ce Account 分组 Group1/Group2 容器实例 Instance 规则 Role 资源 Pod/Node/NS… 子系统 Developer/Tester 操作 Get/List/Watch 资源 Pod 操作 Exec
13. Exec命令执行解析与拦截 BinaryCmd ps –ef|grep app|tail -1000 普通Exec命令校验 Op Pipe Stmt-X • 复杂命令解析 Stmt-Y • 命令校验 • 参数校验 Op Pipe Stmt-X CallExpr tail -10 Stmt-Y • 命令拦截、参数拦截 CallExpr ps -ef Word ps CallExpr grep app Word -ef Word grep Word tail Word -1000 tail不允 许执行 1000行超 过限制 Word app
14. 虚拟SSH Terminal 安全运维系统客户端 • 提供接近SSH的使用体验 模拟Terminal 环境 执行Exec请求 Kubernetes 命令解析 exec exec 命令黑白名单 • 实名登录 • 支持白名单命令拦截 上下文管理 • 支持容器跳板机功能 Stdin/Stdout 协议转换 协议转换 • 模拟SSH运行时环境 安全运维系统服务端 Pod exec kubelet Pod
15. 安全SSH Terminal • 多种进入方式,支持IP/PodName • 解析SSH返回内容,在SSH环境下拦截 用户输入 • 在禁止运行情况下给出相关提示 • 多重命令限制模式:黑名单/白名单 • 支持快捷键(tab补全、Ctrl+A等) • 上下文管理 安全运维系统服务端 Stdin 命令解析 命令黑白名单 Node exec 运维Agent 协议转换 协议转换 SSH内容解析 执行/bin/bash 请求 Stdout docker exec Docker unix-socket 拦截处理 Container 上下文管理
16. 文件SCP Node Daemonset 1. 安全漏洞:kubectl cp命令发现安全 问题(CVE-2019-1002101) 2. 占用APIServer带宽 3. 提示不友好,缺少进度显示 4. 流式文件操作,不支持端点续传,大文 件操作不友好 5. 不支持文件大小限制 客 户 端 http 安 全 运 维 系 统 接 入 层 spdy 文件大小限制 运维Agent http Redirect 挂载相同宿 主机目录 数据分片计算 Containers Container
17. Pod 排障诊断 1.业务容器可以保持最小化 2. 通过启动新的container加入到Pod的 3. 丰富排错工具(tcpdump/net-tools) 4. 即插即用,无需重启容器 5. 支持前置命令修改复制Pod Node 安全运维系统 spdy 协议转换 容器定位 运维Agent 镜像下载 创建debug容器 命名空间管理 存活性检查 websocket wcsctl debug ip /bin/bash 执行/bin/bash Docker Container docker pull Harbor
18. Debug排错镜像 1. 轻便,基于alpine打造 2. 丰富应用,预装多重排错工具 3. 与debug工具协同工作
19. 开源(Dockin) Ø Open Source Ø Plan To Open Source • 容器安全运维套件: • 容器管理台:支持批量部署节点、快速容器扩缩容、 https://github.com/WeBankFinTech/Dockin-Ops • Dockin 容器项目资源管理器: https://github.com/WeBankFinTech/Dockin-RM • 离线Kubernetes集群安装器(Dockin-Installer) Dockin 平台安装器: https://github.com/WeBankFinTech/Dockin-Installer 迁移、多agent管理; • 通用中间件Operator编排系统:快速部署一套中间件 系统集群,支持扩缩容、主动启停等功能; 加入“Dockin 开源社区” 关注 “微众开源” • 多网卡、固定IP CNI插件: https://github.com/WeBankFinTech/Dockin-CNI 请发送“Dockin+城市+姓名/公司” 了解更多开源动态
20. A B Artificial Intelligence 人工智能 Blockchain 区块链 Ø 联邦学习系统 数据治理通用组件 分布式计算和 储存引擎 分布式身份 C 智能合约 库 智能合约编译插件 Ø Ø 分布式消息协作 多方协作治理组件 隐私保护 通用跨链 一键式应用开发 可信预言机 智能合约 中间件平台 Cloud Computing 云计算 牵头研发的区块链底层开源平台 分布式金融级消费总线 分布式架构管理框架 配置管理服务系统 Dockin 私有云的容器平台 分布式监控系统 云原生事件基础设施 其它 一站式金融App 开发运营套件 微 众 银 银 行 行 微众 开 源 布 局 D Big Data 大数据 大数据平台 开源布局 一站式数据应用开发门户 数据开发探索 Fes.js 前端应用框架 WXA 小程序开发框架 任务调度系统 数据可视化 数据交互 数据质量校验 机器人学习平台 计算中间件 应用开发管理系统
21.

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.125.1. UTC+08:00, 2024-05-13 01:49
浙ICP备14020137号-1 $访客地图$