当前位置: 首页 > 软件库 > 云计算 > PaaS系统/容器 >

TiDB Operator

自动化部署运维工具
授权协议 Apache 2.0
开发语言 Google Go
所属分类 云计算、 PaaS系统/容器
软件类型 开源软件
地区 国产
投 递 者 漆雕奇
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

TiDB Operator 是 Kubernetes 上的 TiDB 集群自动运维系统,提供包括部署、升级、扩缩容、备份恢复、配置变更的 TiDB 全生命周期管理。借助 TiDB Operator,TiDB 可以无缝运行在公有云或私有部署的 Kubernetes 集群上。

架构

架构详解点击 这里 即可查看。

核心亮点

1. 简化 TiDB 运维管理

TiDB 是一个复杂的分布式系统,它的部署和运维需要比较深入的领域知识,这带来了颇高的学习成本和负担。TiDB Operator 则通过自定义资源对象(Custom Resource)、自定义控制器(Custom controller)和调度器扩展(Scheduler extender)为 Kubernetes 注入 TiDB 的专业运维知识,允许用户以 Kubernetes 的声明式 API 风格来管理 TiDB 集群。具体来说,用户只需要描述集群规格,TiDB Operator 就会不断调整 Kubernetes 中的资源,驱动实际集群满足该描述。在这种模式下,TiDB 集群会自动完成服务的健康检查、故障转移,而部署、升级、扩缩容等操作则能通过修改集群的规格定义“一键”完成,极大简化了 TiDB 集群的运维管理。

更重要的是,标准化的集群管理 API 允许用户完成内部工具链或 PaaS 平台与 TiDB 集群管理的深度整合,真正赋能用户玩转 TiDB。

2. 稳定可靠

作为数据库,TiDB 往往处于整个系统架构中的最核心位置,对于稳定性有着严苛要求。这同样也是对 TiDB Operator 的要求。为了确保所有自动化运维操作的稳定可靠,我们为 TiDB Operator 专门设计了稳定性测试,在施加较大读写负载的同时,不断进行各类运维操作并模拟主机、容器、磁盘、网络、Kubernetes 组件和 TiDB Operator 组件的各类故障,观察在这些场景下 TiDB Operator 的行为是否符合预期。通过 7 * 24 小时不间断运行稳定性测试,我们发现并修复了诸多极端的边界情况。在 1.0 发布前,TiDB Operator 稳定性测试已经稳定运行数月。

3. 多云支持

