首页 公告 项目 RSS

k3s的etcd备份

January 10, 2023 本文有 398 个字 需要花费 1 分钟阅读

简介

如果你使用的是嵌入式的etcd,k3s 是支持直接备份自己的etcd snapshot到s3的,具体的可以看下面

https://docs.k3s.io/backup-restore

操作

具体你需要配置下面几个参数

etcd-s3: true
etcd-s3-endpoint: xxx.xxx.com
etcd-s3-skip-ssl-verify: true
etcd-s3-access-key: user
etcd-s3-secret-key: pass
etcd-s3-bucket: etcd-backup
etcd-snapshot-retention: 30
  • etcd-s3 是不是启用备份到s3
  • etcd-s3-endpoint s3 的端点
  • etcd-s3-skip-ssl-verify 禁用 S3 SSL 证书验证
  • etcd-s3-access-key S3 访问密钥
  • etcd-s3-secret-key S3 密钥
  • etcd-s3-bucket S3 存储桶名称
  • etcd-snapshot-retention 要保留的快照数

除此之外还有下面参数

  • etcd-snapshot-schedule-cron cron 规范中的快照间隔时间。例如。每 5 小时0 */5 * * *(默认值0 */12 * * *:)
  • etcd-s3-region S3 区域/存储桶位置(可选)。默认为 us-east-1
  • etcd-s3-folder S3文件夹
  • etcd-s3-endpoint-ca 用于连接到 S3 端点的 S3 自定义 CA 证书

下面是我的k3s目前配置的所有参数

vim /etc/rancher/k3s/config.yaml

cluster-init: true
docker: false
data-dir: /data/k3s
server: https://k8s.xxx.com:6443
disable:
  - traefik
  - servicelb
  - metrics-server
  - local-storage
token: d41de980xcf77998ecfsdfsdf8427e
kubelet-arg:
  - cgroup-driver=systemd
kube-proxy-arg:
  - proxy-mode=ipvs
  - ipvs-strict-arp=true
etcd-s3: true
etcd-s3-endpoint: xxx.xxx.com
etcd-s3-skip-ssl-verify: true
etcd-s3-access-key: user
etcd-s3-secret-key: pass
etcd-s3-bucket: etcd-backup
etcd-snapshot-retention: 30

重启k3s之后测试下配置是不是ok的

k3s etcd-snapshot

如果没有什么问题你的bucket内部就会有对应的文件出现了

当你的集群如果出现问题了,可以直接用下面的命令恢复数据

k3s server \
  --cluster-init \
  --cluster-reset \
  --etcd-s3 \
  --cluster-reset-restore-path=<SNAPSHOT-NAME> \
  --etcd-s3-bucket=<S3-BUCKET-NAME> \
  --etcd-s3-access-key=<S3-ACCESS-KEY> \
  --etcd-s3-secret-key=<S3-SECRET-KEY>

欢迎关注我的博客www.bboy.app

Have Fun