逐灵&木苏-阿里巴巴 K8S 超大规模实践经验阿里云云原生应用平台 阿里巴巴 k8s 超大规模实践 关注“阿里巴巴云原生”公众号 回复 1124 获取 PPT自我介绍 •曾凡松(逐灵),当前主要负责 k8s 在阿里巴巴场景中的规模化落地,将 k8s 应用于阿里最核心的业务,帮助客 户以云原生的方式管理应用并获得效率、 稳定性及成本的改善。 •汪萌海(木苏),经历了阿里巴巴集团 集群调度从自研 sigma 系统迁移到 k8s 体系的过程,目前主要负责解决阿 体系的过程,目前主要负责解决阿 里巴巴集团在大规模场景下使用 k8s 碰到的稳定性、容器编排质量和性能问 题。❖ 阿里巴巴容器的发展历程 ❖ 基于 k8s 云原生改造实践 ❖ k8s 规模及性能优化实践 ❖ 云原生应用管理演进路线 主要内容阿里巴巴容器的发展历程 2013 初步探索 使用容器的方式替换传统使用 VM 部署应用的,基于 lxc 自研 了 t4 容器并构建了 AI 集团管理 系统 统,并构建了集团统一资源池, 在此基础上发展出弹性、混部等 技术成果,大幅降低了数据中心 的资源成本 2019 全面拥抱云原生 阿里业务全面上云,运维体系全 面拥抱云原生,基于 k8s 生态在 阿里内部蓬勃发展。在 2019 双 11 中,k8s 体系支撑了阿里史上 规模最大的集群,并提供了极速 的应用扩容体验 2015 野蛮生长 体验到使用容器部署应用的优势 后,阿里内部发展出众多的运维 平台,包括0 码力 | 33 页 | 8.67 MB | 6 月前3
腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明TKE使用eBPF优化 k8s service Jianmingfan 腾讯云 目录 01 Service的现状及问题 优化的方法 02 和业界方法的比较 性能测试 03 04 解决的BUG 未来的工作 05 06 01 Service的现状及问题 什么是k8s Service • 应用通过固定的VIP访问一组pod,应用对Pod ip变化 无感知 • 本质是一个负载均衡器 控制面和数据面算法复杂度都是O(1) • 经历了二十多年的运行,比较稳定成熟 • 支持多种调度算法 优势 IPVS mode 不足之处 • 没有绕过conntrack,由此带来了性能开销 • 在k8s的实际使用中还有一些Bug 02 优化的方法 指导思路 • 用尽量少的cpu指令处理每一个报文 • 不能独占cpu • 兼顾产品的稳定性,功能足够丰富 弯路 • 为什么DPDK不行?0 码力 | 27 页 | 1.19 MB | 9 月前3
蚂蚁金服Service Mesh渐进式迁移方案步步为营,扩大战果 • 杜绝一刀切k8s和Service Mesh落地方案演进路线 部署在 非k8s上 不是Service Mesh形态 部署在K8s上 非SM 部署在 非k8s上 Service Mesh (Sidecar模式) 部署在K8s上 Service Mesh (Istio模式) 部署在K8s上 Service Mesh (Sidecar模式) 部署在 非k8s上 Service 不现实 Istio的非k8s支 持投入产出比 太差 背景1:原生Istio无法支撑我们的规模 背景2:k8s(Sigma3.1)将加快普及 K8s普及在即, 不适合再大面积 铺开,快速会师ü 和路线1的核心差别 • 是先上k8s,还是先上Service Mesh • 而且是终极形态的Service Mesh(意味着更偏离目标) ü 好处是第一步(非k8s上向Sidecar模式演进)非常自然 缺点是再往后走 • 由于没有k8s的底层支持,就不得不做大量工作 • 尤其istio的非k8s支持,工作量很大 • 而这些投入,在最终迁移到k8s时,又被废弃 ü 结论: • 不符合蚂蚁的远期规划(k8s是我们的既定目标) • 会造成投资浪费(k8s铺开在即) 演进路线2分析 部署在 非k8s上 Service Mesh (Sidecar模式) 部署在 非k8s上 Service Mesh0 码力 | 40 页 | 11.13 MB | 6 月前3
36-云原生监控体系建设-秦晓辉Kubernetes Node组件监控 • Kubernetes控制面组件监控 • Kubernetes资源对象的监控 • Pod内的业务应用的监控 • 业务应用依赖的中间件的监控 云原生之后监控需求的 变化 云原生之后监控需求的变化 •相比物理机虚拟机时代,基础设施动态化,Pod销毁重建非常频繁 •原来使用资产视角管理监控对象的系统不再适用 •要么使用注册中心来自动发现,要么就是采集器和被监控对象通过sidecar模式捆绑一体 看要监控的组件 Kubernetes架构 l 服务端组件,控制面:API Server、Scheduler、 Controller-Manager、ETCD l 工作负载节点,最核心就是监控Pod容器和节点本 身,也要关注 kubelet 和 kube-proxy l 业务程序,即部署在容器中的业务程序的监控,这 个其实是最重要的 随着 Kubernetes 越来越流行,几乎所有云厂商都提供 Kubernetes Node 组 件的监控 Kubernetes Node - 容器负载监控 抓取方案 • Pod或者容器的负载情况,是一个需要关注的点,容器层面主要关注CPU和内存使用情况,Pod 层面主要 关注网络IO的情况,因为多个容器共享Pod的net namespace,Pod内多个容器的网络数据相同 • 容器的监控数据可以直接通过 docker 引擎的接口读取到,也可以直接读取 cAdvisor0 码力 | 32 页 | 3.27 MB | 6 月前3
开课吧基于混合云的Kubernetes平台落地实践-程亮程亮 多云多K8S多环境 程亮 • 开课吧 首席架构 技术委员会主席 • 负责公司微服务建设,多环境治理搭建,公司中长期技术规划 • 目录 2018 2019 2020 2021 K8S多环境 • 基于jenkins的传统发布 K8S多环境发布一期方案 • 一期通过K8S发布,一键master • 新增服务模版,自动生成deployment K8S多环境二期优化实战 • 一套代码,支持多种环境 一套代码,支持多种环境 • 物理隔离的多环境 • 共享资源的多环境 收益总结 • 降低服务器使用成本40% • 运维100%自动化 • 多云部署,高可用 P-1 为什么要做多云多K8S多环境 ‣ 标准的dev test pre prod环境 ‣ 存在的问题 • 标准的四套环境 DEV TEST PRE PROD • 标准的CICD流程 Developer LOCAL DEV Jenkins GitLab Maven Repository(nexus) Registry 云厂商K8S pull install deploy push get status rolling update • 多云多K8S多环境平台建设的初衷 多环境平台建设的初衷 01 02 03 多云多K8S多环境平台 K8S集群(多个) 管理后台 发布平台 提升资源使用率 1 多云冗余高可用 2 环境并行互不影响0 码力 | 22 页 | 7.42 MB | 9 月前3
25-云原生应用可观测性实践-向阳Technology Co., Ltd. All rights reserved. SLB / APIGW/ … 问题2:观测盲点 KVM switch VM iptables POD envoy 服务 KVM switch VM iptables POD envoy 服务 开发兄弟们辛苦打桩 全链路到底有多全? 业务 开发 桩 simplify the growing complexity © 2021, YUNSHAN Technology Co., Ltd. All rights reserved. 业界动向 —— 云厂商监控 阿里云ARMS 问题:依赖于eBPF,仅支持Kernel 4.15+、仅阿里云(K8s需托管) simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved Technology Co., Ltd. All rights reserved. 获得原力的挑战 SLB / APIGW/ … KVM switch VM iptables POD envoy 服务 KVM switch VM iptables POD envoy 服务 端点:eBPF内核依赖 路径:全链路数据关联 © 2021, YUNSHAN Networks Technology Co., Ltd. All0 码力 | 39 页 | 8.44 MB | 6 月前3
22-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊以度量为基础,以NodeSelector算法来 决定在哪儿部署容器服务 • 运行时以期望与实际的差别进行动态调 整到期望的状态 标准化能力-分布式操作系统核心-容器服务-基本技术原理 事实标准的K8S容器服务设计 成应用与物理资源(IaaS,虚 拟机、物理,多云)的中间抽 象层,因为应用很复杂,很容 易陷入差异化定制市场,抽象 层的市场范围会更广,作为开 源平台,更容易成为通用性市 场选择。通用性才能做到普适 Kubectl Controller Pod,Deploymen t,etc. API Server Kubectl Custom Controller Custom Resource(CR) Operator机制 Pod,Deployment, etc Spec (K8s Yaml) Custom Resource Spec (K8S yaml) 通过拓展实现自定义控制器来实现对非标准资源的纳 以被微服务化或被容器化,那么现在阶段来看,整个 数字化转型的一些困难就是处于在技术上的碎片化,为云原生彻底发挥对极端变化的适应性价值还有很多障碍。 在统一的K8s管理面下, 通过一种代理容器(内置 了管理虚拟机的逻辑) 来启动虚拟化Pod, 此时可以同时在统一的 容器云平台下运行微服 务化容器化或者未容器 化的传统软件了; 另一个方向是,将底层计 算、存储和网络进行超融 合,提供极其简单的底层 运维能力,进一步简化云0 码力 | 42 页 | 11.17 MB | 6 月前3
Service Mesh的实践分享• Mount到所有pod • 客户端容器监听文件,根据地 址文件找Proxy • 切换地址到remote proxy,轻 易实现优雅退出和滚动升级 • 增强隔离性 • Local Proxy被pod共享 • 自保护,对来源方限流和流量 转移 • 资源适配 • 根据宿主机的硬件配置定制不 同资源配置的Daemonset Local Proxy Pod 写入地址 监听变化 宿主机 Proxy address File Pod Remote Proxy Cluster 主流量 备用或限流 DaemonsetOverall JavaApp Local Proxy OSP Server Service Registry Service Config Center Remote Proxy Cluster API Gateway 备用链路 备用链路 服务发现 服务注册 配置下发 服务路由 网络传输 OSP client PhpApp Local Proxy OSP client Pod Local Proxy OSP client Pod OSP client Web Server Reg agent Proxy address File 服务注册 宿主机 物理机 物理机 Tracing0 码力 | 30 页 | 4.80 MB | 6 月前3
Kubernetes容器应用基于Istio的灰度发布实践svce svce.n s svcd.n s svcd.n s Kube-proxy Kube-APIServer ServiceIp Backend Pod1 Labels:app=svcb Port:9379 Backend Pod2 Labels:app=svcb Port:9379 svca8 基础设施(Kubernetes)看Istio: 能力增强 服务部署运 维 服务治理 Kube-APIServer Etcd istioctl / kubectl Pilot Envoy SVC Pod Node Envoy SVC Pod Node Envoy SVC Pod list/watch (Service, Endpoints, Pod) 用户13 Istio & Kubernetes:统一服务发现 Pilot ServiceController( 灰度发布:A/B Testing19 灰度发布:Canary releases20 灰度发布:基于Kubernetes RC Version2 SVC SVC Pod1 Pod2 Pod3 SVC Pod1 Pod2 Version1(canary) 40% svcB svcA KubeAPIServer 60% Scheduler Controller- Managerr210 码力 | 34 页 | 2.64 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践流量控制 • 审计日志 • 黑白名单 • …K8S集群 云平台微服务演进之基于Spring Cloud的微服务方案 NS A Service Zuul Nginx Eureka Server Service 1 Service 2 Ribbon 注册 业务服务 配置中心 启动获取 Monitor Turbine K8S流量 SC流量 同集群调用微服务 Spring Makefile(include了tools/istio- docker.mk)把这个dockerfile build成了 ${HUB}/proxy:${TAG}镜像,也就是 Kubernetes里跟应用放在同一个pod下的 sidecar。非Kubernetes情况下需要把 pilot-agent、envoy跟应用部署在一起,这 就有点“污染”应用的意思了。Pilot-Agent的功能介绍 在proxy镜像中,pilot-agent负责的工作包括: 后 reload envoy。 而envoy负责接受所有发往该pod的网络流量,分发所有从pod中发出的网络流量。 根据代码中的sidecar-injector-configmap.yaml(用来配置如何自动化地inject istio sidecar), inject过程中,除了proxy镜像作为sidecar之外,每个pod还会带上initcontainer(Kubernetes中的概 念0 码力 | 28 页 | 3.09 MB | 6 月前3
共 85 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9













