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-data 的 hostPath:
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

浙公网安备 33010602011771号