我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何备份Kubernetes和Docker

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何备份Kubernetes和Docker

这篇文章主要为大家展示了“如何备份Kubernetes和Docker”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何备份Kubernetes和Docker”这篇文章吧。

用户的容器基础设施需要某种类型的备份。Kubernetes和Docker在灾难之后不会自己构建。用户无需备份每个容器的运行状态,但是需要备份用于运行和管理容器的配置。

以下是用户需要备份的内容。

配置和所需状态信息

  • Dockerfile用于构建镱像以及这些文件的所有版本

  • 从Dockerfile创建并用于运行每个容器的镜像

  • Kubernetes etcd和其他有关集群状态的K8s数据库

  • Deployments用于描述每个部署的YAML文件

  • 容器创建或更改的持久数据

  • 持久卷

  • 数据库

  • Dockerfiles

    Docker容器从镜像运行,其镜像从Dockerfiles构建。正确的Docker配置将首先使用某种存储库(例如GitHub)作为所有Dockerfile的版本控制系统。不要使用从临时Dockerfile构建的临时镜像创建临时容器。所有Dockerfile都应存储在存储库中,如果当前版本存在问题,该存储库将允许用户提取这个Dockerfile的历史版本。

    用户还应该具有存储与每个K8s部署关联的YAML文件的某种存储库,这些是可以从版本控制系统中受益的文本文件。

    然后需要备份这些存储库。GitHub是比较受欢迎的存储库之一,它提供了许多备份存储库的方法。有多种脚本使用提供的API来下载存储库的当前备份。用户还可以使用第三方商业工具来备份GitHub或用户正在使用的任何存储库。

    如果没有遵循上述建议,而是根据不再具有Dockerfile的镜像运行容器,则可以使用Docker 镜像历史命令或dfimage之类的工具从当前镜像创建Dockerfile。将这些Dockerfile放入存储库中,然后开始备份。但是不要陷入这种情况,应该始终存储和备份用于创建环境的Dockerfile和YAML文件。

    Docker镜像

    用于运行容器的当前镜像也应存储在存储库中(当然,如果用户正在Kubernetes中运行Docker镜像,那么已经在这样做了)。用户可以使用私有存储库(例如Docker注册表)或公共存储库(例如Dockerhub)。云计算提供商还可以为用户提供私人存储库来存储镜像。然后应备份该回购的内容。诸如“Dockerhub备份”之类的简单搜索就可以产生令人惊讶的众多选择。

    如果用户没有用于运行容器的当前镜像,则可以使用docker commit命令创建一个。然后,使用Docker镜像历史记录或工具dfimage从该镜像创建Dockerfile。

    Kubernetes etcd

    Kubernetes etcd数据库非常重要,应使用etcdctl snapshot save db命令进行备份。这将在当前目录中创建文件snapshot.db。然后应将该文件备份到外部存储。

    如果使用的是商业备份软件,则可以在创建snapshot.db的目录备份之前轻松触发etcdctl snapshot save命令。这是将备份集成到商业备份环境中的一种方法。

    持久卷

    容器可以通过多种方式访问持久性存储,而持久性存储可用于存储或创建数据。传统的Docker卷位于Docker配置的子目录中。绑定挂载只是Docker主机上安装在容器内(使用bind mount命令)的任何目录。出于多种原因,Docker社区首先选择传统卷,但出于备份目的,传统卷和绑定安装实质上是相同的。用户还可以将网络文件系统(NFS)目录或对象从对象存储系统作为卷装入容器中。

    用于备份持久卷的方法将基于用于容器的上述选项。但是,它们都会有相同的问题:如果数据正在更改,则需要处理该问题才能获得一致的备份。

    一种方法是关闭使用该特定卷的任何容器。这种做法虽然有些过时,但这是容器世界所面临的挑战之一,因为在容器中放置备份代理的典型方法并不是一种很好的选择。一旦关闭,便可以备份该卷。如果它是传统的Docker卷,则可以通过将其挂载到另一个在备份时不会更改其数据的容器中进行备份,然后在绑定安装的卷中创建该卷的tar镜像,然后使用备份系统使用的任何方法进行备份。

    但是,这在Kubernetes中确实很难做到。这是有状态信息最好存储在数据库而不是文件系统中的原因之一。而在设计K8s基础设施时,需要考虑此问题。

    另外,如果用户使用绑定安装目录、NFS安装文件系统或对象存储系统作为持久性存储系统,则可以使用优秀的方法来备份该存储系统。这可能是快照,然后是复制,或者只是在该系统上运行商业备份软件。与相同卷的典型文件级备份相比,这些方法可能提供更加一致的备份。

    数据库

    下一个备份挑战是容器使用数据库存储其数据。这些数据库需要以保证其完整性的方式进行备份。根据数据库的不同,上述方法可能会起作用:关闭访问数据库的容器,然后备份存储其文件的目录。但是,这种方法所需的停机时间可能不合适。

    另一种方法是直接连接到数据库引擎本身,并要求它运行到文件的备份,然后可以对其进行备份。如果数据库在容器内运行,则首先需要使用绑定安装来附加一个可以备份的卷,因此其备份可以存在于容器外部。然后运行数据库使用的命令(例如mysqldump)创建备份。然后确保使用备份系统创建的文件。

    如果用户不知道哪些容器正在使用什么样的存储或什么样的数据库怎么办?一种解决方案可能是使用docker ps命令列出正在运行的容器,然后使用docker inspect命令显示每个容器的配置。有一个名为“挂载”的部分,它将告诉用户将哪些卷挂载在何处。任何绑定安装也将在用户提交给Kubernetes的YAML文件中指定。

    商业备份解决方案

    有各种各样的商业备份解决方案可以保护上述部分或全部数据。以下是一个非常简短的摘要:

  • Commvault的虚拟服务器代理可以充当备份容器及其镜像的代理。

  • Cohenity为K8s命名空间提供数据保护。

  • Heptio(现为VMware公司)提供为K8s设计的Velero备份。

  • Contino、Datacore和Portworx提供专为K8和容器设计的存储,并且还支持备份该信息。

  • 鉴于K8和Docker的配置方式多种多样,很难涵盖所有内容。但是希望提供一些思考的机会,或者可以帮助用户备份一些应该但尚未备份的东西。

