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
Greenplum on Kubernetes
容器化MPP数据库Greenplum on Kubernetes 容器化MPP数据库 AGENDA 云数据库背景 云数据库实现方案 Greenplum on Kubernetes Greenplum Operator 总结 云数据库背景 云数据库背景 ● 资源变化 ○ 本地资源 → 云 ○ 静态资源 → 弹性需求 ● 数据变化 ○ 内部数据 → 多数据源 ○ 数据规模 → 不易预测 ○ 数据格式 网络传输 ○ 权限控制 ● 跨云 ○ 公有云 ○ 私有云 云数据库实现方案 ● 全新数据库 ○ Snowflake ● 原有数据库架构升级 ○ Vertica Eon Mode ● 容器化数据库+Kubernetes ○ Apache Spark ○ CockroachDB ○ Apache HAWQ 云数据库存储方案 ● 块存储 ○ 文件系统接口 ● 对象存储 ○ Segment Instance Segment 5 (Mirror) 容器化Greenplum ? + = 容器化Greenplum ● 容器粒度 ○ Segment主机 VS. Segment实例 ● 容器资源分配 ○ CPU ○ 内存 ○ 磁盘 ● 容器间网络互联 ○ 本机网络 ○ 跨机网络 ● 容器化Greenplum部署策略 ○ Master部署策略 ○ Primary0 码力 | 33 页 | 1.93 MB | 1 年前3
Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波《MySQL 容器化部署实践》 演讲者/王晓波 背景 ■ 同程旅游早期的数据库都以单库的MySQL。 ■ MySQL的单库,导致TPS最终还是会成为一个瓶颈。 ■ MySQL+DB中间件解决水平拆分问题。 ■ MySQL水平拆分的引入会使数据库实例数量大幅上升,传统运维手段维护成本高,交付能力差。 MySQL数据库为何要Docker化 1.MySQL数据库迅速爆炸式增长后,服务器规模不断增大,快速部署是个问题。 Docker在同程的大规模使用,应用部署环境100%容器化,有Docker丰富的经验 。 让数据库的部署点单化开启 2核4G 4核4G 4核8G 8核8G 8核16G 16核16G 16核64G 32核64G 32核128G 一主一从 分片集群 一主多从 SATA-SSD PCIE-SSD 大容量磁盘SAS 配置 DB架构 硬件选型 机房 A机房 B机房 C机房 D机房 容器化之后的MySQL就是一个私有DB云 数据校验 实例迁移 秒级监控诊断 慢日志分析 资源池调度 调度规则 容器调度 资源池 容器及实例创建 应用交付 资源申请 IO类型 配置 为了保证MySQL的高可用,需要在Docker容器分配时如何保障主从不在同一宿主机上。我们通过自研 Docker容器调度平台管理所有宿主机和容器,自定义Docker容器的分配算法。实现了MySQL的高密度,隔离 化,高可用化部署。 调度规则: 10 码力 | 32 页 | 7.11 MB | 1 年前3
Apache ShardingSphere 中文文档 5.4.1数据迁移的实现原理 8.6. 数据迁移 40 Apache ShardingSphere document 8.6.6 核心概念 节点 运行计算层或存储层组件进程的实例,可以是物理机、虚拟机、容器等。 集群 为了提供特定服务而集合在一起的多个节点。 源端 原始数据所在的存储集群。 目标端 原始数据将要迁移的目标存储集群。 数据迁移作业 把数据从某一个存储集群复制到另一个存储集群的完整流程。 String databaseName = "foo_schema"; // 指定逻辑 Database 名称 ModeConfiguration modeConfig = ... // 构建运行模式 MapdataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. version} 更改为实际的版本号。 配置示例 Standalone 运行模式 ModeConfiguration modeConfig = createModeConfiguration(); Map dataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. 0 码力 | 530 页 | 4.49 MB | 1 年前3
Apache ShardingSphere 中文文档 5.3.2数据迁移的实现原理 8.6. 数据迁移 40 Apache ShardingSphere document 8.6.6 核心概念 节点 运行计算层或存储层组件进程的实例,可以是物理机、虚拟机、容器等。 集群 为了提供特定服务而集合在一起的多个节点。 源端 原始数据所在的存储集群。 目标端 原始数据将要迁移的目标存储集群。 数据迁移作业 把数据从某一个存储集群复制到另一个存储集群的完整流程。 String databaseName = "foo_schema"; // 指定逻辑 Database 名称 ModeConfiguration modeConfig = ... // 构建运行模式 MapdataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. version} 更改为实际的版本号。 配置示例 Standalone 运行模式 ModeConfiguration modeConfig = createModeConfiguration(); Map dataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. 0 码力 | 508 页 | 4.44 MB | 1 年前3
Apache ShardingSphere v5.5.0 中文文档数据迁移的实现原理 8.6. 数据迁移 40 Apache ShardingSphere document 8.6.6 核心概念 节点 运行计算层或存储层组件进程的实例,可以是物理机、虚拟机、容器等。 集群 为了提供特定服务而集合在一起的多个节点。 源端 原始数据所在的存储集群。 目标端 原始数据将要迁移的目标存储集群。 数据迁移作业 把数据从某一个存储集群复制到另一个存储集群的完整流程。 String databaseName = "foo_schema"; // 指定逻辑 Database 名称 ModeConfiguration modeConfig = ... // 构建运行模式 MapdataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. version} 更改为实际的版本号。 配置示例 Standalone 运行模式 ModeConfiguration modeConfig = createModeConfiguration(); Map dataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. 0 码力 | 557 页 | 4.61 MB | 1 年前3
Apache ShardingSphere 中文文档 5.2.03.7. 数据迁移 38 Apache ShardingSphere document, v5.2.0 3.7.6 核心概念 节点 运行计算层或存储层组件进程的实例,可以是物理机、虚拟机、容器等。 集群 为了提供特定服务而集合在一起的多个节点。 源端 原始数据所在的存储集群。 目标端 原始数据将要迁移的目标存储集群。 数据迁移作业 把数据从某一个存储集群复制到另一个存储集群的完整流程。 String databaseName = "foo_schema"; // 指定逻辑 Database 名称 ModeConfiguration modeConfig = ... // 构建运行模式 MapdataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. document, v5.2.0 配置示例 Standalone 运行模式 ModeConfiguration modeConfig = createModeConfiguration(); Map dataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. 0 码力 | 449 页 | 5.85 MB | 1 年前3
MyBatis 框架尚硅谷 java 研究院版本:V 1.0MANAGED | 自定义 JDBC:使用了 JDBC 的提交和回滚设置,依赖于从数据源得到的连接来管理事务 范 围。 JdbcTransactionFactory MANAGED:不提交或回滚一个连接、让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 ManagedTransactionFactory 自定义:实现 TransactionFactory 接口,type=全类名/别名 UNPOOLED:不使用连接池, UnpooledDataSourceFactory POOLED:使用连接池, PooledDataSourceFactory JNDI: 在 EJB 或应用服务器这类容器中查找指定的数据源 自定义:实现 DataSourceFactory 接口,定义数据源的获取方式。 7) 实际开发中我们使用 Spring 管理数据源,并进行事务控制的配置来覆盖上述配置 JAVAEE 重新包装成一个 Map 传入。Map 的 key 是 param1, param2,或者 0,1…,值就是参数的值 3) 命名参数 为参数使用@Param 起一个名字,MyBatis 就会将这些参数封装进 map 中,key 就是我 们自己指定的名字 4) POJO 当这些参数属于我们业务 POJO 时,我们直接传递 POJO 5) Map 我们也可以封装多个参数为 map,直接传递 6)0 码力 | 44 页 | 926.54 KB | 1 年前3
Apache ShardingSphere 中文文档 5.1.2String schemaName = "foo_schema"; // 指定逻辑 Schema 名称 ModeConfiguration modeConfig = ... // 构建运行模式 MapdataSourceMap = ... // 构建真实数据源 Collection ruleConfigs = .. ingSphere 硬定义,相关的处理可以参考类 org.apache.shardingsphere.infra.datasource. pool.creator.DataSourcePoolCreator。 Map dataSourceMap = new HashMap<>(); // 配置第 1 个数据源 HikariDataSource dataSource1 = ataSources (+) Collection 读写数据源配置 loa dBalancers (*) Map 从库负载均衡算法配 置 主从数据源配置 类名称:org.apache.shardingsphere 0 码力 | 446 页 | 4.67 MB | 1 年前3
常见Redis未授权访问漏洞总结mongo #列出本地主机上的mongo镜像 docker run -d -p 27017:27017 --name mongodb mongo # 创建一个新的容器并运行一个命令 docker ps -a # 显示所有的容器,包括未运行的 nmap检测 防御手段 nmap -p 27017 --script mongodb-info地址:http://nmap JBOSS 未授权访问漏洞 漏洞简介以及危害 JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费 使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。,默认情况下访问 ht tp://ip:8080/jmx-console 就可以浏览 JBoss 的部署管理的信息不需要输入用户名和密码可以直接部署 -以最小普通权限身份运行操作系统。 Docker 未授权访问漏洞 漏洞简介以及危害 Docker 是一个开源的引擎可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容 器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署包括 VMs、bare metal、 OpenStack 集群和其他的基础应用平台Docker。 Docker Remote API 是一个取代远程命令行界面(rcli)的REST 0 码力 | 44 页 | 19.34 MB | 1 年前3
共 223 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23













