 Kubernetes Operator 实践 - MySQL容器化Kubernetes Operator 实践 —— MySQL 容器化 刘林 搜狗资深工程师 关于我 搜狗商业平台研发部 资深开发工程师 l 主要从事商业平台研发工作,在构建高性能、高可用大规模 系统方面有丰富的实践经验 l 目前专注于云计算、DevOps 等相关领域,负责搜狗商业云 平台的设计研发工作 刘林 1. 背景介绍 2. Operator 的基本原理 3. MySQL Cluster2 Node Node Node Node 商业云平台 BizCloud • 弹性伸缩能力不足 • 机器资源利用率不高 • 服务管理复杂 问题 有状态服务的需求越来越多 有状态服务容器化 1. 背景介绍 2. Operator 的基本原理 3. MySQL Operator 设计实践 4. 小结 无状态服务 服务调度 有状态服务集群 服务调度 状态保存 集群管理 MySQL Operator 设计实践 4. 小结 MySQL 容器化目标 • 快速部署 MySQL 主从集群 • 支持 MySQL 集群高可用 • 支持 MySQL 集群弹性伸缩 • 支持 MySQL 5.5 & 5.7 Master Slave1 Slave2 MySQL 集群:1 主 2 从 MySQL 容器化系统架构 REST CLI Kubernetes Master0 码力 | 42 页 | 4.77 MB | 1 年前3 Kubernetes Operator 实践 - MySQL容器化Kubernetes Operator 实践 —— MySQL 容器化 刘林 搜狗资深工程师 关于我 搜狗商业平台研发部 资深开发工程师 l 主要从事商业平台研发工作,在构建高性能、高可用大规模 系统方面有丰富的实践经验 l 目前专注于云计算、DevOps 等相关领域,负责搜狗商业云 平台的设计研发工作 刘林 1. 背景介绍 2. Operator 的基本原理 3. MySQL Cluster2 Node Node Node Node 商业云平台 BizCloud • 弹性伸缩能力不足 • 机器资源利用率不高 • 服务管理复杂 问题 有状态服务的需求越来越多 有状态服务容器化 1. 背景介绍 2. Operator 的基本原理 3. MySQL Operator 设计实践 4. 小结 无状态服务 服务调度 有状态服务集群 服务调度 状态保存 集群管理 MySQL Operator 设计实践 4. 小结 MySQL 容器化目标 • 快速部署 MySQL 主从集群 • 支持 MySQL 集群高可用 • 支持 MySQL 集群弹性伸缩 • 支持 MySQL 5.5 & 5.7 Master Slave1 Slave2 MySQL 集群:1 主 2 从 MySQL 容器化系统架构 REST CLI Kubernetes Master0 码力 | 42 页 | 4.77 MB | 1 年前3
 基于 KUBERNETES 的 容器器 + AI 平台基于 KUBERNETES 的 容器器 + AI 平台 如何助⼒力力企业数字化和智能化转型 xiaoqin@caicloud.io VP of R&D 提纲 构建集群与管理理资源 - 73s 视频演示 多集群和镜像仓库 多租户和旧系统的集成 运⾏行行和构建应⽤用 Rudder - 应⽤用编排技术框架 Cyclone - 持续集成与交付引擎 运⾏行行 AI 应⽤用(机器器学习) kubeflow/tf-operator • 定义 TFJob Spec (CRD) • 跟踪 TensorFlow 任务运⾏行行状态 • ⽀支持分布式 TensorFlow 任务 KUBEFLOW 之上 • 借⼒力力容器器平台提供⽣生产级的集群资源管理理 • ⼯工作区隔离与共享 • 数据、模型、环境、应⽤用等 • 全⾯面⽀支持 AI ⼯工作流 • 探索开发 • 线上运⾏行行 关注并回复 kubecon180 码力 | 19 页 | 3.55 MB | 1 年前3 基于 KUBERNETES 的 容器器 + AI 平台基于 KUBERNETES 的 容器器 + AI 平台 如何助⼒力力企业数字化和智能化转型 xiaoqin@caicloud.io VP of R&D 提纲 构建集群与管理理资源 - 73s 视频演示 多集群和镜像仓库 多租户和旧系统的集成 运⾏行行和构建应⽤用 Rudder - 应⽤用编排技术框架 Cyclone - 持续集成与交付引擎 运⾏行行 AI 应⽤用(机器器学习) kubeflow/tf-operator • 定义 TFJob Spec (CRD) • 跟踪 TensorFlow 任务运⾏行行状态 • ⽀支持分布式 TensorFlow 任务 KUBEFLOW 之上 • 借⼒力力容器器平台提供⽣生产级的集群资源管理理 • ⼯工作区隔离与共享 • 数据、模型、环境、应⽤用等 • 全⾯面⽀支持 AI ⼯工作流 • 探索开发 • 线上运⾏行行 关注并回复 kubecon180 码力 | 19 页 | 3.55 MB | 1 年前3
 强大的音视频处理工具: FFmpeg16:20:32 获取 34 字幕分类 根据字幕信息嵌⼊到视频中的⽅式,可以把字幕分为: 软字幕 特点 过程可逆 可以提取出字幕⽂件,查看字幕源代码 包含 内挂字幕 ⼀般指字幕⽂件与视频⼀同封装在MKV⽂件中,播放时 需经过播放器处理解析显示(=VSFilter渲染) 外挂字幕 以单独的字幕⽂件形式存在,播放时经播放器处理解析 显示(=VSFilter渲染)到视频上 硬字幕=内嵌字幕 ⽬前有很多播放器⽀持渲染SSA、ASS字幕 最新版本:V4.00+ ASS字幕分类 软字幕 特点 过程可逆 可以提取、取出和查看源代码的 包含 内挂字幕 ⼀般指字幕⽂件与视频⼀同封装在MKV⽂件 中,播放时需经过VSFilter渲染 外挂字幕 字幕⽂件以单独形式存在,播放时经VSFilter 渲染到视频上 内嵌字幕 指字幕被以图形⽅式硬编码到视频中 变成视频数据本身=视频数据的⼀部分 input.mp4 -vf subtitles ffmpeg -i input.mp4 -vf subtitles==subtitle.s subtitle.s 获取 52 ⽐如视频是mkv的容器,内挂有srt字幕,则可以: 2. 嵌⼊ass字幕 举例 特殊 另外ffmpeg也⽀持: Picture-based subtitles =基 于图⽚的字幕 命令举例: 参数说明:0 码力 | 73 页 | 11.57 MB | 1 年前3 强大的音视频处理工具: FFmpeg16:20:32 获取 34 字幕分类 根据字幕信息嵌⼊到视频中的⽅式,可以把字幕分为: 软字幕 特点 过程可逆 可以提取出字幕⽂件,查看字幕源代码 包含 内挂字幕 ⼀般指字幕⽂件与视频⼀同封装在MKV⽂件中,播放时 需经过播放器处理解析显示(=VSFilter渲染) 外挂字幕 以单独的字幕⽂件形式存在,播放时经播放器处理解析 显示(=VSFilter渲染)到视频上 硬字幕=内嵌字幕 ⽬前有很多播放器⽀持渲染SSA、ASS字幕 最新版本:V4.00+ ASS字幕分类 软字幕 特点 过程可逆 可以提取、取出和查看源代码的 包含 内挂字幕 ⼀般指字幕⽂件与视频⼀同封装在MKV⽂件 中,播放时需经过VSFilter渲染 外挂字幕 字幕⽂件以单独形式存在,播放时经VSFilter 渲染到视频上 内嵌字幕 指字幕被以图形⽅式硬编码到视频中 变成视频数据本身=视频数据的⼀部分 input.mp4 -vf subtitles ffmpeg -i input.mp4 -vf subtitles==subtitle.s subtitle.s 获取 52 ⽐如视频是mkv的容器,内挂有srt字幕,则可以: 2. 嵌⼊ass字幕 举例 特殊 另外ffmpeg也⽀持: Picture-based subtitles =基 于图⽚的字幕 命令举例: 参数说明:0 码力 | 73 页 | 11.57 MB | 1 年前3
 Ubuntu 桌面培训 2010Lucid Lynx / • Ubuntu 默认没有提供您需要的软件。 • 您已经安装了您需要的软件,但有另外的软件和它提供相同或类似的功能,并且您 想尝试一下。 Ubuntu 包含了很多安装方便的预封装软件包。您可以用 Ubuntu 软件中心或者新立 得软件包管理器来安装它们。在应用程序菜单,单击 Ubuntu 软件中心启动 Ubuntu 软件中心。 图 II.33 启 动 Ubuntu 软 件 微变化会改变对象的相对位置。在建筑绘图这样对位置精确度有很高要求的应用中, 即使这种细微的变化也是非常重要的。使用 Draw,您有两种方式可以联合两个对 象,即分组与合并。 组合对象组合对象就像将对象放进一个容器,对象被组合后仍然保持其自身的设置。 您可以像移动一个实体一样移动组合并对所有同组的对象进行改变。组合操作都是可 撤销的,并且可以对组内对象单独进行操作。 使用 OpenOffice 应用程序 199 式间 的区别。 VIII.II 播放多媒体音视频 现在有多种开放的多媒体编码格式和容器: • FLAC:一种无损的音频编码 • Matroska (mkv):一种多媒体容器,可以使用所有编码格式(音频,视频,图像, 字幕) 340 播放多媒体音视频 目录 Lucid Lynx • Ogg:一种容器,可以使用 Vorbis,FLAC,Speex (音频)和 Theora (视频)。 •0 码力 | 540 页 | 26.26 MB | 1 年前3 Ubuntu 桌面培训 2010Lucid Lynx / • Ubuntu 默认没有提供您需要的软件。 • 您已经安装了您需要的软件,但有另外的软件和它提供相同或类似的功能,并且您 想尝试一下。 Ubuntu 包含了很多安装方便的预封装软件包。您可以用 Ubuntu 软件中心或者新立 得软件包管理器来安装它们。在应用程序菜单,单击 Ubuntu 软件中心启动 Ubuntu 软件中心。 图 II.33 启 动 Ubuntu 软 件 微变化会改变对象的相对位置。在建筑绘图这样对位置精确度有很高要求的应用中, 即使这种细微的变化也是非常重要的。使用 Draw,您有两种方式可以联合两个对 象,即分组与合并。 组合对象组合对象就像将对象放进一个容器,对象被组合后仍然保持其自身的设置。 您可以像移动一个实体一样移动组合并对所有同组的对象进行改变。组合操作都是可 撤销的,并且可以对组内对象单独进行操作。 使用 OpenOffice 应用程序 199 式间 的区别。 VIII.II 播放多媒体音视频 现在有多种开放的多媒体编码格式和容器: • FLAC:一种无损的音频编码 • Matroska (mkv):一种多媒体容器,可以使用所有编码格式(音频,视频,图像, 字幕) 340 播放多媒体音视频 目录 Lucid Lynx • Ogg:一种容器,可以使用 Vorbis,FLAC,Speex (音频)和 Theora (视频)。 •0 码力 | 540 页 | 26.26 MB | 1 年前3
 消息中间件RocketMQ原理解析 - 斩秋// 2 个 字 节 ( short ) 存 放 属 性 值 大 小 , 后 存 放 propertiesLength 大小的属性数据 3) MapedFile 是 PageCache 文件封装,操作物理文件在内存中的映射以及将内存数据持久 化到物理文件中, 代码中写死了要求 os 系统的页大小为 4k, 消息刷盘根据参数 (commitLog 默认至少刷 4 页, consumeQueue 第五章 Remoting 通信层: Rocketmq 的通信层是基于通信框架 netty 4.0.21.Final 之上做了简单的协议封装,是强依赖。 一: NettyRemotingAbstract Server 与 Client 公用抽象类 ResponseFuture 模式: invokeSyncImpl register,unregiter, active, inactive, exception NettyClientHandler netty 处理请求的业 Client 与通信层的交互封装了 MQClientAPIImpl 统一处理,在 MQClientAPIImpl 构造的时候注 册了 ClientRemotingProcessor 来处理 server 的请求0 码力 | 57 页 | 2.39 MB | 1 年前3 消息中间件RocketMQ原理解析 - 斩秋// 2 个 字 节 ( short ) 存 放 属 性 值 大 小 , 后 存 放 propertiesLength 大小的属性数据 3) MapedFile 是 PageCache 文件封装,操作物理文件在内存中的映射以及将内存数据持久 化到物理文件中, 代码中写死了要求 os 系统的页大小为 4k, 消息刷盘根据参数 (commitLog 默认至少刷 4 页, consumeQueue 第五章 Remoting 通信层: Rocketmq 的通信层是基于通信框架 netty 4.0.21.Final 之上做了简单的协议封装,是强依赖。 一: NettyRemotingAbstract Server 与 Client 公用抽象类 ResponseFuture 模式: invokeSyncImpl register,unregiter, active, inactive, exception NettyClientHandler netty 处理请求的业 Client 与通信层的交互封装了 MQClientAPIImpl 统一处理,在 MQClientAPIImpl 构造的时候注 册了 ClientRemotingProcessor 来处理 server 的请求0 码力 | 57 页 | 2.39 MB | 1 年前3
 使用 Docker 建立 MySQL 集群yum install docker-io 第二步 运行 Mariadb 容器 首先要将数据镜像拉下来 docker pull mariadb:latest 注意,如果不加:latest 标签,docker 会把所有的镜像版本都拉下来。 然后我们就可以启动镜像了,参数方面需要注意的有一下几点: 1,-name <给容器取个好记的名称> 2,-e MYSQL_ROOT_PASSWORD =‘<给数据库一个 MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb1 \ -p 13306:3306 \ -v /home/wonders/docker_mdb1_data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=wondersgroup \ -e0 码力 | 3 页 | 103.32 KB | 1 年前3 使用 Docker 建立 MySQL 集群yum install docker-io 第二步 运行 Mariadb 容器 首先要将数据镜像拉下来 docker pull mariadb:latest 注意,如果不加:latest 标签,docker 会把所有的镜像版本都拉下来。 然后我们就可以启动镜像了,参数方面需要注意的有一下几点: 1,-name <给容器取个好记的名称> 2,-e MYSQL_ROOT_PASSWORD =‘<给数据库一个 MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb1 \ -p 13306:3306 \ -v /home/wonders/docker_mdb1_data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=wondersgroup \ -e0 码力 | 3 页 | 103.32 KB | 1 年前3
 GPU Resource Management On JDOSliangyongqing1@jd.com 提供的服务 1. 用于实验的 GPU 容器 2.基于 Kubeflow 的机器学习训练服务 3.模型管理和模型 Serving 服务 Experiment Training Serving 均基于容器,不对业务方直接提供 GPU 物理机 GPU 实验 JDOS 常规的容器服务 ,使用 gpu 的 zone , 自行设定相应的镜像即 可,有完善的周边服务 选择存储来源:对接了内部的存储 – 填写代码地址,执行的命令等 – 可以选择是否监控训练,提供 tensorboard 任务列表 可以指定 git 的 commit-id 发起任务 任务详情 可以查看具体的容器列表,以及查看容器的日志和事件 Serving 服务 提供统一便捷的 Serving 服务,只需用户指定模型,即可提供 grpc 和 rest 服务,同时使用 GPU 复用 +HPA 提高 GPU 利用率 Serving 与训练集成 • 用户只需要简单选择机房和 镜像填写模型名即可完成 Serving 服务创建 自有模型 • 用户只需要填写模型地址即 可 GPU 监控 • 容器监控服务,自适 应 GPU 容器,可根据 容器 IP 查询记录 , 便 于用户查看服务状态 ,亦可作为 HPA 的数 据源 • 采集项 name,index,fan.speed,te mperature.gpu,pstate0 码力 | 11 页 | 13.40 MB | 1 年前3 GPU Resource Management On JDOSliangyongqing1@jd.com 提供的服务 1. 用于实验的 GPU 容器 2.基于 Kubeflow 的机器学习训练服务 3.模型管理和模型 Serving 服务 Experiment Training Serving 均基于容器,不对业务方直接提供 GPU 物理机 GPU 实验 JDOS 常规的容器服务 ,使用 gpu 的 zone , 自行设定相应的镜像即 可,有完善的周边服务 选择存储来源:对接了内部的存储 – 填写代码地址,执行的命令等 – 可以选择是否监控训练,提供 tensorboard 任务列表 可以指定 git 的 commit-id 发起任务 任务详情 可以查看具体的容器列表,以及查看容器的日志和事件 Serving 服务 提供统一便捷的 Serving 服务,只需用户指定模型,即可提供 grpc 和 rest 服务,同时使用 GPU 复用 +HPA 提高 GPU 利用率 Serving 与训练集成 • 用户只需要简单选择机房和 镜像填写模型名即可完成 Serving 服务创建 自有模型 • 用户只需要填写模型地址即 可 GPU 监控 • 容器监控服务,自适 应 GPU 容器,可根据 容器 IP 查询记录 , 便 于用户查看服务状态 ,亦可作为 HPA 的数 据源 • 采集项 name,index,fan.speed,te mperature.gpu,pstate0 码力 | 11 页 | 13.40 MB | 1 年前3
 RocketMQ v3.2.4 开发指南Broker,那举只需要依赖 rocketmq-broker 返个 jar 包即可,可通过 API 迕行交互, 如果定制 client,则依赖 rocketmq-client 返个 jar 包,对其提供的 api 迕行再封装。 开源社区地址: https://github.com/alibaba/RocketMQ 在 RocketMQ 项目基础上衍生的项目如下  com.taobao.metaq tmq/example/ filter/Consumer.java 9 RocketMQ 通信组件 RocketMQ 通信组件使用了 Netty-4.0.9.Final,在乀上做了简单的协议封装。 9.1 网络协议 length header length header data body data 4 4 1. 大端 4 个字节整数,等亍 2、3、4 长度总和 20 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南Broker,那举只需要依赖 rocketmq-broker 返个 jar 包即可,可通过 API 迕行交互, 如果定制 client,则依赖 rocketmq-client 返个 jar 包,对其提供的 api 迕行再封装。 开源社区地址: https://github.com/alibaba/RocketMQ 在 RocketMQ 项目基础上衍生的项目如下  com.taobao.metaq tmq/example/ filter/Consumer.java 9 RocketMQ 通信组件 RocketMQ 通信组件使用了 Netty-4.0.9.Final,在乀上做了简单的协议封装。 9.1 网络协议 length header length header data body data 4 4 1. 大端 4 个字节整数,等亍 2、3、4 长度总和 20 码力 | 52 页 | 1.61 MB | 1 年前3
共 8 条
- 1













