在Ubuntu上备份Kubernetes,可参考以下方法:
etcd是Kubernetes集群的关键组件,存储着集群的所有配置信息和状态信息。可使用etcdctl
命令进行备份,具体操作如下:
etcdctl
版本与etcd版本匹配,可通过etcdctl version
查看。export ETCDCTL_API=3
,以及ETCD_ENDPOINTS
、ETCD_CERT
、ETCD_KEY
、ETCD_CACERT
等,用于指定etcd集群的连接信息。etcdctl snapshot save <backup-file-path>
,例如etcdctl snapshot save /path/to/etcd-backup.db
。可使用kubectl
命令备份集群的配置信息,如kubectl get pods,deployments,services --all-namespaces -o yaml > backup/cluster-config.yaml
,将所有命名空间下的Pod、Deployment、Service等资源导出为YAML格式并保存。
对于运行在集群中的应用程序,可使用kubectl cp
命令备份Pod的数据,如kubectl cp <pod-name>:/path/to/source /path/to/destination
。也可使用rsync
命令备份PersistentVolumes的数据,如rsync -avz /path/to/pv /path/to/backup
。
Velero是开源的Kubernetes备份与恢复工具,支持对整个集群或选定资源进行备份。安装Velero后,可使用velero backup create
命令创建备份,指定要备份的命名空间和资源类型等。