 可觀測性 (Observability)
在 Kubernetes Day2
Operation的考量與實踐Click to edit Master title style 1 可觀測性 (Observability) 在 Kubernetes Day2 Operation的考量與實踐 E . W. K u o @ i T h o m e K u b e r n e t e s S u m m i t 2 0 2 2 Click to edit Master title style complexity Observability Observability Demo 3 Day2 運營 定義與說明 Kubernetes Day2 運營的挑戰 馴服運營 複雜性 可觀測性 實踐與思維 可觀測性 關聯演示 Click to edit Master title style 4 Day2 Operation 定 義 與 說 明 4 Click to edit Master 有關 • 推動 Kubernetes 的動力通常是: • 提高開發人員的敏捷性 • 提高開發人員的開發速度 • 通過讓開發人員訪問自助服務配置 來消除開發過程中的摩擦 6 Click to edit Master title style 7 什麼是 Kubernetes Day 2 • 速度和敏捷性的顯著提高,從每月部 署轉變為每日部署。 • 但是應用程序的生命週期不會在部署0 码力 | 30 页 | 3.01 MB | 1 年前3 可觀測性 (Observability)
在 Kubernetes Day2
Operation的考量與實踐Click to edit Master title style 1 可觀測性 (Observability) 在 Kubernetes Day2 Operation的考量與實踐 E . W. K u o @ i T h o m e K u b e r n e t e s S u m m i t 2 0 2 2 Click to edit Master title style complexity Observability Observability Demo 3 Day2 運營 定義與說明 Kubernetes Day2 運營的挑戰 馴服運營 複雜性 可觀測性 實踐與思維 可觀測性 關聯演示 Click to edit Master title style 4 Day2 Operation 定 義 與 說 明 4 Click to edit Master 有關 • 推動 Kubernetes 的動力通常是: • 提高開發人員的敏捷性 • 提高開發人員的開發速度 • 通過讓開發人員訪問自助服務配置 來消除開發過程中的摩擦 6 Click to edit Master title style 7 什麼是 Kubernetes Day 2 • 速度和敏捷性的顯著提高,從每月部 署轉變為每日部署。 • 但是應用程序的生命週期不會在部署0 码力 | 30 页 | 3.01 MB | 1 年前3
 QCon北京2017/支撑海量业务的互联网架构/知乎基于 Kubernetes 的 Kafka 平台探索和实践在知乎的应⽤用 为什什么做基于 Kubernetes 的 Kafka 平台 基于 Kubernetes 的 Kafka 平台实践 Apache Kafka 分布式的流式数据平台 ⾼高吞吐 容错性 Broker Broker Broker Producer Consumer Topic Topic Topic Producer Consumer 平台承载知乎业务⽇日志、数据传输和消息队列列服务 磁盘容错 • 磁盘故障不不可避免 • 快速恢复 服务器器预留留备⽤用磁盘 单盘故障启⽤用备⽤用盘 容错 主机容错 • 优化磁盘调度算法 • 运⽤用 Kafka 机架感知特性 服务注册和客户端 注册 Topic 的集群信息 • Broker, Zookeeper • Status 是否启⽤用 客户端 • 业务易易⽤用 • 标准客户端,降低集群⻛风险 集群容错 • 灾备集群0 码力 | 34 页 | 2.64 MB | 1 年前3 QCon北京2017/支撑海量业务的互联网架构/知乎基于 Kubernetes 的 Kafka 平台探索和实践在知乎的应⽤用 为什什么做基于 Kubernetes 的 Kafka 平台 基于 Kubernetes 的 Kafka 平台实践 Apache Kafka 分布式的流式数据平台 ⾼高吞吐 容错性 Broker Broker Broker Producer Consumer Topic Topic Topic Producer Consumer 平台承载知乎业务⽇日志、数据传输和消息队列列服务 磁盘容错 • 磁盘故障不不可避免 • 快速恢复 服务器器预留留备⽤用磁盘 单盘故障启⽤用备⽤用盘 容错 主机容错 • 优化磁盘调度算法 • 运⽤用 Kafka 机架感知特性 服务注册和客户端 注册 Topic 的集群信息 • Broker, Zookeeper • Status 是否启⽤用 客户端 • 业务易易⽤用 • 标准客户端,降低集群⻛风险 集群容错 • 灾备集群0 码力 | 34 页 | 2.64 MB | 1 年前3
 基于 KUBERNETES 的 容器器 + AI 平台应⽤用(机器器学习) - 58s 视频演示 Kubeflow 的应⽤用 Kubeflow 之上 构建集群与管理理资源 多集群和镜像仓库 • 企业想要的 • 隔离性和安全性 • 容错性与混合云 • 功能多样性与上线流程 • 如何实现 • K8s - 单『控制集群』, 多『⽤用户集群』 • 镜像仓库 - 单『默认仓 库』,多仓库集成 管理理集群和节点 • 技术概览 和编排运⾏行行时 安全性与扩展性:从 k8s 原⽣生模式中获益 状态可读:跟踪所有 k8s 对象状态 版本化:快速从历史版本回滚 构建应⽤用 典型 CI/CD 流程 CAICLOUD/CYCLONE • 开源 • https://github.com/caicloud/cyclone Cyclone 技术架构 云原⽣生 CI/CD 引擎 设计 - 云原⽣生,k8s 亲和性 性能 -0 码力 | 19 页 | 3.55 MB | 1 年前3 基于 KUBERNETES 的 容器器 + AI 平台应⽤用(机器器学习) - 58s 视频演示 Kubeflow 的应⽤用 Kubeflow 之上 构建集群与管理理资源 多集群和镜像仓库 • 企业想要的 • 隔离性和安全性 • 容错性与混合云 • 功能多样性与上线流程 • 如何实现 • K8s - 单『控制集群』, 多『⽤用户集群』 • 镜像仓库 - 单『默认仓 库』,多仓库集成 管理理集群和节点 • 技术概览 和编排运⾏行行时 安全性与扩展性:从 k8s 原⽣生模式中获益 状态可读:跟踪所有 k8s 对象状态 版本化:快速从历史版本回滚 构建应⽤用 典型 CI/CD 流程 CAICLOUD/CYCLONE • 开源 • https://github.com/caicloud/cyclone Cyclone 技术架构 云原⽣生 CI/CD 引擎 设计 - 云原⽣生,k8s 亲和性 性能 -0 码力 | 19 页 | 3.55 MB | 1 年前3
 逐灵&木苏-阿里巴巴 K8S 超大规模实践经验分离基础设施与应用容器简化 应用运维复杂性面向终态升级 • 过程式的运维有什么问题? 例子:升级某服务的 3000 个实例 容 器 平 台 运 维 平 台 容 器 平 台 运 维 平 台 Kubernetes 200 最大不可用数面向终态的应用管理 • 支持终态副本数保持 • 支持容器原地升级 • 保持 IP、卷 • 支持并发更新、容错暂停 • 支持镜像预热、按需下载镜像格式面向终态的风险控制 throttling/circuit breaker throttling/circuit breaker 风险识别自愈能力升级 • 传统运维体系的效率问题 - 应用启动流程复杂 - 决策链路较长 - 状态一致性风险 容器平台 监控 VIP 服务注册 配置中心 运维平台 观察者 异常消费 基础设施 异常来源• 统一容器与应用实例的生命周期 • 下沉应用的冗余度信息 容器即应用 运维平台 监控 balance ETCD Webhook Client Kubelets APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化 ETCD Cache Pod A V1 Pod A V2 Pod A V30 码力 | 33 页 | 8.67 MB | 6 月前3 逐灵&木苏-阿里巴巴 K8S 超大规模实践经验分离基础设施与应用容器简化 应用运维复杂性面向终态升级 • 过程式的运维有什么问题? 例子:升级某服务的 3000 个实例 容 器 平 台 运 维 平 台 容 器 平 台 运 维 平 台 Kubernetes 200 最大不可用数面向终态的应用管理 • 支持终态副本数保持 • 支持容器原地升级 • 保持 IP、卷 • 支持并发更新、容错暂停 • 支持镜像预热、按需下载镜像格式面向终态的风险控制 throttling/circuit breaker throttling/circuit breaker 风险识别自愈能力升级 • 传统运维体系的效率问题 - 应用启动流程复杂 - 决策链路较长 - 状态一致性风险 容器平台 监控 VIP 服务注册 配置中心 运维平台 观察者 异常消费 基础设施 异常来源• 统一容器与应用实例的生命周期 • 下沉应用的冗余度信息 容器即应用 运维平台 监控 balance ETCD Webhook Client Kubelets APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化 ETCD Cache Pod A V1 Pod A V2 Pod A V30 码力 | 33 页 | 8.67 MB | 6 月前3
 Chaos Mesh让应用与混沌在 Kubernetes 上共舞-杨可奥分钟入门混沌工程 —— 脚本随机杀 Pod 3. … 4. 那网络故障呢?磁盘故障呢?恢复呢?如何控制作用范围? 这是一件复杂的事 TBF/NETEM/... 这是一件困难的事 1. 天然的隔离性和安全性 2. Go 的线程模型与 namespace 机制难以融合 3. 要求运行时注入和恢复 4. 和内核打交道通常都是困难的! Kubernetes 上的混沌工程方案 Chaos Mesh SideCar 共享 Network Namespace ○ 范围和权限更加可控 Chaos Mesh 使用案例 以 TiDB 为例 ● 假设 ○ TiDB 使用 Raft 一致性算法构建副本,应当拥有容错的能力 ○ 在杀掉一个节点之后,QPS 应当会下降 ○ 一段时间之后,QPS会恢复正常 ● 运行实验 ○ 使得一个节点无法工作(Pod Failure) ● 观察和检验 ○ QPS0 码力 | 30 页 | 1.49 MB | 9 月前3 Chaos Mesh让应用与混沌在 Kubernetes 上共舞-杨可奥分钟入门混沌工程 —— 脚本随机杀 Pod 3. … 4. 那网络故障呢?磁盘故障呢?恢复呢?如何控制作用范围? 这是一件复杂的事 TBF/NETEM/... 这是一件困难的事 1. 天然的隔离性和安全性 2. Go 的线程模型与 namespace 机制难以融合 3. 要求运行时注入和恢复 4. 和内核打交道通常都是困难的! Kubernetes 上的混沌工程方案 Chaos Mesh SideCar 共享 Network Namespace ○ 范围和权限更加可控 Chaos Mesh 使用案例 以 TiDB 为例 ● 假设 ○ TiDB 使用 Raft 一致性算法构建副本,应当拥有容错的能力 ○ 在杀掉一个节点之后,QPS 应当会下降 ○ 一段时间之后,QPS会恢复正常 ● 运行实验 ○ 使得一个节点无法工作(Pod Failure) ● 观察和检验 ○ QPS0 码力 | 30 页 | 1.49 MB | 9 月前3
 QCon北京2018/QCon北京2018-基于Kubernetes与Helm的应用部署平台构建实践-张夏-赵明+PaaS:基于Kubernetes私有云平台, 支持CI/CD、配置管理、基于Helm的 服务编排等 基于Kubernetes平台概览 Kubernetes on AWS高可用架构 • 高可用性 • 容灾容错 • 监控报警 • 日志收集 • 轻量级框架 Flask提供REST API • Celery实现任务分发与请求异步处理, 并通过RabbitMQ消息传输� • 通过uWSGI配合Nginx反向代理实现 流水线自动触发实现集成测 试无感知� • 集成包括:� • 环境准备� • 数据准备� • 用例执行� • 结果分析� 系统集成自动化测试框架方案 � 后续工作计划展望 • Docker file合规性检查: docker run --rm -i hadolint/hadolint < Dockerfile� • 资源动态伸缩0 码力 | 28 页 | 12.18 MB | 1 年前3 QCon北京2018/QCon北京2018-基于Kubernetes与Helm的应用部署平台构建实践-张夏-赵明+PaaS:基于Kubernetes私有云平台, 支持CI/CD、配置管理、基于Helm的 服务编排等 基于Kubernetes平台概览 Kubernetes on AWS高可用架构 • 高可用性 • 容灾容错 • 监控报警 • 日志收集 • 轻量级框架 Flask提供REST API • Celery实现任务分发与请求异步处理, 并通过RabbitMQ消息传输� • 通过uWSGI配合Nginx反向代理实现 流水线自动触发实现集成测 试无感知� • 集成包括:� • 环境准备� • 数据准备� • 用例执行� • 结果分析� 系统集成自动化测试框架方案 � 后续工作计划展望 • Docker file合规性检查: docker run --rm -i hadolint/hadolint < Dockerfile� • 资源动态伸缩0 码力 | 28 页 | 12.18 MB | 1 年前3
 KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑monoliths-to-microservices 微服务拆分原则 DevOps 服务框架 Dubbo 可观测性 混沌工程 服务治理 Spring Cloud 多语言微服务 API管理 服务压测 分布式事务 分布式调度 API网关 服务注册发现 负载均衡 服务配置 无损下线 服务容错 服务路由 服务鉴权 限流降级 服务元数据 服务测试 服务mock 持续集成 IDE插件 应用监控 场景一:某应用发布,灰度几台机器,由于代码逻辑写的有问题,造成线程池满,客户端调用失败。 场景二:某应用运行过程中,某几台机器由于磁盘满,或者是宿主机资源争抢导致load很高,客户端出现调用超时。 客户端摘除 • 实时性高 • 需要关注错误率阈值、隔离机器的比 例阈值,及被摘除后恢复时间 • 更灵活的摘除策略:调整权重 应用A 应用B 应用C 应用D 全局摘除:监管控一体 • 维度更加丰富 摘除后动作0 码力 | 27 页 | 7.10 MB | 1 年前3 KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑monoliths-to-microservices 微服务拆分原则 DevOps 服务框架 Dubbo 可观测性 混沌工程 服务治理 Spring Cloud 多语言微服务 API管理 服务压测 分布式事务 分布式调度 API网关 服务注册发现 负载均衡 服务配置 无损下线 服务容错 服务路由 服务鉴权 限流降级 服务元数据 服务测试 服务mock 持续集成 IDE插件 应用监控 场景一:某应用发布,灰度几台机器,由于代码逻辑写的有问题,造成线程池满,客户端调用失败。 场景二:某应用运行过程中,某几台机器由于磁盘满,或者是宿主机资源争抢导致load很高,客户端出现调用超时。 客户端摘除 • 实时性高 • 需要关注错误率阈值、隔离机器的比 例阈值,及被摘除后恢复时间 • 更灵活的摘除策略:调整权重 应用A 应用B 应用C 应用D 全局摘除:监管控一体 • 维度更加丰富 摘除后动作0 码力 | 27 页 | 7.10 MB | 1 年前3
 第1930期:Kubernetes基础介绍已经调度成功,跟一个具体的节点绑定。它包含的容器都已经创建成功,并且至少有一个正 在运行中。 3.Succeeded。这个状态意味着,Pod 里的所有容器都正常运行完毕,并且已经退出了。这种情况在运行一次性任务时最 为常见。 4.Failed。这个状态下,Pod 里至少有一个容器以不正常的状态(非 0 的返回码)退出。这个状态的出现,意味着你得想办 法 Debug 这个容器的应用,比如查看 Pod 的 (php):匹配所有不具有标签name=php的资源对象 也可以多个条件一起使用。 标签和标签选择器共同构成了k8s系统中最核心的应用模型,使得被管理对象能够被精细的分组管理,同时实现了整 个集群的高可用性。 17 www.h3c.com Confidential 秘密 17 17 K8s基本概念和术语介绍(RC) RC Replication Controller(副本管理器)和RS(Replica manager组件就得到通知,定期巡检系统中存活的目标pod,并确保目 标pod实例的数量刚好等于此rc的期望值,如果有过多pod运行,系统就会停掉一些,否则会创建一些。通过rc, kubenetnes实现了用户应用集群的高可靠性,并大大减少了很多运维工作。 Replication Controller在k8s 1.2版本之后升级成了新的概念,Replica Set(下一代RC),Replicas Set支持基于集 合的标签0 码力 | 49 页 | 4.11 MB | 1 年前3 第1930期:Kubernetes基础介绍已经调度成功,跟一个具体的节点绑定。它包含的容器都已经创建成功,并且至少有一个正 在运行中。 3.Succeeded。这个状态意味着,Pod 里的所有容器都正常运行完毕,并且已经退出了。这种情况在运行一次性任务时最 为常见。 4.Failed。这个状态下,Pod 里至少有一个容器以不正常的状态(非 0 的返回码)退出。这个状态的出现,意味着你得想办 法 Debug 这个容器的应用,比如查看 Pod 的 (php):匹配所有不具有标签name=php的资源对象 也可以多个条件一起使用。 标签和标签选择器共同构成了k8s系统中最核心的应用模型,使得被管理对象能够被精细的分组管理,同时实现了整 个集群的高可用性。 17 www.h3c.com Confidential 秘密 17 17 K8s基本概念和术语介绍(RC) RC Replication Controller(副本管理器)和RS(Replica manager组件就得到通知,定期巡检系统中存活的目标pod,并确保目 标pod实例的数量刚好等于此rc的期望值,如果有过多pod运行,系统就会停掉一些,否则会创建一些。通过rc, kubenetnes实现了用户应用集群的高可靠性,并大大减少了很多运维工作。 Replication Controller在k8s 1.2版本之后升级成了新的概念,Replica Set(下一代RC),Replicas Set支持基于集 合的标签0 码力 | 49 页 | 4.11 MB | 1 年前3
 基于Kubernetes构建容器云平台的实践
 - UCloud优刻得实验室负责⼈ 叶理灯Calico/Flannel: 基于 BGP、IPIP、VXLAN 或⽤用户态程序, 每个节点需要部署 Agent程 序, 数据需要进⾏行行单独的存储(etcd),整 体上⽐比较复杂、⽽而复杂往往和可靠性成反⽐比 Dual Stack IPv4 IPv6 CIDR /64 --- IPv4 --- IPv6 集群外 服务器器 Core Core 接⼊入交换机 6to4 tunnel 还可以对集群进⾏行行配置更更新、删除等操作。 Operator Server Think in Cloud . 北北京 Operator管理理⽆无状态的服务 特性 A. ⽆无状态⽔水平弹缩: ⽀支持动态扩缩容 B. 容错处理理: 通过kubernetes validating admission configuration校验⽤用 户下发的编排的crd实例例,同时⾃自动恢复⽤用户误操作的该crd维护的资源 C0 码力 | 30 页 | 3.52 MB | 1 年前3 基于Kubernetes构建容器云平台的实践
 - UCloud优刻得实验室负责⼈ 叶理灯Calico/Flannel: 基于 BGP、IPIP、VXLAN 或⽤用户态程序, 每个节点需要部署 Agent程 序, 数据需要进⾏行行单独的存储(etcd),整 体上⽐比较复杂、⽽而复杂往往和可靠性成反⽐比 Dual Stack IPv4 IPv6 CIDR /64 --- IPv4 --- IPv6 集群外 服务器器 Core Core 接⼊入交换机 6to4 tunnel 还可以对集群进⾏行行配置更更新、删除等操作。 Operator Server Think in Cloud . 北北京 Operator管理理⽆无状态的服务 特性 A. ⽆无状态⽔水平弹缩: ⽀支持动态扩缩容 B. 容错处理理: 通过kubernetes validating admission configuration校验⽤用 户下发的编排的crd实例例,同时⾃自动恢复⽤用户误操作的该crd维护的资源 C0 码力 | 30 页 | 3.52 MB | 1 年前3
 第29 期| 2023 年9 月- 技术雷达thoughtworks.com/cn/radar/faq © Thoughtworks, Inc. All Rights Reserved. 4 Thoughtworks 技术雷达 技术雷达是具有前瞻性的。为了给新的技术条目腾出空间,我们挪出了近期没有发生太多变化的技术条目,但 略去某项技术并不表示我们不再关心它。 暂缓 评估 试验 采纳 采纳:我们强烈主张业界采用这些技术。我们会 在适当时候将其用于我们的项目。 相关话题展开讨论。这是有史以来第一次,我们需要一个可视化指南来 理清不同 AI 的类别和功能(即使在 JavaScript 生态系统十分混乱的时期,我们也从未采取过这样的做法)。作 为一家开创 CI、CD 等突破性工程实践历史的软件咨询公司,我们对于使用 AI 辅助软件开发特别感兴趣。因此, 本期技术雷达讨论了许多代码辅助工具,如 GitHub Copilot、Tabnine 和 Codeium。我们兴奋于 open-source 随着应用开发变得越来越动态和复杂,交付风格一致且好用的产品成为了一项挑战,尤其是在有多个团队参与 不同产品开发的大型组织中。设计系统定义了一系列的设计模式、组件库以及良好的设计和工程实践,以确保 数字产品的一致性。设计系统从过去的企业风格指南演变而来,提供易于查找和使用的共享组件库和文档。通 常,设计系统的风格指南以代码的形式记录并进行版本控制,比简单的文档记录更加清晰且易于维护。设计系 统已经成为跨团队0 码力 | 43 页 | 2.76 MB | 1 年前3 第29 期| 2023 年9 月- 技术雷达thoughtworks.com/cn/radar/faq © Thoughtworks, Inc. All Rights Reserved. 4 Thoughtworks 技术雷达 技术雷达是具有前瞻性的。为了给新的技术条目腾出空间,我们挪出了近期没有发生太多变化的技术条目,但 略去某项技术并不表示我们不再关心它。 暂缓 评估 试验 采纳 采纳:我们强烈主张业界采用这些技术。我们会 在适当时候将其用于我们的项目。 相关话题展开讨论。这是有史以来第一次,我们需要一个可视化指南来 理清不同 AI 的类别和功能(即使在 JavaScript 生态系统十分混乱的时期,我们也从未采取过这样的做法)。作 为一家开创 CI、CD 等突破性工程实践历史的软件咨询公司,我们对于使用 AI 辅助软件开发特别感兴趣。因此, 本期技术雷达讨论了许多代码辅助工具,如 GitHub Copilot、Tabnine 和 Codeium。我们兴奋于 open-source 随着应用开发变得越来越动态和复杂,交付风格一致且好用的产品成为了一项挑战,尤其是在有多个团队参与 不同产品开发的大型组织中。设计系统定义了一系列的设计模式、组件库以及良好的设计和工程实践,以确保 数字产品的一致性。设计系统从过去的企业风格指南演变而来,提供易于查找和使用的共享组件库和文档。通 常,设计系统的风格指南以代码的形式记录并进行版本控制,比简单的文档记录更加清晰且易于维护。设计系 统已经成为跨团队0 码力 | 43 页 | 2.76 MB | 1 年前3
共 44 条
- 1
- 2
- 3
- 4
- 5














