无文档运行中Kubernetes集群导出导入工具推荐
K8s集群资源导出/导入工具推荐
一、kubectl 原生工具(无依赖最直接)
无需额外安装工具,适合快速导出核心资源:
- 导出资源:优先导出控制器类资源(而非直接导出Pod,Pod是临时实例,控制器会自动重建),执行命令:
可以忽略你输出中# 导出Deployment、Service、ConfigMap、Secret等核心资源到yaml文件 kubectl get deployments,services,statefulsets,configmaps,secrets -o yaml > core-cluster-resources.yaml # 如需导出指定命名空间资源,添加-n参数 kubectl get deployments,services -n your-namespace -o yaml > ns-resources.yamlCompleted状态的Pod,这类已完成的资源无需迁移。 - 导入到新集群:切换到新集群的kubectl上下文后执行:
kubectl apply -f core-cluster-resources.yaml
二、Velero(适合批量/完整集群迁移)
专门用于K8s备份迁移的工具,支持精准选择资源备份恢复:
- 原集群备份:安装Velero后,创建目标资源的备份:
备份文件默认存于对象存储,也可配置本地存储路径,之后将备份数据同步到新集群环境。# 创建备份,指定需要迁移的资源类型 velero backup create cluster-mig-backup --include-resources='deployments,services,configmaps,secrets' - 新集群恢复:在新集群安装同版本Velero后执行恢复:
注:存储卷迁移需额外配置PV/PVC规则,你可后续单独处理存储数据问题。velero restore create --from-backup cluster-mig-backup
三、kube-backup(轻量批量导出工具)
简化资源过滤和批量操作的轻量命令行工具:
- 导出资源:
# 指定资源类型,导出到本地目录 kube-backup export --resources=deploy,service,cm,secret --output-dir=./k8s-backup - 导入到新集群:
kube-backup import --input-dir=./k8s-backup
关键注意事项
- 避免直接迁移Pod实例,优先迁移Deployment、StatefulSet等控制器,新集群会自动重建运行状态的Pod。
- 务必迁移ConfigMap和Secret,多数应用的配置、敏感数据依赖这类资源。
- 存储卷数据:用
kubectl cp将原Pod内的存储文件复制到本地,再反向复制到新集群的对应Pod中完成迁移。 - 网络配置:新集群中Service的ClusterIP可能变化,需检查应用内部是否硬编码了旧集群IP,必要时修改配置。
内容的提问来源于stack exchange,提问作者XP_2600
相关产品推荐
相关产品推荐

