docker - Cassandra-Kubernetes重新启动时如何保持Pod IP

标签 docker cassandra kubernetes cassandra-2.1

我正在使用kubernetes 1.2示例来运行2个cassandra节点进行测试。 https://github.com/kubernetes/kubernetes/blob/release-1.2/examples/cassandra/README.md

我使用daemonset通过kubernetes节点拥有一个cassandra节点。一切正常,直到一个cassandra节点重新启动。 POD的IP地址更改并且nodetools状态返回Node DOWN

> kubectl exec -it cassandra-lnzhj -- nodetool status fruition
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens  Owns (effective)  Host ID                                  Rack    
UN  10.216.1.4  25.22 MB   256     39.6%             786aede9-ec4f-4942-b52a-135bc3cd68ce  rack1
UN  10.216.0.3  2.11 MB    256     40.1%             457f7322-131a-4499-b677-4d50691207ba  rack1
DN  10.216.0.2  377.41 KB  256     38.8%             aa2ca115-e8ea-4c62-8d57-bfc5b3fabade  rack1

然后,当我尝试发送一个简单的“从表中选择*”时;在复制因子为2的键空间上,出现此错误:
Traceback (most recent call last):
File "/usr/bin/cqlsh", line 1093, in perform_simple_statement rows = self.session.execute(statement, trace=self.tracing_enabled)
File "/usr/share/cassandra/lib/cassandra-driver-internal-only-2.7.2.zip/cassandra-driver-2.7.2/cassandra/cluster.py", line 1602, in execute result = future.result()
File "/usr/share/cassandra/lib/cassandra-driver-internal-only-2.7.2.zip/cassandra-driver-2.7.2/cassandra/cluster.py", line 3347, in result raise self._final_exception
Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'}

如何在Kubernetes重新启动时保留POD IP地址以使其不存在Down节点?
使用cassandra配置是否有更好的方法?

最佳答案

当前的Kubernetes无法实现这一目标。您需要在v1.3中实现PetSets

关于docker - Cassandra-Kubernetes重新启动时如何保持Pod IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745953/

相关文章:

kubernetes - Nginx 入口 Controller 配置 (gke)

kubernetes - "kubectl apply"的反面是什么?

docker - 从另一个容器通过 openvpn 客户端容器连接

ruby-on-rails - 如何将 ssh key 添加到 docker 容器?

docker - 如何在一个 Istio 服务网格中托管多个应用程序?

python - 是什么导致 Cassandra CQL 出现 "no viable alternative at input ' None'"错误

c# - Astra Datastax - Asp.net core - Secure Connect Bundle(Zip 文件)在本地工作但在发布到 Azure 应用程序服务时不工作

docker - 使用 nginx 重定向到 docker 注册表

cassandra - 了解 Cassandra 池选项(setCoreConnectionsPerHost 和 setMaxConnectionsPerHost)?

performance - ELK监控Kubernetes