代码之家  ›  专栏  ›  技术社区  ›  user2650994

Kubernetes中的Accumulo群集部署

  •  2
  • user2650994  · 技术社区  · 7 年前

    https://github.com/cybermaggedon/accumulo-docker 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下将缩放实现为一个有状态集,那么如何实现类似的结果?我可以根据需要修改容器,创建自己的版本没有问题。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Rico    7 年前

    免责声明:仅仅因为它在docker上运行,并不一定意味着它可以在Kubernetes上运行。 Accumulo 1 , 2 .

    Kubernetes使用PodCidr运行它的pods,它只在集群内可见。此外,每个pod的IP地址不是固定的,这意味着它可以在从一个集群移动到另一个集群或pod停止/启动时更改。通常在集群中发现服务/吊舱的方式是使用 DNS . 因此,例如,对于主选项和从选项,您可能必须指定Kubernetes DNS(并且考虑到您使用的是 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群集上。希望有帮助!

    推荐文章