gpt4 book ai didi

docker - Kubernetes中的Accumulo集群部署

转载 作者:行者123 更新时间:2023-12-02 11:40:08 25 4
gpt4 key购买 nike

我正在尝试使用https://github.com/cybermaggedon/accumulo-docker中的容器在Google Kubernetes Engine中创建3节点部署。我的主要问题是如何使节点相互了解。例如,accumulo/conf/slaves配置文件包含所有节点的列表(名称或IP,每行一个),并且需要在所有节点之间复制。另外,将一个Accumulo节点指定为主节点,所有从节点通过将其指定为conf / masters文件中的唯一名称/ IP来指向它。

Accumulo docker容器的文档通过提供环境变量以这种方式配置每个容器,容器启动脚本随后使用这些环境变量来重写该容器的配置文件,例如

  docker run -d --ip=10.10.10.11 --net my_network \
-e ZOOKEEPERS=10.10.5.10,10.10.5.11,10.10.5.12 \
-e HDFS_VOLUMES=hdfs://hadoop01:9000/accumulo \
-e NAMENODE_URI=hdfs://hadoop01:9000/ \
-e MY_HOSTNAME=10.10.10.11 \
-e GC_HOSTS=10.10.10.10 \
-e MASTER_HOSTS=10.10.10.10 \
-e SLAVE_HOSTS=10.10.10.10,10.10.10.11,10.10.10.12 \
-e MONITOR_HOSTS=10.10.10.10 \
-e TRACER_HOSTS=10.10.10.10 \
--link hadoop01:hadoop01 \
--name acc02 cybermaggedon/accumulo:1.8.1h

这是一个从节点之一的启动,它在 SLAVE_HOSTS中包含自身,并在 MASTER_HOSTS中指向主节点。

如果我将扩展作为Kubernetes下的有状态集合来实现,如何获得类似的结果?我可以根据需要修改容器,创建自己的版本没有问题。

最佳答案

免责声明:仅因为它在docker上运行,并不一定意味着它可以在Kubernetes上运行。 Accumulo是Hadoop / HDFS生态系统的一部分,许多组件不一定已准备好投入生产。检查我的其他答案:12

Kubernetes使用PodCidr运行其Pod,仅在集群中可见。同样,每个Pod的IP地址也不是固定的,这意味着它可以随着从一个群集移动到另一个群集或Pod停止/启动而改变。通常在群集中发现服务/ pods 的方式是使用DNS。因此,例如,对于主选项和从属选项,您可能必须指定一个Kubernetes DNS(并考虑使用的是使用Pod的序号的StatefulSet)

MASTER_HOSTS=acummulo-0.accumulo.default.svc.cluster.local
SLAVE_HOSTS=acummulo-0.accumulo.default.svc.cluster.local,acummulo-1.accumulo.default.svc.cluster.local,acummulo-2.accumulo.default.svc.cluster.local

由于Accumulo是一个分布式K / V存储,因此您可以从 Cassandra在Kubernetes集群上的部署方式中获得启发。希望能帮助到你!

关于docker - Kubernetes中的Accumulo集群部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53266785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com