1.0 提供了面向 AWS、谷歌云和阿里云的 Terraform 部署脚本。 这些脚本能帮助大家在十几分钟内创建一个 Kubernetes 集群,并在该集群上部署一个或更多生产可用的 TiDB 集群。在后续的管理过程中,Terraform 脚本会在操作 TiDB 集群的同时对相关的云资源进行操作。比如,当扩容一个 TiDB 集群时,Terraform 脚本就会自动创建更多的云服务器来承载集群扩容后的资源需求。

 

  • 在上一篇文章中我们讨论了 TiDB Operator 的应用场景,了解了 TiDB Operator 可以在 Kubernetes 集群中管理 TiDB 的生命周期。可是,TiDB Operator 的代码是怎样运行起来的?TiDB 组件的生命周期管理的逻辑又是如何编排的呢?我们将从 Operator 模式的视角,介绍 TiDB Operator 的代码实现,在这篇文章中我们主要讨论 contro

  • V1 为了演示如何编写 TiDB Operator 和 Operator Dashboard,我们将分别介绍它们的概念和实现。 TiDB Operator TiDB Operator 是一种 Kubernetes Operator,它负责在 Kubernetes 上部署和管理 TiDB 集群。它可以自动化管理 TiDB 集群的生命周期,包括创建、扩容、缩容和升级等操作。 概念 TiDB Opera

  • 模板一 1.前言 2.背景 3.TiDB Operator介绍           简介及原理         原理浅析 4.TiDB Operator概述         TiDB Operator 架构         TiDB Operator 组件         自定义资源 Kubernetes 控制平面 5.TiDB Operator技术内幕-- 研究TiDB Operator设计与实

  • k8s和tidb都是目前开源社区中活跃的开源产品,tidb-operator项目是一个在k8s上编排管理tidb集群的项目。本文详细记录了部署k8s及install tidb-operator的详细实施过程,希望能对刚入坑的同学有所帮助 环境 ubuntu 16.04 k8s 1.14.1 kubespray安装k8s 配置免密登录 yum -y install expect vi /tmp/a

  • TIDB是什么? TIDB 受谷歌Spanner和F1的论文启发的new sql数据库,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性,同类数据库还包括巨杉数据库。 TiDB的原理与实现 TiDB 架构是 SQL 层和 KV 存储层分离,相当于 innodb 插件存储引擎与 MySQL 的关系。 有了 TiKV,TiDB 层只需要实现 SQL 层

  • 数据类型概述 TiDB 支持除空间类型 (SPATIAL) 之外的所有 MySQL 数据类型,包括数值型类型、字符串类型、时间和日期类型、JSON 类型。 数据类型定义一般为 T(M[, D]),其中: T 表示具体的类型。 M 在整数类型中表示最大显示长度;在浮点数或者定点数中表示精度;在字符类型中表示最大长度。M 的最大值取决于具体的类型。 D 表示浮点数、定点数的小数位长度。 fsp 在时间

  • 作者: lqbyz 原文来源: https://tidb.net/blog/09631779 TiDB Operator导入集群数据时是通过TiDB Lightning进行导入数据的。TiDB Lightning 包含两个组件:tidb-lightning 和 tikv-importer。在 Kubernetes 上,tikv-importer 位于单独的 Helm chart 内,被部署为一个副

  • 由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致

 相关资料
  • 主要内容:自动化部署的实现方式,maven-release-plugin 插件的使用Maven 项目的部署通常包括以下步骤: 将项目代码提交到 SVN 或 Git 等版本控制系统中,并进行标记。 从 SVN 或 Git 上下载完整的项目代码。 构建应用。 将构建输出的 WAR 或 JAR 文件存放在指定的公共网络位置中。 从指定网络中获取文件,并部署到生产环境上。 更新项目文档以及版本号。 以上这些工作通常由多个不同的团队协作完成,例如,项目研发人员负责项目代码的提交,项目管理员

  • 在项目开发中,通常部署过程包括以下步骤 - 将正在进行的所有项目的代码签入SVN(版本控制系统)或源代码存储库并对其进行标记。 从SVN下载完整的源代码。 构建应用程序。 将构建输出WAR或EAR文件存储到公共网络位置。 从网络获取文件并将文件部署到生产站点。 更新了包含应用程序的日期和更新版本号的文档。 问题声明 (Problem Statement) 上述部署过程通常涉及多个人。 一个团队可以

  • 本文向大家介绍Node 自动化部署的方法,包括了Node 自动化部署的方法的使用技巧和注意事项,需要的朋友参考一下 当我们在更新迭代 Node 项目的时候,我们需要做以下几步: git push 将代码提交至代码仓库 在服务器中执行 git pull 拉取最新代码 pm2 start 运行你的代码 这样做固然没错,但是一旦项目更新迭代过快,就需要不断的重复着上面的步骤,在各种 bash 面板中来回

  • 利用自动化加速软件在不同环境间的迁移 自动化构建不仅仅适用于开发团队 —— 在将软件从开发迁移到生产这一过程中也大有作为。在这一期 让开发自动化中,自动化专家 Paul Duvall 将介绍如何结合使用 Ant 和 Java™Secure Channel 将软件远程部署到多个目标环境中。 关于本系列 作为开发人员,我们的工作就是为终端用户实现过程自动化;然而,很多开发人员却忽略了将自己的开发过程自

  • 用于实现简便部署的模式 Java™ 部署常常很混乱,容易出现错误,需要许多手工操作,这会延误向用户交付软件的时间。本文是分两部分的 让开发自动化 系列文章的第 1 部分。在本文中,自动化专家 Paul Duvall 将介绍用于开发可靠、可重复且一致的部署流程的一些关键模式,帮助读者为 Java 应用程序生成简便的部署。 软件部署常常被视为不可避免的麻烦,可以在遇到它时应付一下,以后就不用理会了。但

  • 更多一键式部署模式 Java™部署常常很混乱,容易出现错误,需要许多手工操作,这会延误向用户交付软件的时间。本文是分两部分的让开发自动化系列文章的第 2 部分。在本文中,自动化专家 Paul Duvall 进一步补充用于开发可靠、可重复且一致的部署流程的一些关键模式,帮助读者为 Java 应用程序生成简便的部署。 关于本系列 作为开发人员,我们致力于为用户自动化流程;但许多开发人员疏忽了自动化我们

  • 本文向大家介绍浅谈python之自动化运维(Paramiko),包括了浅谈python之自动化运维(Paramiko)的使用技巧和注意事项,需要的朋友参考一下 简介 使用开源的Paramiko,我们就可以用Python代码中通过SSH协议对远程服务器执行操作,不需要手敲ssh命令,从而实现自动化运维。 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko库,实现了SSHv2协议(底

  • 到目前为止,我们前面已经介绍了如何开发程序、调试程序以及测试程序,正如人们常说的:开发最后的10%需要花费90%的时间,所以这一章我们将强调这最后的10%部分,要真正成为让人信任并使用的优秀应用,需要考虑到一些细节,以上所说的10%就是指这些小细节。 本章我们将通过四个小节来介绍这些小细节的处理,第一小节介绍如何在生产服务上记录程序产生的日志,如何记录日志,第二小节介绍发生错误时我们的程序如何处理