高性能 Kubernetes 元数据存储 KubeBrain 的设计思路和落地效果-许辰KubeBrain 字节跳动高性能 K8s 元信息存储 许辰 字节跳动资深研发工程师 许 辰 字节跳动基础架构工程师 本科和硕士毕业于北京大学计算机系 负责大规模 Kubernetes 系统的构建和优化 KubeBrain/ KubeGateway/ KubeZoo 等多个项目的发起人 • 背景介绍 • 设计思路 • 性能优化 • 落地效果 • 未来演进 背景 背景 • Kubernetes 规模增大 10 倍以上 公司业务快速发展 存储、大数据、机器学习等场景云原生化 • 新场景对 Kubernetes 性能要求更高 离线场景,Pod 生命周期短、变更频率高 如何扩展 Kubernetes 集群 单个集群规模垂直扩展 多个集群横向扩展 降低运维管理成本 减少资源碎片 提高资源利用率 Kubernetes 的架构特点 中心化架构 所有组件通过 apisever 交互 随着规模增大存储系统成为瓶颈 etcd 存在性能问题 apiserver etcd K8s 各组件 apiserver 元信息存储 etcd etcd 存在的问题 自研元信息存储 调优 etcd 参数 按照对象拆分 etcd 设计新的元信息存储 … 如何解决存储瓶颈? KubeBrain 1. 大脑 2. 谐音科比 Kobe0 码力 | 60 页 | 8.02 MB | 1 年前3
第1930期:Kubernetes基础介绍的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放 在以容器为中心的业务上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更 高级的自动化任务。Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明 的服务注册和服务发现机制、内建负载均衡器、故障发现和自 我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度 机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。 5 www.h3c.com Confidential 秘密 55 Kubernetes基础结构介绍 Kubernetes特性: 自动装箱:构建于容器之上,基于资源依赖和其他约束自动完成容器部署。 自我修复:容器故 自我修复:容器故障后自动重启、节点故障后重新调度容器,以及容器自我修复机制。 水平扩展:通过简单明了实现水平扩展,基于CPU等资源负载率的自动水平扩展。 服务发现和负载均衡:实现内部负载均衡可以实现服务访问负载。 自动发布和回滚:可以自动实现版本的发布和回滚。 秘钥和配置管理:对于密码等信息,专门提供了Secert对象为其解耦。 存储编排:支持多种不同类型的存储,包括本地存储、云存储、网络存储等。 批量处理执行:除服务型应用,还支0 码力 | 49 页 | 4.11 MB | 1 年前3
第29 期| 2023 年9 月- 技术雷达推荐实现 CI/CD 的零信任安全的技术之一是通过使用 OpenID Connect(OIDC)等联合身份机制对流水线进行 身份验证,以访问云服务。这一重要的技术仍未被充分利用在 GitHub Actions 中,因此推荐 OIDC for GitHub Actions。通过这种方式,可以避免存储长期的访问令牌来访问云资源,同时确保流水线无法直接访问机密信息。 然而,请务必谨慎地限制访问权限,以确保操作以最低权限运行。 系统 的健康状况与债务,可为维护和增强系统提供结构化的循证战略。 14. 对告警规则的单元测试 试验 可观测性和监控对于软件团队至关重要。鉴于特定事件的不可预测性,创建具有复杂规则的准确告警机制至关 重要。然而,只有当事件真实出现时,这些规则才能得到真正的验证。对告警规则的单元测试让团队通过预先、 主动地测试和完善规则,来更好地定义规则,从而增加对规则的信心。这有助于减少误报,并确保报告真正的 问关键数据和系统,如源代码、凭据和机密数据,去构建和部署软件。这让这些系统对恶意攻击者充满了吸引 力。因此,我们强烈推荐为 CI/CD 流水线和基础设施引入零信任安全机制——尽可能少地信赖它们。这项机制 包含一系列技术:如果可行,使用云供应商提供的联合身份校验机制,如 OIDC,来验证流水线,而不是赋予它 们直接访问机密数据的权限。实行最小权限原则去最小化个人用户和执行器账户的权限,而不是使用具有无限 访问0 码力 | 43 页 | 2.76 MB | 1 年前3
腾讯基于 Kubernetes 的企业级容器云实践-罗韩梅• 平台本身支持热升级; • 组件自身HA机制,如docker; • 多地域多可用区的容灾设计 • 管理机挂掉:对应用无影响 • 计算节点挂掉:跨机迁移 • 健康探针 ① 存活探针 ② 就绪探针 • 负载均衡 • 重启机制 ① 区分异常原因 ② 本地重启/跨机重启 • 黑名单机制 • 集群核心数据的备份和恢复 ① Etcd ② 核心数据库 • 云盘机制保护应用数据 • 举例:1.4升级1.9版本 09:33:02 开始pull V8版本的image PS:灰度升级属于原地升级,因此不需要重新过调度,升级的效率 也会提升。 每次升级可以选择要升级的实例个数以及具体哪些(个)实例。 能力扩展:存储场景 物理硬盘 cephFS ceph RBD ceph RBD 权限管理 quota 在线扩容 containe r containe r containe r 本地磁盘 作为资源进行调度 本地磁盘 2类存储,3种场景 本地磁盘:延时低,不可迁移 共享云盘:云存储,多容器共享,同时读写 内置云盘:云存储,每容器独享,用户无感知 云存储 • 支持在线扩容、quota管理、权限管理 • 共享云盘基于cephFS • 内置云盘基于cephRBD • 腾讯内部ceph版本,微信同款 能力扩展:GPU支持 分布式存储Ceph 海量小数据读写优化 不同用户配额管理0 码力 | 28 页 | 3.92 MB | 1 年前3
k8s操作手册 2.3服务名称解析到service-ip,kube-proxy会想办法让访问service-ip的流量转发到真 实pod里面去,如果一个service服务后端对应多个pod,则kube-proxy会使用负 载均衡机制。 ★每创建一个service资源,就会创建一个同名的EndPoints Endpoints:记录了service的targetPort与目标pod的 ip:port映射关系,当目标pod 漂移或重启时,endpoints会自动更新 内 存使用量限制,任何违反LimitRange定义的资源使用最大用量的请求都将被直接 拒绝 LimitRange对pod和容器的资源限制为cpu和内存使用量 LimitRange对PVC的资源限制为存储空间的使用量 资源限额只对新创建的资源生效,对于已经存在的对象不产生任何限制 limitrange和resourcequota都是有命名空间之分的 # cat > limitRange-testxx persistentvolumeclaims: "2" #可以创建的pvc总数 requests.storage: 20Gi #可以创建的pvc存储需求存储空间总量限额 EOF # kubectl apply -f resourceQuota-testxx.yaml ★第7章、pod控制器 pod控制器是由kube-c0 码力 | 126 页 | 4.33 MB | 1 年前3
云计算白皮书来帮助公共和私营部门进行数字化转型。该战略基于三大支柱:“可 云计算白皮书(2023 年) 2 信云”认证、“云中心”政策和工业战略。2021 年 6 月,意大利政府 宣布了云计算的国家战略,创建存储所有公共部门应用程序和公民 数据的国家级云计算系统,并将相关数据向“国家云”转移。 英国和澳大利亚政府发布国家战略,深度挖掘云计算的产业赋 能价值。在政府云战略(G-Cloud)基础上,英国国防部在 Serverless(服务器无感知)、低/无代码为代表的技术能够 屏蔽复杂的底层基础设施,让用户以最低学习成本、最小使用代价 最大化释放云的生产力,实现快速创新。AWS 贯彻全面 Serverless 化战略,提供计算、存储、数据库等全领域的 Serverless 服务。微软 发力低/无代码领域,其发布的 Power Platform 已经与 Office 365、 Dynamics 365 以及 Azure 三大生态充分打通,形成完整的技术生态。 市场数据不明确的领域,只发布头部企业整体情况,不做具体排名。 3 因为 IaaS 和 CDN 是两种业态,需要分别获得互联网资源协作服务业务牌照和内容分发网络业务牌照, 所有 IaaS 不包括 CDN 收入,只统计计算、存储、网络等基础资源服务收入。 云计算白皮书(2023 年) 15 来源:中国信息通信研究院,2023 年 5 月 图 6 2022 年中国公有云 IaaS 厂商市场占比 (三)云计算技术不断推陈出新,满足多样性场景需求0 码力 | 47 页 | 1.22 MB | 1 年前3
Kubernetes开源书 - 周立载,包括⽆状态、有状态以及数据处理⼯作负载。 如果应⽤程序可在容器中运⾏,那么它应该能够很好地在 Kubernetes上运⾏。 不提供中间件(例如消息总线)、数据处理框架(例如Spark)、数据库(例如MySQL),也不提供分布式存储系 统(例如Ceph)作为内置服务。 这些应⽤可在Kubernetes上运⾏。 没有点击部署的服务市场。 01-什么是Kubernetes 6 不部署源代码,并且不构建应⽤。持续集成(CI ⽔平扩展——也就是通过部署 更多实例来实现扩容。详⻅ Building High-Availability Clusters 。 etcd etcd ⽤作Kubernetes的后端存储。集群的所有数据都存储在此。请为你Kubernetes集群的etcd数据提供备份计划。 kube-controller-manager kube-controller-manager 运⾏Controlle 将容器的通⽤时序指标记录到⼀个中⼼化的数据库中,并提供⼀个UI以便于浏览该数 据。 Cluster-level Logging(集群级别的⽇志) Cluster-level logging 机制负责将容器的⽇志存储到具有搜索/浏览界⾯的中央⽇志存储中去。 Node组件 Node组件在每个Node上运⾏,维护运⾏的Pod并提供Kubernetes运⾏时环境。 kubelet kubelet 是主要的Node代理0 码力 | 135 页 | 21.02 MB | 1 年前3
Kubernetes 容器编排与应用编排StatefulSet StatefulSet Pod 1. 支持指定副本数 2. Pod 具有固定且唯一的标识符 * statefulset-example-0.example 3. Pod 可具有独立的存储 4. 一切都是有序的 * 从 0 开始逐个创建(需等待 Ready) * 反向逐个删除(需等待 Terminated) 5. Update Strategy (*v1.7) * 反向逐个删除并重建 ollers,ConfigMap,Batch … 2. 自动化的运维机制:HPA,“VPA”,Rollback,Rolling Update 3. 极简的部署方式:YAML + Image Kubernetes 的现状 1. 对于大型应用而言,需要组合使用大量的 Kubernetes 资源 2. 缺乏统一的依赖管理机制,需要用户自行解决依赖关系 3. 极简的部署方式也给用户带来了新的负担 应用编排架构 Application Registry - Helm Registry Helm Chart Helm Registry 1. 负责存储和管理用户的 Charts |- space |- chart |- version 2. 可选的多种存储后端(FileSystem,OSS,…) 3. 可通过 API 直接对应用进行编排 4. 开源(https://github.com/ca0 码力 | 20 页 | 4.22 MB | 1 年前3
Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践加入 K8s 社 区并正式发布; 自此,CRD + controller-runtime 逐渐成为开发 operator 的首选 Operator Pattern 是官方定义的标准扩 展机制,是 K8s Native Application; Operator = CRD + control loop, i.e, Declaretive API + Automation; kubebuilder 访问控制、审计、安全链接、加密存储等等。 Patching & Upgrades 小版本升级、大版本升级、安全漏洞修复等等。 Data Migrations 迁移、同步、清洗、跨地域、灾备、多活等等。 DB Operator Day-2 Operations Operator 基础模型 第二部分 K8s 架构 Cache Informer 机制 Cache 如何获取到本地(内存中) 如何获取到本地(内存中) Informer 启动后会通过 reflector 的 list & watch 机制获取某种资源的 全量 objects。list 可以简单理解为一个 HTTP GET 请求,watch 为一 个 HTTP/2 长连接 Cache 如何保持与 API Server 一致性 list & watch 机制中,list 获取 API Server 中数据的一份快照,并记 录 ResourceVersion0 码力 | 21 页 | 3.06 MB | 9 月前3
运维上海2017-Kubernetes与AI相结合架构、落地解析-赵慧智由于采用系统当前的内核,Container会启动加载更快,更 轻量,并且更省资源。 Container Image 用来将需要容器化的应用程序及其环境进行打包后存储的镜像。 • 通常会有一个 Image 管理仓库来存储 Image。 • 同一个 Image 会有版本记录。 • 只包含软件环境的配置 • 硬件配置需要运行时去指定 OCI (Open Container 基本概念 - Pod • Pod 是 Kubernetes 中最小 的资源 • 一个 Pod 包含一个或多个 Container • Pod 内的 Containers 可以 共享网络和存储 Kubernetes 基本概念 - Service • Service 是一组 Pod 协同工作。 • 有时也被称为微服务。 • 可以给 Service 添加标签 (label 来标识其业务属性。 pod • 可以决定同时可以多少个相同的pod在同时运行 • 维护pod的状态 Kubernetes 基本概念 – Storage(volume • 达到非易失存储的方式 • 可以视作一个目录 • 将存储挂在到 Pod 及其内 部 containers 的一种方式。 快速部署一个应用 - kubectl • kubectl 是一个命令行操作 Kubernetes 的工具,可以在0 码力 | 77 页 | 14.48 MB | 1 年前3
共 35 条
- 1
- 2
- 3
- 4













