docker - Kubernetes中的Accumulo集群部署

标签 docker kubernetes accumulo

我正在尝试使用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/

相关文章:

docker - docker问题一次编写初始数据库设置

docker - 无法使用dockerfile golang打开文件

kubernetes - 使用 Kubernetes 编排从部署的微服务访问微服务端点

docker - 我需要有关docker-compose.yml的信息-如何配置/导出到kubernetes入口

java - 将文本写入 Accumulo 时尾随空 (\x00) 字符

hadoop - Apache Accumulo安装

git - Wiki.js不适用于预先存在的存储库

php - Docker - NGINX 容器转发到 PHP-FPM 容器

java - 杰迪斯数据异常 : ERR WATCH inside MULTI is not allowed

accumulo - 配置累加器时出现问题