 Kubernetes Operator 实践 - MySQL容器化有状态服务容器化 1. 背景介绍 2. Operator 的基本原理 3. MySQL Operator 设计实践 4. 小结 无状态服务 服务调度 有状态服务集群 服务调度 状态保存 集群管理 有状态服务 服务调度 状态保存 带来的新挑战 服务调度 状态存储 集群管理 成员管理 扩缩容 故障迁移 高可用 CoreOS 提出了 operator Deployment StatefulSet mysql pod-1 … … mysql pod-N NodeN Mysql Operator pod … … mysql Pod-T 0. 创建 CRD 3. 集群管理 2. 调度 pod Ceph MySQL-Operator 主流程 API Server Reflector DeltaFIFO Local Storage Callbacks OnAdd OnUpdate CRD • Spec:配置 & 期望状态 • Status:当前状态 MySQL 配置 • 版本 • 端口 • 存储信息 • 配置文件 集群配置 • 副本数 • 高可用模式 K8s 调度信息 • 资源套餐 • 亲和性信息 • NodeSelector 使用 CRD 2. client-go 配套工具 apiVersion: apiextensions.k8s.io/v1beta10 码力 | 42 页 | 4.77 MB | 1 年前3 Kubernetes Operator 实践 - MySQL容器化有状态服务容器化 1. 背景介绍 2. Operator 的基本原理 3. MySQL Operator 设计实践 4. 小结 无状态服务 服务调度 有状态服务集群 服务调度 状态保存 集群管理 有状态服务 服务调度 状态保存 带来的新挑战 服务调度 状态存储 集群管理 成员管理 扩缩容 故障迁移 高可用 CoreOS 提出了 operator Deployment StatefulSet mysql pod-1 … … mysql pod-N NodeN Mysql Operator pod … … mysql Pod-T 0. 创建 CRD 3. 集群管理 2. 调度 pod Ceph MySQL-Operator 主流程 API Server Reflector DeltaFIFO Local Storage Callbacks OnAdd OnUpdate CRD • Spec:配置 & 期望状态 • Status:当前状态 MySQL 配置 • 版本 • 端口 • 存储信息 • 配置文件 集群配置 • 副本数 • 高可用模式 K8s 调度信息 • 资源套餐 • 亲和性信息 • NodeSelector 使用 CRD 2. client-go 配套工具 apiVersion: apiextensions.k8s.io/v1beta10 码力 | 42 页 | 4.77 MB | 1 年前3
 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波机 制 总体架构 分 布 式 监 控 资源管理|资源调度 复制与迁移|高可用保障|备份恢复 自 动 化 运 维 应用 DB中间件 数据存储 应用 VIP 告警分析 告警发送 指标画图 趋势预测 自定义脚本 Open API 数据校验 实例迁移 秒级监控诊断 慢日志分析 资源池调度 调度规则 容器调度 资源池 容器及实例创建 应用交付 资源申请 IO类型 为了保证MySQL的高可用,需要在Docker容器分配时如何保障主从不在同一宿主机上。我们通过自研 Docker容器调度平台管理所有宿主机和容器,自定义Docker容器的分配算法。实现了MySQL的高密度,隔离 化,高可用化部署。 调度规则: 1.同一复制集群的实例在不同主机上。 2.优先分配CPU、内存、磁盘空间资源最空闲的主机。 3.根据IO需求调度容器创建在不同IO类型的主机。 4.申请新集群时,若IO要求高则按照宿主机的IO情况,优先选择IO最空闲的主机。 接入,且单机密度可控的情况下,网 络消耗不会过载。另外目前我们已经在线下尝试结合Ovs+Dpdk的方案实现网络隔离。 容器的调度 •提供两种API: •Docker API的封装,用于创建,删除,修改。 •集群管理API,用于集群管理。 •Scheduler调度:选择最优节点创建容器。 •Agent:用于连接监控模块,上报系统运行状况。 GRPC API Schedule Filter0 码力 | 32 页 | 7.11 MB | 1 年前3 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波机 制 总体架构 分 布 式 监 控 资源管理|资源调度 复制与迁移|高可用保障|备份恢复 自 动 化 运 维 应用 DB中间件 数据存储 应用 VIP 告警分析 告警发送 指标画图 趋势预测 自定义脚本 Open API 数据校验 实例迁移 秒级监控诊断 慢日志分析 资源池调度 调度规则 容器调度 资源池 容器及实例创建 应用交付 资源申请 IO类型 为了保证MySQL的高可用,需要在Docker容器分配时如何保障主从不在同一宿主机上。我们通过自研 Docker容器调度平台管理所有宿主机和容器,自定义Docker容器的分配算法。实现了MySQL的高密度,隔离 化,高可用化部署。 调度规则: 1.同一复制集群的实例在不同主机上。 2.优先分配CPU、内存、磁盘空间资源最空闲的主机。 3.根据IO需求调度容器创建在不同IO类型的主机。 4.申请新集群时,若IO要求高则按照宿主机的IO情况,优先选择IO最空闲的主机。 接入,且单机密度可控的情况下,网 络消耗不会过载。另外目前我们已经在线下尝试结合Ovs+Dpdk的方案实现网络隔离。 容器的调度 •提供两种API: •Docker API的封装,用于创建,删除,修改。 •集群管理API,用于集群管理。 •Scheduler调度:选择最优节点创建容器。 •Agent:用于连接监控模块,上报系统运行状况。 GRPC API Schedule Filter0 码力 | 32 页 | 7.11 MB | 1 年前3
 MySQL 8.0.17 调优指南(openEuler 20.09)● 对性能进行分析时,要多方面分析系统的资源瓶颈所在,因为系统某一方面性能 低,也许并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%时, 很可能是内存容量太小,因为CPU忙于处理内存调度。 ● 一次只对影响性能的某方面的一个参数进行调整,多个参数同时调整的话,很难 界定性能的影响是由哪个参数造成的。 ● 由于在进行系统性能分析时,性能分析工具本身会占用一定的系统资源,如CPU 对于不同的IO设备,通过在OS层面调整一些IO相关参数配置,可以有效提升服务器性 能。 方法 Linux参数 参数含义 操作 /sys/block/$ {device}/queue/ scheduler 配置IO调度,deadline或者noop更 适用于MySQL数据库场景。命令中 的${device}为数据盘名称,根据实 际磁盘名称进行修改。NVME盘不 支持此操作。 echo deadline > /sys/0 码力 | 11 页 | 223.31 KB | 1 年前3 MySQL 8.0.17 调优指南(openEuler 20.09)● 对性能进行分析时,要多方面分析系统的资源瓶颈所在,因为系统某一方面性能 低,也许并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%时, 很可能是内存容量太小,因为CPU忙于处理内存调度。 ● 一次只对影响性能的某方面的一个参数进行调整,多个参数同时调整的话,很难 界定性能的影响是由哪个参数造成的。 ● 由于在进行系统性能分析时,性能分析工具本身会占用一定的系统资源,如CPU 对于不同的IO设备,通过在OS层面调整一些IO相关参数配置,可以有效提升服务器性 能。 方法 Linux参数 参数含义 操作 /sys/block/$ {device}/queue/ scheduler 配置IO调度,deadline或者noop更 适用于MySQL数据库场景。命令中 的${device}为数据盘名称,根据实 际磁盘名称进行修改。NVME盘不 支持此操作。 echo deadline > /sys/0 码力 | 11 页 | 223.31 KB | 1 年前3
 Oracle 和 MySQL 性能优化感悟原理:修改isa指针 isa swizzling 特点:针对一个对象 原理:修改isa指针 基本步骤 应用场景 优点/缺点/坑 isa swizzling 特点:针对一个对象 1、(动态)创建目标类子类 2、(动态)为子类添加方法 3、修改目标对象的isa 原理 基本步骤 应用场景 优点/缺点/坑 isa swizzling+NSProxy 1、从NSProxy派生一个子类, 2、实现那三个方法0 码力 | 19 页 | 3.82 MB | 1 年前3 Oracle 和 MySQL 性能优化感悟原理:修改isa指针 isa swizzling 特点:针对一个对象 原理:修改isa指针 基本步骤 应用场景 优点/缺点/坑 isa swizzling 特点:针对一个对象 1、(动态)创建目标类子类 2、(动态)为子类添加方法 3、修改目标对象的isa 原理 基本步骤 应用场景 优点/缺点/坑 isa swizzling+NSProxy 1、从NSProxy派生一个子类, 2、实现那三个方法0 码力 | 19 页 | 3.82 MB | 1 年前3
 MySQL 企业版功能介绍企业级防火墙通知管理员 SQL 语句活动与批准的白名单不匹配。 MySQL 企业级审计 借助 MySQL 企业级审计,企业可以快速无缝地在现有应用中添加基于策略的审计合规性。您可 以动态启用用户级活动日志、实施基于活动的策略、管理审计日志文件以及将 MySQL 审计集成 到 Oracle 和第三方解决方案中。 MySQL Enterprise Monitor MySQL Enterprise0 码力 | 6 页 | 509.78 KB | 1 年前3 MySQL 企业版功能介绍企业级防火墙通知管理员 SQL 语句活动与批准的白名单不匹配。 MySQL 企业级审计 借助 MySQL 企业级审计,企业可以快速无缝地在现有应用中添加基于策略的审计合规性。您可 以动态启用用户级活动日志、实施基于活动的策略、管理审计日志文件以及将 MySQL 审计集成 到 Oracle 和第三方解决方案中。 MySQL Enterprise Monitor MySQL Enterprise0 码力 | 6 页 | 509.78 KB | 1 年前3
 谈谈MYSQL那点事对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 时读,类似种涉及交易的或者动态实时报表统计的都要采 用这种架构模式 弱一致性 如果是弱一致性的话,可以通过在 M2 上面分担一些读压力 和流量,比如一些报表的读取以及静态配置数据的读取模块 都可以放到 M2 上面。比如月统计报表,比如首页推荐商品0 码力 | 38 页 | 2.04 MB | 1 年前3 谈谈MYSQL那点事对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 时读,类似种涉及交易的或者动态实时报表统计的都要采 用这种架构模式 弱一致性 如果是弱一致性的话,可以通过在 M2 上面分担一些读压力 和流量,比如一些报表的读取以及静态配置数据的读取模块 都可以放到 M2 上面。比如月统计报表,比如首页推荐商品0 码力 | 38 页 | 2.04 MB | 1 年前3
共 6 条
- 1













