新聞中心
擴(kuò)縮 StatefulSet
本文介紹如何擴(kuò)縮StatefulSet。StatefulSet 的擴(kuò)縮指的是增加或者減少副本個(gè)數(shù)。

在開始之前
- StatefulSets 僅適用于 Kubernetes 1.5 及以上版本。
- 不是所有 Stateful 應(yīng)用都能很好地執(zhí)行擴(kuò)縮操作。
- 僅當(dāng)你確定你的有狀態(tài)應(yīng)用的集群是完全健康的,才可執(zhí)行擴(kuò)縮操作。
使用 kubectl 擴(kuò)縮 StatefulSet
首先,找到你要擴(kuò)縮的 StatefulSet。
kubectl get statefulsets
更改 StatefulSet 中副本個(gè)數(shù):
kubectl scale statefulsets --replicas=<新的副本數(shù)>
對(duì) StatefulSet 執(zhí)行就地更新
另外, 你可以就地更新 StatefulSet。
如果你的 StatefulSet 最初通過(guò) ?kubectl apply? 或 ?kubectl create --save-config? 創(chuàng)建, 你可以更新 StatefulSet 清單中的 ?.spec.replicas?, 然后執(zhí)行命令 ?kubectl apply?:
kubectl apply -f <更新后的 statefulset 文件>
否則,可以使用 ?kubectl edit? 編輯副本字段:
kubectl edit statefulsets
或者使用 ?kubectl patch?:
kubectl patch statefulsets -p '{"spec":{"replicas":}}'
故障排查
縮容操作無(wú)法正常工作
當(dāng) Stateful 所管理的任何 Pod 不健康時(shí),你不能對(duì)該 StatefulSet 執(zhí)行縮容操作。 僅當(dāng) StatefulSet 的所有 Pod 都處于運(yùn)行狀態(tài)和 Ready 狀況后才可縮容.
如果 ?spec.replicas? 大于 1,Kubernetes 無(wú)法判定 Pod 不健康的原因。 Pod 不健康可能是由于永久性故障造成也可能是瞬態(tài)故障。 瞬態(tài)故障可能是節(jié)點(diǎn)升級(jí)或維護(hù)而引起的節(jié)點(diǎn)重啟造成的。
如果該 Pod 不健康是由于永久性故障導(dǎo)致, 則在不糾正該故障的情況下進(jìn)行縮容可能會(huì)導(dǎo)致 StatefulSet 進(jìn)入一種狀態(tài),其成員 Pod 數(shù)量低于應(yīng)正常運(yùn)行的副本數(shù)。 這種狀態(tài)也許會(huì)導(dǎo)致 StatefulSet 不可用。
如果由于瞬態(tài)故障而導(dǎo)致 Pod 不健康并且 Pod 可能再次變?yōu)榭捎?,那么瞬態(tài)錯(cuò)誤可能會(huì)干擾 你對(duì) StatefulSet 的擴(kuò)容/縮容操作。 一些分布式數(shù)據(jù)庫(kù)在同時(shí)有節(jié)點(diǎn)加入和離開時(shí) 會(huì)遇到問(wèn)題。在這些情況下,最好是在應(yīng)用級(jí)別進(jìn)行分析擴(kuò)縮操作的狀態(tài), 并且只有在確保 Stateful 應(yīng)用的集群是完全健康時(shí)才執(zhí)行擴(kuò)縮操作。
新聞標(biāo)題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes 擴(kuò)縮StatefulSet
本文URL:http://fisionsoft.com.cn/article/cdccijp.html


咨詢
建站咨詢