以上是“如何备份Kubernetes和Docker”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何备份Kubernetes和Docker

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何备份Kubernetes和Docker

这篇文章主要为大家展示了“如何备份Kubernetes和Docker”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何备份Kubernetes和Docker”这篇文章吧。用户的容器基础设施需要某
2023-06-04

如何使用Docker恢复Mysql8备份的Data数据

目录安装新 mysql初始化数据库复制文件移动文件(重要步骤)测试前段时间公司数据库服务器崩溃启动不起来,经过我初步排查是/home目录挂载不上导致启动不起来,虽然通过注释/etc/fstab中的挂载信息,启动了,但是发现mysql数据有缺
2022-11-26

MySQL中如何选择合适的备份策略和备份工具

​数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一道防线。鉴于此,对于备份,我们通常会做以下要求:多地部署对于核心数据库,我们通常有两地三中心的部署要求。对于备份来说,也是如此。一个备份应该有多个副本,每个副本存储在不同区域。多介质部署一个备份的多个副
MySQL中如何选择合适的备份策略和备份工具
2020-06-26

Mac上如何使用Docker Desktop启动Kubernetes

本篇内容主要讲解“Mac上如何使用Docker Desktop启动Kubernetes”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mac上如何使用Docker Desktop启动Kuberne
2023-06-03

如何备份阿里云数据库备份详细步骤和策略

阿里云数据库备份是一项重要的任务,可以保护数据免受意外丢失、灾难性事件或其他不可预见情况的影响。这篇文章将详细介绍如何备份阿里云数据库备份,包括详细的步骤和策略。了解备份策略首先,了解阿里云的备份策略是非常重要的。阿里云提供了多种备份策略,包括完全备份、增量备份和差异备份。完全备份是在每次备份时,将所有数据都复制
如何备份阿里云数据库备份详细步骤和策略
2023-11-17

如何备份和恢复MySQL数据库

备份和恢复MySQL数据库可以通过多种方式实现,以下是其中一种常用的方法:备份MySQL数据库:使用命令行工具备份数据库:mysqldump -u [用户名] -p [数据库名] > [备份文件路径]使用MySQL Workbench备份
如何备份和恢复MySQL数据库
2024-04-09

如何在Couchbase中实现数据备份策略和周期性备份

在Couchbase中实现数据备份策略和周期性备份可以通过以下步骤实现:使用Couchbase的内置工具:Couchbase提供了内置的数据备份和恢复工具,可以通过Couchbase Web管理界面或者命令行工具进行备份和恢复操作。设置定期
如何在Couchbase中实现数据备份策略和周期性备份
2024-04-09

Docker容器中如何备份、恢复、迁移、导入、导出

这篇文章给大家分享的是有关Docker容器中如何备份、恢复、迁移、导入、导出的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议
2023-06-04

如何备份和恢复您的 Apple Watch

如何備送 Apple Watch?您的Apple Watch将自动从iPhone上的Apple Watch应用程序进行备份,您也可以在设备上进行手动备份,尽管这不是您应该定期做的事情。如果您想在Apple Watch上进行手动备份,可以通过
2023-08-04

mysql如何备份和还原数据库

MySQL数据库的备份和还原可以通过命令行或者图形界面工具来完成。备份数据库:使用命令行工具:可以使用mysqldump命令来备份数据库。例如,备份名为mydatabase的数据库可以使用以下命令:mysqldump -u usernam
mysql如何备份和还原数据库
2024-04-09

如何备份和恢复SQLite数据库

要备份SQLite数据库,可以使用以下方法之一:使用SQLite的备份命令:sqlite3 your_database.db .dump > backup.sql使用SQLite的工具软件:可以使用SQLite的工具软件如DB Brows
如何备份和恢复SQLite数据库
2024-04-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录