专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

criu/checkpoint-restore-operator Docker 镜像 - 轩辕镜像

checkpoint-restore-operator
criu/checkpoint-restore-operator
用于管理检查点的Kubernetes操作器,提供在Kubernetes集群中自动化创建、存储、恢复和删除容器检查点的能力。
0 次下载activecriu镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

检查点管理Kubernetes操作器

镜像概述

本镜像包含一个Kubernetes操作器(Operator),专门用于在Kubernetes集群中管理容器检查点(Container Checkpoints)的全生命周期。作为Kubernetes的自定义控制器,该操作器通过自定义资源定义(CRD)扩展Kubernetes API,提供检查点创建、存储、恢复和清理的自动化能力,简化有状态应用的状态管理流程。

核心功能与特性

主要功能
  • 检查点自动化创建:支持基于时间策略(如定时)或事件触发(如Pod重启前)自动创建容器检查点
  • 多存储后端支持:兼容Kubernetes持久卷(PVC)、对象存储(如S3)及本地存储等多种检查点存储方式
  • 检查点恢复机制:提供从保存的检查点快速恢复容器状态的能力,支持原Pod恢复或新Pod重建
  • 生命周期管理:自动清理过期或超出保留策略的检查点,释放集群存储资源
  • 状态监控与告警:集成Prometheus指标,监控检查点创建/恢复状态,支持异常状态告警
关键特性
  • 声明式API:通过Checkpoint和CheckpointPolicy自定义资源实现声明式配置
  • 无侵入集成:无需修改应用容器镜像,通过Kubernetes运行时接口(CRI)与容器运行时交互
  • 高可用性:支持多副本部署,确保操作器本身的故障容错
  • 可扩展性:模块化设计,支持添加新的存储后端或检查点处理逻辑

使用场景与适用范围

典型使用场景
  • 有状态应用故障恢复:数据库、消息队列等有状态应用发生故障时,从最近检查点恢复状态,减少数据丢失
  • 资源密集型任务状态保存:AI训练、科学计算等长时间任务,定期保存检查点避免任务中断后重新计算
  • 测试环境状态复现:在测试或调试过程中,保存特定场景的容器状态,支持精确复现问题环境
  • 集群迁移/升级:在Kubernetes集群版本升级或节点迁移前,为关键应用创建检查点,确保升级失败时可快速回滚
适用范围
  • Kubernetes集群版本:v1.21+(需支持CRD v1和Operator SDK依赖的API)
  • 容器运行时:支持检查点功能的容器运行时(如containerd 1.6+、CRI-O 1.20+)
  • 应用类型:需要状态持久化的有状态容器应用,特别是无法通过传统数据卷完全恢复状态的场景

使用方法与配置说明

前置条件
  • Kubernetes集群已部署,版本v1.21+
  • 容器运行时启用检查点功能(如containerd需配置[plugins."io.containerd.snapshotter.v1.devmapper"]支持)
  • 集群内已安装kubectl命令行工具,并具有集群管理员权限
部署步骤
1. 安装CRD

首先部署检查点管理所需的自定义资源定义:

bash
kubectl apply -f [***]
kubectl apply -f [***]
2. 部署操作器

通过Deployment部署操作器到集群(默认命名空间checkpoint-operator-system):

yaml
# checkpoint-operator-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: checkpoint-operator
  namespace: checkpoint-operator-system
spec:
  replicas: 2
  selector:
    matchLabels:
      control-plane: controller-manager
  template:
    metadata:
      labels:
        control-plane: controller-manager
    spec:
      serviceAccountName: checkpoint-operator-controller-manager
      containers:
      - name: manager
        image: [镜像仓库地址]/checkpoint-operator:v1.0.0
        command:
        - /manager
        args:
        - --leader-elect
        env:
        - name: WATCH_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: OPERATOR_NAME
          value: "checkpoint-operator"
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 20Mi

应用部署配置:

bash
kubectl apply -f checkpoint-operator-deployment.yaml
3. 创建检查点策略(可选)

定义检查点创建的全局策略(如保留数量、存储位置等):

yaml
# example-checkpoint-policy.yaml
apiVersion: checkpoint.example.com/v1alpha1
kind: CheckpointPolicy
metadata:
  name: default-policy
spec:
  retention:
    maxCount: 5  # 最多保留5个检查点
    maxAge: 72h  # 检查点最长保留72小时
  storage:
    backend: "pvc"  # 使用PVC存储
    pvcTemplate:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 10Gi

应用策略:

