Kstone

etcd 一站式治理平台
授权协议 Apache
开发语言 Python Google Go
所属分类 管理和监控、 DevOps/运维工具
软件类型 开源软件
地区 国产
投 递 者 岑俊明
操作系统 跨平台
开源组织 腾讯
适用人群 未知
 软件概览

Kstone 是一个针对 etcd 的全方位运维解决方案,提供集群管理(关联已有集群、创建新集群等)、监控、备份、巡检、数据迁移、数据可视化、智能诊断等一系列特性。

Kstone 将帮助你高效管理 etcd 集群,显著降低运维成本、及时发现潜在隐患、提升 k8s etcd 存储的稳定性和用户体验。

特性

Kstone 是一个 etcd 的治理平台,它有以下特点.

  • 轻量,安装方便
  • 支持导入已有集群、创建新etcd集群
  • 支持Prometheus监控,内置丰富的etcd Grafana面板图
  • 支持多种数据备份方式(分钟级备份到对象存储、部署Learner实时备份)
  • 支持多种巡检策略(数据一致性、健康度、写请求、资源对象数等)
  • 支持可视化查看etcd数据(特别支持Kubernetes资源对象数据的可视化查看)
  • 极大简化运维成本,在集群导入、创建完成时,即可自动开启监控、备份、巡检等特性

核心架构

Kstone 由5个组件组成:

  • kstone-etcdcluster-controller
  • kstone-etcd-operator
  • kstone-etcdinspection-controller
  • kstone-api
  • kstone-dashboard

组件

kstone-etcdcluster-controller

  • 关联已有集群,如已有的 kubernetes 集群 etcd
  • 根据 EtcdCluster 资源所描述的集群元信息,调用 ClusterProvider 创建、更新、删除 etcd 集群
  • 根据 EtcdCluster 资源所描述的特性开关,开启或关闭监控、备份、巡检等特性(创建 EtcdInspection 资源)

kstone-etcdinspection-controller

  • 实时监听 EtcdInspection 资源,调用后端 FeatureProvider 执行巡检

kstone-api

  • 提供了一系列 etcd 集群管理的 api 给 web 前端使用

kstone-dashboard

Kstone 提供的 WEB 管理系统如下:

kstone-etcd-operator

kstone-etcd-operator 提供丰富的集群管理能力(此组件也即将开源)。

安装

请阅读部署文档, 你可通过 Helm 快速安装 Kstone。

开发

构建

mkdir -p ~/tkestack
cd ~/tkestack
git clone https://github.com/tkestack/kstone
cd kstone
make
 相关资料
  • ShardingSphere-Proxy 支持使用 SPI 方式接入分布式治理,实现配置和元数据统一管理以及实例熔断和从库禁用等功能。 Zookeeper ShardingSphere-Proxy 默认提供了 Zookeeper 解决方案,实现了注册中心功能。 配置规则同 ShardingSphere-JDBC YAML 保持一致。 其他第三方组件 详情请参考支持的第三方组件。 使用 SPI 方式

  • 使用治理功能需要指定配置中心和注册中心。 配置将全部存入配置中心,可以在每次启动时使用本地配置覆盖配置中心配置,也可以只通过配置中心读取配置。

  • 背景 随着数据规模的不断膨胀,使用多节点集群的分布式方式逐渐成为趋势。在这种情况下,如何高效、自动化管理集群节点,实现不同节点的协同工作,配置一致性,状态一致性,高可用性,可观测性等,就成为一个重要的挑战。 本部分包括三个模块:治理、可观测性、集群管理(计划中)。 挑战 分布式治理的挑战,主要在于集群管理的复杂性,以及如何以统一和标准的方式对接各种第三方集成组件。 集成管理的复杂性体现在,一方面我

  • 导览 本小节主要介绍 Apache ShardingSphere 分布式治理的相关功能 注册中心 第三方组件依赖

  • SOFADashboard 服务治理主要是对 SOFARpc 的服务进行管理。 目前已经支持基于 ZK 和 SofaRegistry 两个注册中心。 功能展示 1、基于服务维度 服务列表 服务提供者详情: 2、基于应用维度 应用列表 应用服务详情

  • 服务治理配置 黑白名单 "Server": { "Name": "sample", "Ip": "192.168.3.11", "Port": "5003", "Security": { "Whitelist": "*", //白名单 格式:ip1|ap2|1p3,默认 * "BlackList": "" //黑名单 格式:ip1|ap2|1p3,默认 "" } } 负载

  • 分离构建和运行环境 使用dumb-int等避免僵尸进程 不推荐直接使用Pod,而是推荐使用Deployment/DaemonSet等 不推荐在容器中使用后台进程,而是推荐将进程前台运行,并使用探针保证服务确实在运行中 推荐容器中应用日志打到stdout和stderr,方便日志插件的处理 由于容器采用了COW,大量数据写入有可能会有性能问题,推荐将数据写入到Volume中 不推荐生产环境镜像使用la

  • 服务治理 服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的,主要有以下几个功能: 应用级别的服务治理 在Dubbo2.6及更早版本中,所有的服务治理规则都只针对服务粒度,如果要把某条规则作用到应用粒度上,需要为应用下的所有服务配合相同的规则,变更,删除的时候也需要对应的操作,这样的操作很不友好,因此Dubbo2.7版本中增加了应用粒度的服务治理操作,对于条件路由(包括黑白