




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、容器云平台建设方案1容器云平台的演进稳定 & 效率23技术案有状态业务 & 如何应对DevOps 平台建设经验 & 体会容器云平台演进20102015物理机OpenStack + Docker2016Kubernetes + Docker2017传统的数据中心 机器分散管理运维、监控不完善 发布、扩容比较人肉多机房、多集群统一管理, 完善监控和自动化运维水平云管理平台上线有状态业务接入演进至 Kubernetes 方案 多机房多集群统一管理平台动态资源分配与运维、监控对接,镜像发布 接入有状态业务从零构建私有云平台多机房多集群统一管理平台VM 化,静态资源分配和运维、监控对接,逐步完善面向机器
2、的发布基于容器的 DevOps 项建设2018OpenStack时代OpenStacknova-dockerOVS(bond4)蘑 菇 街 监 控蘑 菇 街 运 维DevicemapperLinux 2.6.23Container Docker 1.3.2Container-tools基于 OpenStack + Docker 方案自研多集群统一管理平台 PlanckWebPortalPlanckKubernetes时代要引擎还是要汽车?优点:先进的理念、可 扩展性好、社区活跃缺点:自建成本高、仍 在高速演进中?适合的才是最好的!IaaSPaaSPrivate Container Servic
3、eBuild/Deploy Pipeline不仅仅是 PaaS !业务总体架构 户CephDocker RegistryCode Build应用基线APISLB软负载镜像管理集群管理权限管理服务发现测试 AZWeb PortalPodPod预发 AZPodPod生产 AZPodPod蘑 菇 街 监 控蘑 菇 街 运 维WebPortalCaptain提升稳定性硬件 故障软件 问题安全 漏洞人为 事故制定操作红线和规范 规范流程账号体系来自稳定性的挑战完善日志,进程等监控 建立日常值班制度故障演练,模拟硬件故 障,网络中断冗灾预案演练统一集群配置,并不断优化自动化定期健康巡检 完善性能压测核心数
4、据定期备份 完善自动化测试和安全团队紧密合作评估 安全漏洞的影响提升效率机器 的效率监控 效率人的 效率解决问题 效率系统问题定位排查指南 系统问题分析定位平台工具化,体系化 知识库沉淀多维度提升效率CPU内存动态扩缩容 动态资源申请统一资源池IM自动应答(宿主机信息查 询)Docker Pool 监控 容器 oom 监控TCP连接状态监控TCP重传率监控 pod迁移时的自动通知监控与告警devicemapper dockerpool使率监控$ cat /sys/fs/cgroup/memory/docker/ memory.oom_controloom_kill_disable 0under
5、_oom 01容器云平台的演进稳定 & 效率3DevOps 平台建设经验 & 体会2技术案有状态业务 & 如何应对版本演进的动机v3.10v4.4.95v1.10.3v1.13.1DevicemapperOverlayFSKernelDockerStorageOverlayFS,networknamespace和pid_max隔离Docker daemon 分离,支 持OverlayFS v2随机IO容易被放大, Storage pool 容易出现 磁盘超配,社区趋势更好的隔离性 & 更高的稳定性 & 更强的性能v2.6.32v1.3.2存储网络稳定性&可用性隔离性关键技术与创新基于 OVS自
6、研的mogunet多网段支持DeviceMapper - OverlayFSmount宿主机目录的配额调度基于磁盘类型调度基于业务资源亲和性调度高可用管理节点 HA有状态业务 Stateful Set 增强Kubernetes ClusterCPU Set 支持集群自身监控定期检查网络QoS异步IO隔离Cadvisortop hookPod驱逐策略Node ANode ControllerNode BPod APod A10.12.12.1110.12.12.11Pod A was evicted by NCNode ANotReadyNetwork loss connNode Control
7、ler EvictionKubelet EvictionBestEffort Burstable GuaranteedPod驱逐策略网络故障参考记一次 k8s 集群单点故障引发的血案Node ControllerNode ANode BNode A NotReady?Node B NotReady?有状态业务的挑战应用调用的依赖DNS等配置的依赖数据持久层的依赖客户端应用依赖于服务端 IP 地址不变客户端查询服务端有哪些实例服务中心返回IP列表1. 服务启动时,注册到服务中心4. 客户端选择一个IP并发起TCP连接服务中心Inst 1Inst N服务端Inst 1Inst N服务发现依赖于服务
8、实例的IP 地址不变IP1 IP2 IP3Node 010.1.15.0/24Flannel 网络方案FlannelNode 110.1.16.0/24Flannel 方案静态规划网络资源,每个物理节点独占一个C类网段。虽然简单易用,但缺点也很明显:容器跨物理机迁移时,IP一定会变化Overlay 带来的性能开销FlannelETCDVXLAN自研网络插件 mogunetVMBaremental统一网络管理方案:Neutron (OVS + VLAN)OrchestratorK8SMogunetNeutronOvs-agentContainer mogunetOrchestratorK8SMo
9、gunetNeutronOvs-agentCreatePodSetupPod CreatePort(name)Return(p, mac, gw)ReturnReturnSetupFlowsSetup peer vet基于 Neutron/OVS 自研 K8S 网络 插件,统一管理 container,VM, baremental 的网络资源分配。创建 Pod 的网络流程容器通过 veth 连到 OVS br-int 上,采用 VLAN 模型。兼具隔离 性和性能。OVS+VlanContainertapbr-intvlan 3vlan 3vlan 5br-100eth0eth1TORTORCo
10、ntainertapbr-intbr-100vlan 3Host AHost BOpenVSwtichOpenVSwticheth0eth1ContainerContainer 10.1.128.0/24taptap10.1.128.0/2410.1.15.0/2410.1.15.0/2410.1.129.0/24跨物理机迁移时容器 IP 保持不变Source1.容器创建时保持 port 和pod name 映射关系查询是否存在已有port如果存在,则重用IP并更新device_owner2.Stateful Set在迁移过程中保持 pod name不变。宿主机故障时, neutron por
11、t 和 ip 正常保留Destinationpod0Neutronport:ns-pod0 ip:10.13.234.10device_owner=node0pod0nsns指定IP删除podstatefulset只支持按序删除实例,不能满足所有业务场景。业务有状态依赖关系,或当某些实例出现业务逻辑问题时,需要销毁。指定IP删除podreplicas=3 name=appname=appapp-0name=appapp-1name=appapp-2Statefulset不支持删除某个pod指定IP删除podreplicas=3 name=appname=app app-1=deletedapp
12、-0name=appapp-1name=app app-1=deletedapp-2Step 1. 添加一个app-1=deleted的labelStep 2. 更新statefulset controller,也添加app1=deleted这个label,同时将replicas数量减1replicas=2 name=app app-1=deleted指定IP删除podreplicas=3 name=appname=app app-1=deletedapp-0name=appapp-1name=app app-1=deletedapp-2Step 3. 通过删除pod接口,将app-1这个po
13、d删除replicas=2 name=app app-1=deleted指定IP删除podname=appapp-0name=appapp-2Step 4. 将app-1=deleted这个label清除掉replicas=2 name=appBlock Layer / IO Scheduler / DriverDiskPage Cache容器间异步 IO 隔离增强Write存在什么问题?WritebackKernelUserCgroupDockerDockerDockerLinux Kernel (Writeback 线程)writeback线程无法区分脏数据是 由哪个容器产生,无法做到隔离
14、Cgroup V1 or V2 ? 皆不尽完美!Direct IOVFSXFSBuffer IOContainerContainerBlock Layer / IO Scheduler / DriverDiskPage CacheOverlayFSOverlayFS基于 OverlayFS的异步 IO 限速Direct IOXFSBuffer IO每个容器有独立的 OverlayFSVFSContainer.容器间异步 IO 隔离total 100 iopsDocker200 iopsDocker40 iopsDocker10 iops75 iops20 iopsDisk5 iops优化前Ap
15、p1App2App3unhappy异步IO超出实 际能力unhappy优化后total 100 iopsDocker200 iopsDocker40 iopsDocker10 iops40 iops10 iopsApp1App2App340 iopsDisk限制了40iopshappyhappy1容器云平台的演进稳定 & 效率23技术案有状态业务 & 如何应对DevOps 平台建设经验 & 体会DevOps平台建设集成测试单元测试代码仓库代码Review 平台ReviewCommitBuildRelease发布系统应用缩容生命周期管理创建删除扩容升级回滚基础信息基线运 行 维 护监控日志多集群管理服务发现短时任务负载均衡镜像管理资源池 & 资源调度DevOps 平台测试线上镜像管理基础软件包(OS,系统配置)权限 控制基础语言环境(Java, Go)应用依赖应用IMAGE标准化的镜像分层方案测试机房Registry线上机房Registry 跨机房镜像 实时定向同步镜像管理自动化生成Dockerfile统一的镜像管理方案服务发现与健康检查Kube-apiserverService(endpoints)NginxSLBapiVersion: v1 kind: Service metadata:name: demeter labels:nam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全注射试题及答案大全
- 安全员b考试试题及答案
- 2025年零售行业新零售门店设计与顾客行为研究报告
- 聚焦2025:工业互联网平台区块链智能合约安全防护与合规性审查报告001
- 安全工程师试题及答案
- 工业互联网平台传感器网络自组网技术在智能仓储中的应用案例分析报告001
- 2025年大数据存储市场规模增长与技术创新分析报告
- 隐私保护培训课件内容
- 配电装置培训课件
- 创极地培训课课件
- 代加工食品协议范本2024年
- 阿米巴经营模式协议书模板
- 江苏省盱眙县2024届八年级英语第二学期期末质量检测试题含答案
- 结婚函调报告表
- 浙江省杭州市滨江区2023-2024学年八年级下学期期末科学试题(原卷版)
- 陕西延长石油集团有限责任公司招聘笔试题库
- 【许林芳老师】-《企业文化构建与落地》
- 2024年辽宁省中考地理试题(无答案)
- 湖北省荆门市2023-2024学年七年级下学期6月期末考试生物试题
- 广东省广州市越秀区执信中学2025届高一下数学期末教学质量检测模拟试题含解析
- 水资源利用与保护智慧树知到期末考试答案章节答案2024年山东建筑大学
评论
0/150
提交评论