mur*_*uru 2 cassandra kubernetes
我正在使用v1.5.1 的示例在Kubernetes上试验Cassandra和Redis .
kubectl,该节点的Pod将永远保留(至少一周以上),而不会移动到另一个节点.如果节点出现故障,有没有办法自动将Cassandra pod移动到另一个节点?或者我是否必须手动排空或删除节点?
请参阅此处的文档.
Kubernetes(1.5或更新版本)不会因为节点无法访问而删除Pod.在无法访问的节点上运行的Pod在超时后进入"终止"或"未知"状态.当用户尝试在无法访问的节点上正常删除Pod时,Pod也可能进入这些状态.可以从apiserver中删除处于这种状态的Pod的唯一方法如下:
- Node对象被删除(由您或节点控制器删除).
- 无响应节点上的kubelet开始响应,杀死Pod并从apiserver中删除条目.
- 强制用户删除Pod.
这是kubernetes 1.5中引入的行为变化,它允许StatefulSet优先考虑安全性.
没有办法区分以下情况:
这两种情况都被视为节点上的kubelet被Kubernetes主人无法响应.如果在第二种情况下,我们要在不同的节点上快速创建替换pod,我们可能违反StatefulSet保证的最多一个语义,并且具有在不同节点上运行的具有相同身份的多个pod.在最坏的情况下,这甚至可能导致运行有状态应用程序时大脑和数据丢失.
在大多数云提供程序中,当删除实例时,Kubernetes可以确定节点也被删除,因此可以在其他地方重新创建StatefulSet窗格.
但是,如果您在本地运行,则可能不会发生这种情况.建议您在关闭时从kubernetes中删除Node对象,或者使用协调循环使Kubernetes将节点的概念与可用的实际节点保持同步.
github问题还有一些上下文.
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |