Bota5ky

Kubernetes学习笔记(二十一):备份

kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml

与其备份单个资源,不如备份ETCD:

etcd.service

  --data-dir=/var/lib/etcd

etcd也自带快照功能

ETCDCTL_API=3 etcdctl \  ##根据etcdctl版本 不想重复写就export ETCDCTL_API=3 设置全局参数
	snapshot save snapshot.db
	snapshot status snapshot.db  ##查看备份状态

Restore:会初始化新的集群配置,将etcd配置为新成员,以防止新成员加入现有集群

ETCDCTL_API=3 etcdctl \
service kube-apiserver stop
snapshot restore snapshot.db --data-dir /var/lib/etcd-from-backup  ##使用新的数据目录,将备份还原到此数据目录
systemctl daemon-reload
service etcd restart
service kube-apiserver start

可以对备份指定访问端口和密钥信息:

ETCDCTL_API=3 etcdctl \
snapshot save snapshot.db  ##如果启用了TLS,以下选项是强制性的
  --endpoints=https://127.0.0.1:2379
  --cacert=/etc/etcd/ca.crt
  --cert=/etc/etcd/etcd-server.crt
  --key=/etc/etcd/etcd-server.key

还原后需要设置新的 etcd-datahostPath

volumes:
- hostPath:
    path: /var/lib/etcd  ##修改为etcd-from-backup新目录
    type: DirectoryOrCreate
  name: etcd-data

查看 node 相关的 clusters:

kubectl config view
kubectl config get-clusters

更换 node 上的 cluster context:

kubectl config use-context cluster1

查看ETCD服务器所属的ETCD集群中有多少节点:

ETCDCTL_API=3 etcdctl \
 --endpoints=https://127.0.0.1:2379 \
 --cacert=/etc/etcd/pki/ca.pem \
 --cert=/etc/etcd/pki/etcd.pem \
 --key=/etc/etcd/pki/etcd-key.pem \
  member list

跨node复制文件:scp cluster1-controlplane:/opt/cluster1.db /opt/cluster1.db

如果是外部的etcd,需要修改 /etc/systemd/system/etcd.service中的 data-dir,添加新路径的etcd权限 chown -R etcd:etcd /var/lib/etcd-data-new,最后重启服务 systemctl daemon-reload, systemctl restart etcd

posted @ 2022-08-24 21:44  Bota5ky  阅读(135)  评论(0)    收藏  举报