Kubernetes / Rancher 2,具有本地存储卷部署的mongo-replicaset

问题描述 投票:2回答:1

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

如何正确部署具有本地存储卷的mongo-replicaset?任何调试技术都很受欢迎,因为我是牧场主2的新手。

我遵循下面的4个ABCD步骤,但第一个pod部署永远不会结束。这有什么不对?最后是日志和结果屏幕。详细配置可以找到here

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

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

注意:使用mongo-replicaset和Local Persistent Volume进行部署失败。


步骤A - 群集

创建一个rancher实例,并:

  1. 添加三个节点:worker,worker etd,worker control plane
  2. 在每个节点上添加标签:名称一,名称二,名称三为节点Affinity

步骤B - 存储类

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

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

步骤C - 持久卷

像这样添加3个持久卷:

  1. type:本地节点路径
  2. 访问模式:单节点RW,12Gi
  3. 存储类:本地存储
  4. 节点亲和力:名称一(第二卷为两,第三卷为三)

步骤D - Mongo-replicaset部署

从目录中,选择Mongo-replicaset并将其配置为:

  1. replicaSetName:rs0
  2. persistentVolume.enabled:true
  3. persistentVolume.size:12Gi
  4. persistentVolume.storageClass:local-storage

结果

执行ABCD步骤后,新创建的mongo-replicaset应用程序将无限期保持“正在初始化”状态。

关联的mongo工作负载只包含一个pod,而不是三个。这个吊舱有两个“坠毁”的容器,bootstrap和mongo-replicaset。


日志

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

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

谢谢

mongodb kubernetes rancher persistent-volumes kubernetes-pod
1个回答
2
投票

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

由于Rancher是kubernetes的集装箱化部署,因此缺少细节。 Kubelet部署在docker容器中的每个节点上。他们不访问OS本地文件夹。

需要为kubelet添加卷绑定,就像K8s能够使用相同的绑定创建mongo pod一样。

在牧场主:编辑群集yaml(群集>编辑>编辑为Yaml)

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

  kubelet: 
    extra_binds: 
      - "/mongo:/mongo:rshared"
© www.soinside.com 2019 - 2024. All rights reserved.