我希望能够得到我当前集群的状态的描述,以便今后我将能够从故障中恢复。除了单独重新创建来自source/cli的所有服务之外,还有哪些解决方案可用?备份/恢复Kubernetes'当前状态(命名空间/荚/控制器/等)
1
A
回答
1
我正在使用来自CoreOS团队的bash脚本,进行了小小的调整,效果很好。我更多地使用它来进行群集迁移,但在某些级别上也可以用于备份。
for ns in $(kubectl get ns --no-headers | cut -d " " -f1); do
if { [ "$ns" != "kube-system" ]; }; then
kubectl --namespace="${ns}" get --export -o=json svc,rc,rs,deployments,cm,secrets,ds,petsets | \
jq '.items[] |
select(.type!="kubernetes.io/service-account-token") |
del(
.spec.clusterIP,
.metadata.uid,
.metadata.selfLink,
.metadata.resourceVersion,
.metadata.creationTimestamp,
.metadata.generation,
.status,
.spec.template.spec.securityContext,
.spec.template.spec.dnsPolicy,
.spec.template.spec.terminationGracePeriodSeconds,
.spec.template.spec.restartPolicy
)' >> "./my-cluster.json"
fi
done
如果你需要后revocer的状态,你只需要执行kubectl create -f ./my-cluster.json
4
我建议Heptio方舟 - https://github.com/heptio/ark。这是Kubernetes的通用灾难恢复解决方案。它将备份群集内的所有资源(容器,部署等),还可以拍摄持久卷的快照。
(声明:我Heptio工作在方舟)
相关问题
- 1. Kubernetes复制控制器在CrashLoopBackOff状态
- 2. Kubernetes荚停留在等待状态
- 3. Aerospike命名空间的自动备份和恢复
- 4. Oracle备份和恢复的表空间
- 5. 如何恢复角度控制器的以前的状态
- 6. Kubernetes nodeSelector不豆荚,复制控制器和部署
- 7. 当状态恢复时,RootView控制器显示为简略
- 8. python命名空间包的当前状态
- 9. Kubernetes。命名空间隔离
- 10. 命令删除所有kubernetes命名空间中的所有豆荚
- 11. 提取当前的命名空间,捆绑,控制器和动作名称symfony3
- 12. kubernetes复制控制器
- 13. 命名空间控制器文件
- 14. 访问子命名空间控制器
- 15. Symfony2的命名空间(控制器(..))
- 16. MVC控制器在DLL命名空间
- 17. 从命名空间中的控制器
- 18. 轨道4控制器命名空间
- 19. Rspec命名空间控制器失败
- 20. 尝试从命名空间“控制器”
- 21. respond_with和命名空间控制器
- 22. Rails命名空间控制器问题
- 23. 准备Zend Framework 2(命名空间控制器)
- 24. 状态恢复时的模态视图控制器动画
- 25. 命名空间名称空间控制器还有什么?
- 26. 名称空间前置当前命名空间
- 27. 命名空间控制器/前缀在默认模块
- 28. PHP前端控制器找不到类(命名空间)
- 29. 控制器的命名空间或前缀
- 30. 恢复备份mysql
有用的命令,但有必要增加(所有需要的对象)如ClusterRole,ClusterRoleBinding,Role,RoleBinding ...并将'petsets'更改为'StatefulSet'。 –