Kubernetes集群状态管理的利器:Reshifter
Reshifter是一个强大的Kubernetes集群状态管理工具和库,支持多种操作模式,包括命令行一次性任务、Web应用界面以及定时任务。它利用etcd API查询和操作与Kubernetes对象相关的状态,并兼容旧版(v2,/registry)、新版(v2/v3,/kubernetes.io)以及OpenShift等特定发行版的键值。
应用场景
无论你是要进行审计、计费、节省成本还是故障排查,Reshifter都是你的得力助手:
- 审计 需要符合法规要求时,Reshifter能生成记录所有集群对象状态的审计轨迹。
- 计费 记录谁运行了什么,以便对内部客户按量或按时计费。
- 节省开支 当在公共云中运行开发或测试集群时,你可以用Reshifter保存状态,关闭集群,然后在需要时恢复以避免额外费用。
- 问题解决 对于任何类型的Kubernetes集群,无论是生产环境还是测试环境,Reshifter都可以捕获特定时间点的状态,用于离线调试和故障排除。
- 容量规划 收集数据以估计未来可能需要添加多少工作节点。
- 升级 在从Kubernetes 1.5升级到1.6等版本时,使用Reshifter可以实现几乎零停机时间的平滑升级。
- 恢复 在生产环境中运行时,使用Reshifter备份已部署应用的状态,作为恢复过程的基础。
- 灾难恢复 运行多个集群时,可以通过Reshifter进行状态复制以应对灾难性故障。
状态和路线图
查看Trello板获取项目的当前状态和路线图详情。另请查阅设计哲学和架构,了解更多关于其工作原理的信息。
命令行工具
通过rcli二进制文件,你可以直接在命令行中使用Reshifter。在GitHub发布页面上下载适用于Linux和macOS的二进制版本。
$ rcli -h
Reshifter的命令行工具,支持Kubernetes集群的备份和还原。
使用方式:
rcli [命令]
可用命令:
backup 创建Kubernetes集群的备份
explore 探测etcd端点
help 关于任何命令的帮助
restore 执行Kubernetes集群的还原
stats 从etcd端点收集与Kubernetes相关的键的统计信息
version 显示Reshifter版本
...
简单的使用示例假设有一个etcd在http://localhost:4001上运行:
# 将Kubernetes集群备份到Minio playground:
$ ACCESS_KEY_ID=Q3AM3UQ867SPQQA43P2F \
SECRET_ACCESS_KEY=zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG \
rcli backup create --endpoint http://localhost:4001 \
--remote play.minio.io:9000 \
--bucket mh9-test
# 从Minio playground还原集群,使用备份ID 1498815551:
$ ACCESS_KEY_ID=Q3AM3UQ867SPQQA43P2F \
SECRET_ACCESS_KEY=zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG \
rcli restore --endpoint http://localhost:4001 \
--remote play.minio.io:9000 \
--bucket mh9-test \
--backupid 1498815551
更多使用方法,请参阅CLI教程。
Web应用程序
想要体验Web界面?看看应用演示。
本地部署
若想启动Reshifter Web应用,只需使用Docker镜像,因为它包含了静态资源(如HTML、CSS和JS)和Go二进制文件:
$ docker run --rm -p 8080:8080 quay.io/mhausenblas/reshifter:0.3.22
如果只想使用Reshifter API,例如作为一个无头服务,可以简单地使用二进制文件,无需其他依赖:
$ curl -s -L https://github.com/mhausenblas/reshifter/releases/download/v0.3.22-alpha/reshifter -o reshifter
$ chmod +x reshifter
$ ./reshifter
Reshifter的HTTP API定义在并可通过Swagger访问:swaggerhub.com/apis/mhausenblas/reshifter/1.0.0
在OpenShift中部署
为在OpenShift上安装Reshifter应用,我们使用了一个Makefile,创建一个名为reshifter的新项目,从Docker镜像启动应用,最后通过路由暴露服务以便在集群外部访问。这需要OpenShift Origin 1.5(或OpenShift Container Platform 3.5)集群的访问权限以及本地安装的oc CLI工具:
$ make init
$ make build
$ make publish
在Kubernetes中部署
要在Kubernetes中以可移植的方式安装Reshifter应用,使用kubectl和提供的YAML文件。这需要对Kubernetes 1.5或更高版本的集群的访问权限以及本地安装的kubectl CLI工具:
$ kubectl create -f https://raw.githubusercontent.com/mhausenblas/reshifter/master/deployments/reshifter-app.yaml
请注意:上述YAML文件定义了一个Deployment和一个Service对象。但它并未将Reshifter服务对外公开。如果你希望从集群外部访问该应用,你需要使用Ingress或者自定义YAML文件。
备份策略
Reshifter支持不同的备份策略。
配置
Reshifter在整个部署过程中接受以下配置参数,这些参数以环境变量的形式提供。目前它们都是可选的,但根据所使用的etcd设置或备份目标,可能需要设置一些参数,例如将备份存储到S3兼容的存储中。
| 环境变量 | 含义 | 设置时机 |
|---|---|---|
ACCESS_KEY_ID |
S3访问密钥ID | 将备份到远程S3兼容存储时 |
SECRET_ACCESS_KEY |
S3秘密访问密钥 | 将备份到远程S3兼容存储时 |
RS_ETCD_CLIENT_CERT |
etcd客户端证书文件路径 | 使用安全etcd时 |
RS_ETCD_CLIENT_KEY |
etcd客户端密钥文件路径 | 使用安全etcd时 |
RS_ETCD_CA_CERT |
etcd CA证书文件路径 | 使用安全etcd时 |
RS_BACKUP_STRATEGY |
如果存在,则选择备份策略 | 进行backup操作时 |
RS_ETCD_API_VERSION |
如果存在,覆盖自动检测并强制Reshifter使用指定的etcd API版本;允许的值是v2或v3 |
进行backup,restore和stats操作时 |
注:
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00- DDeepSeek-OCR暂无简介Python00
openPangu-Ultra-MoE-718B-V1.1昇腾原生的开源盘古 Ultra-MoE-718B-V1.1 语言模型Python00
HunyuanWorld-Mirror混元3D世界重建模型,支持多模态先验注入和多任务统一输出Python00
AI内容魔方AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。03
Spark-Scilit-X1-13BFLYTEK Spark Scilit-X1-13B is based on the latest generation of iFLYTEK Foundation Model, and has been trained on multiple core tasks derived from scientific literature. As a large language model tailored for academic research scenarios, it has shown excellent performance in Paper Assisted Reading, Academic Translation, English Polishing, and Review Generation, aiming to provide efficient and accurate intelligent assistance for researchers, faculty members, and students.Python00
GOT-OCR-2.0-hf阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile013
Spark-Chemistry-X1-13B科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00
