我希望能夠得到我當前集羣的狀態的描述,以便今後我將能夠從故障中恢復。除了單獨重新創建來自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'。 –