使用单独的主机名/ IP设置Kubernetes Citus

时间:2018-07-17 22:29:53

标签: postgresql docker kubernetes citus

我正在学习Kubernetes,以期与Citus DB建立一个简单的集群,我在使事情进展方面遇到了一些麻烦,因此,感谢您的帮助。

我有一个包含为该项目的Citus配置的基本debian映像的docker映像,并且我想在此时使用一个主服务器进行设置,该主机应将一个GCP主磁盘与一个Postgres DB一起安装,然后在其他容器之间进行分发,每个容器都装有一个单独的磁盘,该磁盘带有空表(已配置Citus扩展名),以容纳分发给每个容器的内容。我想在某个时候进一步使它自动化,但是现在我的目标是仅一个主容器和八个节点。我的计划是创建一个在每个节点上打开端口5432和80的部署,我认为我可以创建两个Pod,一个用于容纳主节点,一个用于容纳八个节点。理想情况下,我想挂载所有磁盘,然后在主服务器上运行后挂载脚本,该脚本将找到所有节点容器(按IP或主机名?),将它们添加为Citus节点,然后运行create_distributed_table分发数据。

我目前的困惑是如何标记所有单个节点,以便它们保留其内部地址或主机名,因此如果发生故障,它将被替换并恢复PD上的数据。我已经阅读了有关ConfigMaps和设置主机名别名的信息,但仍不清楚如何进行。这可能吗,或者这是进行这种设置的错误方法吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找StatefulSet。这样一来,您便拥有已知数量的Pod副本。带有附加存储(PersistentVolumes);和一致的DNS名称。在pod规范中,我将只启动服务器的单个副本,并使用StatefulSet的副本计数来控制“节点”(也是Kubernetes术语)的数量,如果副本为#0,则它是主副本。