我希望能够得到我当前集群的状态的描述,以便今后我将能够从故障中恢复。除了单独重新创建来自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. Aerospike命名空间的自动备份和恢复
- 2. 如何恢复角度控制器的以前的状态
- 3. Kubernetes nodeSelector不豆荚,复制控制器和部署
- 4. Kubernetes。命名空间隔离
- 5. 提取当前的命名空间,捆绑,控制器和动作名称symfony3
- 6. 命令删除所有kubernetes命名空间中的所有豆荚
- 7. Symfony2的命名空间(控制器(..))
- 8. respond_with和命名空间控制器
- 9. MVC控制器在DLL命名空间
- 10. 访问子命名空间控制器
- 11. 尝试从命名空间“控制器”
- 12. Rails命名空间控制器问题
- 13. 准备Zend Framework 2(命名空间控制器)
- 14. 状态恢复时的模态视图控制器动画
- 15. 命名空间名称空间控制器还有什么?
- 16. 控制器的命名空间或前缀
- 17. 命名空间控制器/前缀在默认模块
- 18. MySQL备份和从命令行恢复
- 19. 恢复备份wordpress时致命错误
- 20. 恢复备份mysql
- 21. Laravel恢复备份
- 22. 如何将couchbase恢复到备份状态?
- 23. Rails的url_for命名空间模型和非命名空间的控制器
- 24. SQL备份和恢复完整备份
- 25. 为少数命名空间[kubernetes]
- 26. 恢复小型备份时磁盘空间不足
- 27. MVC路由中控制器的类别? (在独立命名空间中复制控制器名称)
- 28. 恢复asp.net中RadiobuttonList的以前状态
- 29. 恢复以前的回声状态
- 30. 恢复到以前的状态jQuery中
有用的命令,但有必要增加(所有需要的对象)如ClusterRole,ClusterRoleBinding,Role,RoleBinding ...并将'petsets'更改为'StatefulSet'。 –