Kubernetes / Rancher 2,带有本地存储卷部署的mongo复制副本

时间:2018-10-26 12:32:03

标签: mongodb kubernetes rancher persistent-volumes kubernetes-pod

我尝试了,但是尝试了,但Rancher 2.1无法部署配置了本地持久卷的“ mongo-replicaset ”目录应用。

如何正确部署带有本地存储卷的mongo-replicaset?由于我是牧场主2的新手,因此感谢所有调试技术。

我遵循下面的4个ABCD步骤,但是第一个Pod部署永远不会结束。怎么了日志和结果屏幕位于末尾。可以在here中找到详细的配置。

注意:没有本地持久卷的部署成功

注意:使用本地持久卷和“成功”镜像(没有副本集版本)进行部署。

注意:使用mongo-replicaset和本地永久卷进行部署失败


步骤A-群集

创建一个牧场者实例,然后:

  1. 添加三个节点:工人,工人etcd,工人控制平面
  2. 在每个节点上添加标签:节点亲和力的名称分别为1,名称2和名称3

步骤B-存储类

使用以下参数创建存储类:

  1. volumeBindingMode:WaitForFirstConsumer saw here
  2. 名称:本地存储

步骤C-持久卷

添加3个永久卷,如下所示:

  1. 类型:本地节点路径
  2. 访问模式:单节点RW,12Gi
  3. 存储类别:本地存储
  4. 节点相似性:命名为一(第二卷为两个,第三卷为三个)

步骤D-Mongo复制副本部署

从目录中,选择Mongo-replicaset并进行如下配置:

  1. replicaSetName:rs0
  2. persistentVolume.enabled:是
  3. persistentVolume.size:12Gi
  4. persistentVolume.storageClass:本地存储

结果

完成ABCD步骤后,新创建的mongo-replicaset应用程序将无限处于“正在初始化”状态。

mongo status stopped at initialized

关联的mongo工作负载仅包含一个Pod,而不是三个。这个吊舱有两个“坠毁”的容器,即引导程序和mongo-replicaset。

crashed workload with only one pod


日志

这是唯一运行的容器的4个容器的输出。没有错误,没有问题。

no logs in mongo container allmost no logs in copy-config container allmost no logs in install container some logs from bootstrap container

我无法弄清楚此配置有什么问题,并且我没有任何工具或技术来分析问题。可以在here中找到详细的配置。请询问我更多命令的结果。

谢谢

1 个答案:

答案 0 :(得分:1)

所有这些配置都是正确的。

由于Rancher是kubernetes的容器化部署,因此缺少细节。 Kubelet部署在Docker容器中的每个节点上。他们无法访问操作系统本地文件夹。

需要为kubelet添加体积绑定,例如K8能够使用相同的绑定创建mongo pod。

在牧场主中: 编辑集群Yaml(集群>编辑>以Yaml编辑)

在“服务”节点下添加以下条目:

  kubelet: 
    extra_binds: 
      - "/mongo:/mongo:rshared"