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
云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)......................................................................................... 52 4.2 运行时安全能力建设...................................................................................53 4.2.1Web 应用和 API 安全...........................................................................54 4.2.2 云原生运行时安全................................................................................56 4.2.3 网络微隔离.. 6 容器镜像安全风险............................................................................. 21 图 7 容器运行时安全风险......................................................................... 23 图 8 针对 k8s 进行攻击的路径分析0 码力 | 72 页 | 2.44 MB | 1 年前3
基于Consul的多Beats接入管控与多ES搜索编排测试并下发配置 全网重启filebeat 检测数据是否上报 传统Beats接入流程 配置更改 现网配置是否全部一致? 日志上报是否有延时? Filebeat是否资源消耗过多? Filebeat异常退出如 何处理? 如何做上报性能调优? 6 系统架构 云Kafka Api-server2 Consul 云ES Agent-1 Agent-N Agent-1 Agent-N Consul Master 获取master列表 向master发起Agent注册逻辑 返回agent id 增删改策略 获取策略列表 启动管控收集进程 watch配置变化 9 Agent运行时 10 日志接入 购买云ES 录入ES 创建主机组 添加主机 配置日志主题 选择主机组 日志配置 权限管理 资源设置 提交策略 Kibana查日 志 集中管理配置 • 稳 准 • 快速接入(5min) • 配置UI化标准化 • 配置变更实时感知 • 部署全自动化 • 多Beats支持 • Beats运行时cpu/mem可控 • Agent监控视图 • 离线/容量/延时监控 • 分布式集群管理 • 异常快速定位 • 关联公司CMDB • 资源权限管理 • 配置灰度控制发布 • 配置一致性检测 • 日志覆盖率 12 案例:如何管控整个日志数据流相关资源性能与容量?0 码力 | 23 页 | 6.65 MB | 1 年前3
1.3 MOSN 在云原生的探索及实践Debug log • Request/Connection metrics Envoy 和 MOSN 交互层 • MOSN(GoLang) 侧耗时统计 • 交互异常数统计 • GoLang 程序异常场景下的容灾 处理 MOSN(GoLang) • Admin API • Debug log • GoLang runtime 指标 CGO 断点调试支持 GoLang recover 失效 • GoLang 返回的字符串被截断 • export function type 关联出错 • 不同方式加载 CGO 程序,则 GoLang runtime 运行时 机可能不一样 • CGO 交互内存生命周期管理 • 结构体内存对齐 • GoLang runtime invalidptr check Envoy 相关 • 默认配置不支持 默认配置不支持 HTTP1.0 • Envoy 时间模块使用的是 UTC • upstream 支持 HTTP2 需要显示配置 • 访问日志换行需要自行配置 format 支持 • 异常场景下响应状态码不标准 • 各个 worker 处理请求均衡性问题 • access_log handler 执行顺序不合理 • etc MOE 实践介绍 — 运行效果 MOE 中 MOSN0 码力 | 36 页 | 35.61 MB | 1 年前3
第29 期| 2023 年9 月- 技术雷达Insomnia 58. IntelliJ HTTP 客户端插件 59. KEDA 60. Kubeconform 61. mob 62. MobSF 63. Mocks Server 64. Prisma 运行时防护 65. Terratest 66. Thanos 67. Yalc 评估 68. ChatGPT 69. Codeium 70. GitHub 合并队列 71. Google Bard 72 Docker Desktop 的首选方案。我们持续在几个项目中使用它来提供 Docker 容器运行时的 Lima VM,在 macOS 上配置 Docker CLI,并处理端口转发和挂载卷。Colima 可以配置 为使用 containerd 作为其运行时,这也是大多数托管的 Kubernetes 服务上的运行时,可以提高重要的开发到 生产环境的一致性。 25. CloudEvents 试验 编写的一个零依赖的 WebAssembly(WASM)运行时。尽管运行时本身与语言无关,我们 仍想对 Go 开发者们强调 wazero,因为它提供了一种很方便的方式, 使用任何 符合标准的语言 编写的 wasm 模 块来扩展你的 Go 应用程序。它不依赖于 CGO,所以你可以很容易地将你的 Go 应用程序交叉编译到其他平台。 尽管在选择 WASM 运行时 的时候你有很多候选项,但我们仍认为 wazero0 码力 | 43 页 | 2.76 MB | 1 年前3
Docker 从入门到实践 0.9.0(2017-12-31)ubuntu:16.04 就包含了完整的一套 Ubuntu 16.04 最小系统的 root 文件 系统。 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文 件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含任何动态数据,其内容在构建之后也不会被改变。 分层存储 因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在 。 镜像 20 Docker 容器 镜像( Image )和容器( Container )的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删 除、暂停等。 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命 名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚 在宿主运行更加安 全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。 前面讲过镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层, 在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容 器存储层。 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存 于容器存储层的信息都会随容器删除而丢失。0 码力 | 370 页 | 6.73 MB | 1 年前3
尚硅谷大数据技术之Hadoop(生产调优手册)人工智能资料下载,可百度访问:尚硅谷官网 全部相加除以 task 数量 ➢ IO rate std deviation:方差、反映各个 mapTask 处理的差值,越小越均衡 2)注意:如果测试过程中,出现异常 (1)可以在 yarn-site.xml 中设置虚拟内存检测为 false –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网 注意:当我们将目录设置为 COLD 并且我们未配置 ARCHIVE 存储目录的情况下,不 可以向该目录直接上传文件,会报出异常。 (2)手动转移 [atguigu@hadoop102 hadoop-3.1.3]$ hdfs mover /hdfsdata (3)检查文件块的分布 [atguigu@hadoop102 (5)再观察上一个窗口 Safe mode is OFF (6)HDFS 集群上已经有上传的数据了 6.3 慢磁盘监控 “慢磁盘”指的时写入数据非常慢的一类磁盘。其实慢性磁盘并不少见,当机器运行时 间长了,上面跑的任务多了,磁盘的读写性能自然会退化,严重时就会出现写入数据延时的 尚硅谷大数据技术之 Hadoop(生产调优手册) —————————0 码力 | 41 页 | 2.32 MB | 1 年前3
腾讯基于 Kubernetes 的企业级容器云实践-罗韩梅组件自身HA机制,如docker; • 多地域多可用区的容灾设计 • 管理机挂掉:对应用无影响 • 计算节点挂掉:跨机迁移 • 健康探针 ① 存活探针 ② 就绪探针 • 负载均衡 • 重启机制 ① 区分异常原因 ② 本地重启/跨机重启 • 黑名单机制 • 集群核心数据的备份和恢复 ① Etcd ② 核心数据库 • 云盘机制保护应用数据 • 举例:1.4升级1.9版本 • Pod Hash发生变化 • cluster1。该应用有25个实例,每个实例需要2个GPU卡。用 来提供图片识别的OCR服务。 • 当该服务要升级新的版本时,如果对所有实例停止,则会造 成服务中断;如果采用滚动升级,无法保证升级过程是否有 异常,以及无法充分验证新版本的可用性(即使经过了测试 阶段的测试)。 • 通常采用灰度升级的方式:即选择某一个或N个实例先升级到 新版本,在充分稳定验证后,再考虑升级其他实例,而该灰 度的过程可以分为任意批次。有时为了验证多个版本,一个 GPU上的多个VM,GPUvm将物理GPU分成几个部分,并将每个 部分分配给单个VM。 NVIDIA GRID 在硬件层面实现GPU虚拟化,每个容器可以绑定一个虚拟GPU NVIDIA Docker 通过将GPU设备及运行时的库转为volume挂载到容器中实现了容 器与驱动的解耦。但是一个GPU设备仅能挂载到一个容器中,不 支持容器间共享GPU设备 ConvGPU 仅支持内存资源的共享且仅处理单个GPU 容器使用GPU的问题:0 码力 | 28 页 | 3.92 MB | 1 年前3
Docker 从入门到实践 0.4尽管控制组不负责隔离容器之间相互访问、处理数据和进程,它在防止拒绝服务(DDOS)攻击方面是必 不可少的。尤其是在多用户的平台(比如公有或私有的 PaaS)上,控制组十分重要。例如,当某些应用程 序表现异常的时候,可以保证一致地正常运行和性能。 控制组机制始于 2006 年,内核从 2.6.24 版本开始被引入。 控制组 Docker —— 从入门到实践 81 控制组 运行一个容器或应用程序的核心是通过 SELinux, GRSEC 等。 Docker 当前默认只启用了能力机制。用户可以采用多种方案来加强 Docker 主机的安全,例如: 在内核中启用 GRSEC 和 PAX,这将增加很多编译和运行时的安全检查;通过地址随机化避免恶意探 测等。并且,启用该特性不需要 Docker 进行任何配置。 使用一些有增强安全特性的容器模板,比如带 AppArmor 的模板和 Redhat 带 SELinux CMD EXPOSE ENV Docker —— 从入门到实践 89 指令 格式为 ENV。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。 例如 ENV PG_MAJOR 9.3 ENV PG_VERSION 9.3.4 RUN curl -SL http://example.com/postgres-$PG_VERSION 0 码力 | 179 页 | 2.27 MB | 1 年前3
共 126 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13