bash
kubectl apply -f example-checkpoint-policy.yaml
4. 创建检查点

为目标Pod创建检查点:

yaml
# example-checkpoint.yaml
apiVersion: checkpoint.example.com/v1alpha1
kind: Checkpoint
metadata:
  name: my-app-checkpoint
spec:
  target:
    podName: my-app-pod-0  # 目标Pod名称
    namespace: default    # 目标Pod所在命名空间
    containerName: main   # 目标容器名称(默认为Pod中第一个容器)
  policyRef: default-policy  # 引用检查点策略(可选)
  storage:
    # 覆盖策略中的存储配置(可选)
    backend: "s3"
    s3:
      endpoint: "s3.example.com"
      bucket: "checkpoints"
      prefix: "my-app/"

创建检查点:

bash
kubectl apply -f example-checkpoint.yaml
检查点恢复操作

通过kubectl命令触发检查点恢复:

bash
kubectl annotate pod my-app-pod-0 checkpoint.example.com/restore-from=my-app-checkpoint

配置参数说明

Checkpoint自定义资源字段
字段路径类型描述是否必填
metadata.namestring检查点资源名称是
spec.target.podNamestring目标Pod名称是
spec.target.namespacestring目标Pod所在命名空间否(默认与当前命名空间相同)
spec.target.containerNamestring目标容器名称否(默认第一个容器)
spec.policyRefstring引用的CheckpointPolicy名称否
spec.storage.backendstring存储后端类型(pvc/s3/local)否(策略中定义则可选)
spec.storage.pvcobjectPVC存储配置(当backend为pvc时)否(策略中定义则可选)
spec.storage.s3objectS3存储配置(当backend为s3时)否(策略中定义则可选)
spec.storage.local.pathstring本地存储路径(当backend为local时)否(策略中定义则可选)
环境变量配置(操作器部署)
环境变量描述默认值
WATCH_NAMESPACE操作器监控的命名空间,多个用逗号分隔,空表示所有命名空间""
OPERATOR_NAME操作器标识名称"checkpoint-operator"
LOG_LEVEL日志级别(debug/info/warn/error)"info"
METRICS_PORTPrometheus指标暴露端口8080
HEALTH_PROBE_PORT健康检查端口8081

监控与故障排查

监控指标

操作器暴露以下Prometheus指标(默认端口8080):

  • checkpoint_operator_checkpoint_total{status="created/failed"}:检查点创建总数
  • checkpoint_operator_restore_total{status="success/failed"}:检查点恢复总数
  • checkpoint_operator_checkpoint_age_seconds:检查点存活时间
常见故障排查
  • 检查点创建失败:查看操作器日志 kubectl logs -l control-plane=controller-manager -n checkpoint-operator-system
  • 存储后端连接错误:验证存储配置(如S3访问密钥、PVC权限)
  • 容器运行时不支持:确认容器运行时已启用检查点功能(如containerd需配置[plugins."io.containerd.grpc.v1.cri".containerd.checkpoint])

版本兼容性

操作器版本支持Kubernetes版本支持容器运行时版本
v1.0.x1.21-1.25containerd 1.6+, CRI-O 1.20+
v1.1.x1.23-1.27containerd 1.7+, CRI-O 1.22+
查看更多 checkpoint-restore-operator 相关镜像 →
rancher/backup-restore-operator logo
rancher/backup-restore-operator
by Rancher by SUSE
认证
暂无描述
31M+ pulls
上次更新:1 个月前
victoriametrics/operator logo
victoriametrics/operator
by Victoria Metrics
认证
用于在Kubernetes环境中自动化部署、管理和运维Victoria Metrics时序数据库的Operator控制器
100M+ pulls
上次更新:5 天前
istio/operator logo
istio/operator
by istio
用于在Kubernetes集群内管理Istio服务网格的操作员,支持自动化部署、配置及生命周期管理。
71B+ pulls
上次更新:9 个月前
victoriametrics/vmrestore logo
victoriametrics/vmrestore
by Victoria Metrics
认证
vmrestore是用于管理VictoriaMetrics数据生命周期的命令行工具。
2100K+ pulls
上次更新:7 天前
rancher/cis-operator logo
rancher/cis-operator
by Rancher by SUSE
认证
暂无描述
5M+ pulls
上次更新:3 天前
redislabs/operator logo
redislabs/operator
by Redis
认证
暂无描述
75M+ pulls
上次更新:5 天前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
criu/checkpoint-restore-operator
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:13763429
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429