Kubernetes 异常配置检测框架顾静, 阿里云 邓隽, 阿里云 Kubernetes 异常配置检测框架 我们来自阿里云容器服务 • 顾静,研发工程师 • 邓隽,技术专家 我们参与打造 • 容器服务(ACK/ASK) • 容器镜像服务(ACR) • 服务网格(ASM) • … 1 Kubernetes 典型异常 2 检测框架演进 3 生产实践 4 总结 Kubernetes 使用日常 • 应用部署 • • 集群扩容 • 组件升级 • … • 找出集群不正常工作的原因 : ( Kubernetes 典型异常 组件异常 • API Server Load Balancer 异常 • API Server Pod 异常 影响 • 通过 API Server 访问集群概率失败 • 升级集群失败 Load Balancer Service Master API Server Pod Server Pod Kubernetes 典型异常 网络异常 • 安全组、路由表配置错误 • 节点防火墙软件等修改 iptables、内核参数 • 网络链路长,手动排查成本高 异常影响 • 应用间无法正常通信 • 集群内 Controller 无法正常工作 YUM 安装自动运维工具 自动安装依赖 firewalld 网络未知原因导致异常 Node Pod eth0 调用 iptables0 码力 | 31 页 | 9.57 MB | 1 年前3
Pod 容忍节点异常时间调整Pod 容忍节点异常时间调整 容忍节点异常时间调整 1. 原理说明 原理说明 Kubernetes 集群节点处于异常状态之后需要有⼀个等待时间,才会对节点上的 Pod 进⾏驱逐。那么针对部分关键业务,是否可以调整这个时间,便于在节点发⽣异常时及时将 Pod 驱逐 并在别的健康节点上重建? 要解决这个问题,我们⾸先要了解 Kubernetes 在节点异常时驱逐 Pod 的机制。 在 Kubernetes 参数,指定当节点出现异常(如 NotReady)时 Pod 还将在这个节点上运⾏多⻓的时间。 那么,节点发⽣异常到 Pod 被驱逐的时间,就取决于两个参数:1. 节点实际异常到被判断为不健康的时间;2. Pod 对节点不健康的容忍时间。 Kubernetes 集群中默认节点实际异常到被判断为不健康的时间为 40s,Pod 对节点 NotReady 的容忍时间为 5min,也就是说,节点实际异常 5min40s(340s)后,节点上的 nodeStatusUpdateFrequency 参数(Kubelet 向主控节点汇报节点状态的时间间隔)⼤ N 倍; 这⾥ N 指的是 kubelet 发送节点状态的重试次数。 Pod 容忍节点异常时间调整 Copyright © 2012-2021 UCloud 优刻得 1/4 如需修改该参数,请逐台在三台 逐台在三台 Master 节点上 节点上进⾏如下操作: 1. 在 ControllerManager0 码力 | 4 页 | 104.64 KB | 1 年前3
Java 应用与开发 - 异常处理大纲 异常的概念及分类 Java 异常处理机制 Java 应用与开发 异常处理 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 October 30, 2018 大纲 异常的概念及分类 Java 异常处理机制 学习目标 1. 掌握 Java 异常的概念和分类 2. 深入理解 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 C++ 中的异常处理 O 《The C++ Programming Language》 ▶ 一个库的作者可以检测出发生了运行时错误,但一般不知道 怎样去处理它们(因为和用户具体的应用有关); ▶ 另一方面,库的用户知道怎样处理这些错误,但却无法检查 它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem resolution.) 大纲 异常的概念及分类 Java0 码力 | 33 页 | 626.40 KB | 1 年前3
基于Rust-vmm实现Kubernetes运行时0 码力 | 27 页 | 34.17 MB | 1 年前3
Object Pascal 参考手册(Ver 0.1) TForm1(继承自 TForm)和它的一个实例 Form1。TForm1 包含一个按钮 Button1,它是 TButton 的一个实例;还包含一个过程 TForm1.Button1Click,在运行时,当用户按 下 Button1 时 它 将 被 执 行 。 TForm1.Button1Click 隐 藏 Form1 并 显 示 Form2 ( 调 用 Form2.ShowModal),Form2 CancelButtonClick 将 被 调 用 , 它 关 闭 Form2 。 这 个 过 程 ( 以 及 Unit1 单 元 的 TForm1.Button1Click)是作为事件句柄,因为它们响应程序运行时发生的事件。事件句柄通过窗体 文件(Windows 下是 .dfm,Linux 下是 .xfm)赋给指定的事件(事件是一种特殊的属性)。 当 Greeting 程序启动时,显示 Form1 而隐藏 heading) • 一个 uses 子句(可选),和 • 一个包含声明和命令语句的块(block) 程序头指定程序的名称;uses 子句列出了程序引用的单元;块包含声明和命令语句,当程序运行时, 这些命令将被执行。IDE 期望在一个工程文件(.dpr)中找到以上三种元素。 下面的实例显示了一个叫做 Editor 的程序: 1 program Editor; 2 30 码力 | 168 页 | 868.25 KB | 1 年前3
openEuler 23.09 技术白皮书进行免重启修复,原理主要在于如何完成动态函数替换, openEuler 上的 livepatch 与 Linux 主线上的实现略有不同,采用直接修改指令的方法,而非主线基于 ftrace 实现, 在运行时直接跳转至新函数,无需经过查找中转,效率较高。 • Sharepool 共享内存:Sharepool 共享内存是一种在多个进程之间共享数据的技术。它允许多个进程访问同一块内存 区域,从而实现数据 虚拟化方案、openAMP 轻量化混合部署方案,用户可以根据自己的使用场景选择最优的 部署方案。同时支持 ROS humble 版本,集成 ros-core、rosbase、SLAM 等核心软件包,满足 ROS2 运行时要求。未来 openEuler Embedded 将协同 openEuler 社区生态伙伴、用户、开发者,逐步扩展支持 RISC-V、龙芯等芯片架构,丰富 工业中间件、ROS 中间件、仿真系统等能力,打造嵌入式领域操作系统解决方案。 混合关键性部署框架 openEuler Embedded 的混合关键性部署框架构建在融合弹性底座之上,通过一套统一的框架屏蔽下层融合弹性底座 形态的不同,从而实现 Linux 和其他 OS 运行时便捷地混合部署。依托硬件上的多核能力使得通用的 Linux 和专用的实时 操作系统有效互补,从而达到全系统兼具两者的特点,并能够灵活开发、灵活部署。 混合关键性部署框架的组成主要有四大部分:生命周期管理、跨0 码力 | 52 页 | 5.25 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东149 12 异常处理 150 12.1 异常的概念及分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 12.1.1 什么是异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 12.1.2 Java 异常分类 . . 152 12.1.4 常见异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 12.2 Java 异常处理机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 12.2.1 捕获异常 . . . . . . . 156 viii 12.2.3 操纵异常对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 12.2.4 捕获和处理 IOException . . . . . . . . . . . . . . . . . . . . . . . . 158 12.2.5 声明抛出异常 . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译么简单。 执行mvn compile exec:java 可以看到程序成功的运行(由于 Shiro 默认在 debug 或更底层才 记录日志,所以你不会看到任何 Shiro 的日志输出--只要运行时没有错误提示,你就可以知道 已经成功了)。 上面所加入的代码做了下面的事情: 1. 使用 Shiro 的 IniSecurityManagerFactory 加载了我们的shiro.ini 文件,该文件存在于 currentUser.login(token); } 就是这样,不能再简单了。 但如果登录失败了呢,你可以捕获所有异常然后按你期望的方式去处理: try { currentUser.login( token ); //无异常,说明就是我们想要的! } catch ( UnknownAccountException uae ) { //username lae ) { //账号锁住了,不能登入。给个提示? } ... 更多类型异常 ... } catch ( AuthenticationException ae ) { //未考虑到的问题 - 错误? } 这里有许多不同类别的异常你可以检测到,也可以抛出你自己异常。详见 AuthenticationException JavaDoc 小贴士: 最好的方式0 码力 | 196 页 | 2.34 MB | 1 年前3
2019-2021 美团技术年货 前端篇Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 C/C++ 开发,实现了 Flutter 的渲染管线和 Dart 运行时等基础能力;最下层为嵌入层,负责与平台相关的能力实现。显然我们要做的 是将嵌入层移植到鸿蒙上,确切地说,我们要通过鸿蒙原生提供的平台能力,重新实 前端 < 3 现一遍 Flutter 嵌入层。 语言完成了扩展),详细架构如下图所示: 路由库架构图 前端 < 23 (3)Web 端需要通过大量 JS 实现功能的依赖库,如请求库 由于在现有的 Web 请求中统一封装着大量的业务处理逻辑(如拦截器、异常上报 等),如果用 Dart 重新实现一遍,成本还是较高的。想复用原有基于 Axios( JS 请 求库) 封装的请求库就相当于让 Plugin 的 Web 平台实现使用 JS 语言。Dart 和 FlutterWeb 特殊场景下的资源优化,如:字体图标精简、Runtime Manifest 隔离、Mobile/PC 分平台打包等; ● 加载优化:在编译阶段进行静态资源优化后,我们在前端运行时,支持了资源 前端 < 41 预加载与按需加载,通过设定合理的加载时机,从而减小初始代码体积,提升 页面首屏的渲染速度。 下面,我们分别对各项优化进行详细的说明。 四、设计与实践 4.10 码力 | 738 页 | 50.29 MB | 1 年前3
Apache Shiro参考手册中文版让我像下面这样做: 这就是了!它再简单不过了。 但如果他们的登录尝试失败了会怎样?你能够捕获各种具体的异常来告诉你到底发生了什么,并允许你去处理并作 出相应反应: 你能够检查到许多不同类型的异常,或抛出你自己的自定义条件的异常——Shiro 可能不提供的。请参见 AuthenticationException JavaDoc 获取更多。 Handy 置。 如果你真想这么做的话,你得想问问你自己(或用户列表)。 [users] [users] section 允许你定义一组静态的用户帐户。这在大部分拥有少数用户帐户或用户帐户不需要在运行时被动态地 创建的环境下是很有用的。以下是一个例子: Automatic IniRealm 仅定义非空的[users]或[roles] section 进制,你可以指定说明: [roles] [roles] section 允许你把定义在[users] section 中的角色与权限关联起来。另外,这在大部分拥有少数用户帐户或用户 帐户不需要在运行时被动态地创建的环境下是很有用的。以下是一个例子: Line Format 在[roles] section 中每个配置行必须定义一个映射以下格式的角色到权限的键/值:0 码力 | 92 页 | 1.16 MB | 1 年前3
共 711 条
- 1
- 2
- 3
- 4
- 5
- 6
- 72













