[长期更新]etcd常见问题以及配置记录,欢迎投稿.

Posted by 梁远鹏 on 2023-05-22 | 阅读 |,阅读约 1 分钟

TOC

说明

本文主要收集 etcd 遇到的一些常见问题,欢迎对本文进行投稿你认为好的场景或问题.

备份恢复

在我的研究场景中,经常需要重建环境,因此数据的备份恢复都是必须的.下面是一个用于备份和恢复的简单脚本,我使用 staticpod 的方式定时备份 Etcd 数据,以及使用 initContainer 的方式来恢复数据.

#!/bin/bash

#set -o errexit
#set -o nounset
#set -o pipefail

export ETCD_ENDPOINTS=${ETCD_ENDPOINTS:-"http://127.0.0.1:2379"}
export BACKUP_ORAS_IMG=${BACKUP_ORAS_IMG:-"ghcr.io/liangyuanpeng/backup"}
export BACKUP_ORAS_TAG=${BACKUP_ORAS_TAG:-"data"}
export BACKUP_SLEEP=${BACKUP_SLEEP:-"30m"}

export ORAS_USERNAME=${ORAS_USERNAME:-""}
export ORAS_PASSWORD=${ORAS_PASSWORD:-""}

if [ -n "$ORAS_USERNAME" ];then 
    if [ -n "$ORAS_PASSWORD" ];then 
        oras login ghcr.io -u$ORAS_USERNAME -p$ORAS_PASSWORD
    fi
fi

export CTIME=`date +"%Y%m%d%H%M"`
export CTIMEH=`date +"%Y%m%d%H"`
echo "begin save snapshot for $ETCD_ENDPOINTS..."
etcdctl --endpoints $ETCD_ENDPOINTS snapshot save data.db 
echo "begin push data to $BACKUP_ORAS_IMG:$BACKUP_ORAS_TAG..."
oras push $BACKUP_ORAS_IMG:$BACKUP_ORAS_TAG,$BACKUP_ORAS_TAG-$CTIME,$BACKUP_ORAS_TAG-$CTIMEH data.db
echo "current time:" `date +"%Y%m%d%H%M"`
ls -allh data.db
echo "begin sleep with $BACKUP_SLEEP..."
sleep $BACKUP_SLEEP

上述是一个用于备份 Etcd 单节点数据的 shell 脚本,通过 etcdctl 命令导出数据后使用 oras 将数据以容器镜像的方式存储到容器镜像仓库当中.

微信公众号

扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。

wechat-qrcode