简介
如果你使用的是嵌入式的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