117.info
人生若只如初见

centos k8s备份与恢复方法

在CentOS上备份和恢复Kubernetes(k8s)集群的方法有多种,以下是两种常见的方法:

基于etcd备份

etcd是Kubernetes集群中的关键组件,所有的集群配置、状态和元数据都存储在etcd中。因此,备份etcd数据是备份整个Kubernetes集群的最佳方式。

备份步骤:

  1. 备份etcd数据
etcdctl snapshot save snap1.db

此时在备份文件snap1.db里是有pod1的信息的。

恢复步骤:

  1. 删除pod1
kubectl delete pod pod1
  1. 恢复etcd
rm -rf /var/lib/etcd/
etcdctl snapshot restore snap1.db --data-dir /var/lib/etcd/
  1. 重启kubelet
systemctl restart kubelet
  1. 验证恢复
kubectl get pods

基于Velero备份

Velero是一个开源的Kubernetes集群备份、迁移工具,使用对象存储保存集群资源。

安装Velero

  1. 下载并解压Velero
wget https://github.com/vmware-tanzu/velero/releases/download/v1.6.0/velero-v1.6.0-linux-amd64.tar.gz
tar -zxvf velero-v1.6.0-linux-amd64.tar.gz && cd velero-v1.6.0-linux-amd64/
  1. 配置对象存储服务
  • 创建minio服务。

备份

  1. 创建velero的命名空间
kubectl create ns velero
  1. 创建存储卷
apiVersion: v1
kind: PersistentVolume
metadata:
  name: velero-pv
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.1.10
    path: /velero-backups/k8s-dev
  persistentVolumeReclaimPolicy: Retain
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: velero-pv
spec:
  storageClassName: ""
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
  volumeName: velero-pv

执行创建:

kubectl create -f storage.yaml
  1. 使用Velero创建备份
velero backup create my-backup --include-namespaces nginx-example --waitBackup request "nginx-backup" submitted successfully.Waiting for backup to complete. You may safely press ctrl-c to stop waiting - your backup will continue in the background..Backup completed with status: Completed. You may check for more information using the commands velero backup describe nginx-backup

恢复

  1. 部署一个测试nginx服务
kubectl apply -f examples/base.yaml
  1. 使用Velero恢复备份
velero restore create my-restore --backup-name my-backup

以上就是在CentOS上备份和恢复Kubernetes集群的两种方法。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fef44AzsNAQJTA1E.html

推荐文章

  • Apache2日志在CentOS中如何查看

    在 CentOS 系统中,要查看 Apache2(通常称为 httpd)的日志文件,你可以使用以下命令: 打开终端。 使用 sudo 命令以管理员权限运行 tail 命令,实时查看日志文...

  • 如何查看SSH连接日志

    查看SSH连接日志的方法取决于你使用的操作系统。以下是在Linux和macOS系统上查看SSH连接日志的常见方法:
    在Linux系统上 使用journalctl命令(适用于使用sy...

  • CentOS系统清理的步骤是什么

    在CentOS系统中进行清理的步骤如下:
    清理临时文件 清理系统临时文件:sudo rm -rf /tmp/* 清理/var/tmp目录下的临时文件:sudo rm -rf /var/tmp/* 清理特定...

  • CentOS如何安装数据库服务

    在CentOS上安装数据库服务可以通过以下步骤完成,这里以安装MySQL为例进行说明:
    准备工作 更新系统:
    sudo yum update -y 安装MySQL:
    sudo yum...

  • 如何配置Debian FTP服务器用户权限

    配置Debian FTP服务器用户权限可以通过多种方式实现,其中最常用的是使用vsftpd(Very Secure FTP Daemon)。以下是详细的步骤指南:
    1. 安装vsftpd
    首...

  • Nginx日志中的IP地址如何过滤

    在Nginx日志中过滤IP地址可以通过配置Nginx的访问日志格式和访问控制列表(ACL)来实现。以下是一些方法:
    方法一:使用Nginx配置文件 编辑Nginx配置文件:...

  • Ubuntu VNC如何设置防火墙规则

    在Ubuntu系统中,使用VNC(Virtual Network Computing)时,设置防火墙规则是非常重要的,以确保远程访问的安全性。以下是如何在Ubuntu上设置防火墙规则以允许VN...

  • Debian Apache日志中的错误怎么解决

    在Debian系统中,Apache Web服务器的日志文件通常位于/var/log/apache2/目录下。这里有两个主要的日志文件: access.log:记录所有访问请求的信息。
    error....