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

Sli*_*lim 5 mongodb kubernetes rancher persistent-volumes kubernetes-pod

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

如何使用本地存储卷正确部署 mongo-replicaset?由于我是 Rancher 2 的新手,因此任何调试技术都值得赞赏。

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

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

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

注意:同时使用 mongo-replicaset 和本地持久卷的部署失败。


步骤 A - 集群

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

  1. 添加三个节点:一个worker,一个worker etcd,一个worker控制平面
  2. 在每个节点上添加标签:为节点 Affinity 命名一、命名二和命名三

步骤 B - 存储类

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

  1. volumeBindingMode : WaitForFirstConsumer看到这里
  2. 名称:本地存储

步骤 C - 持久卷

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

  1. 类型:本地节点路径
  2. 接入方式:单节点RW,12Gi
  3. 存储类别:本地存储
  4. 节点亲和度:名称一(第二卷两个,第三卷三个)

步骤 D - Mongo-replicaset 部署

从目录中,选择 Mongo-replicaset 并像这样配置它:

  1. 副本集名称:rs0
  2. 持久卷.启用:真
  3. 持久卷大小:12Gi
  4. 持久卷.storageClass:本地存储

结果

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

mongo 状态在初始化时停止

关联的 mongo 工作负载仅包含一个 pod,而不是三个。这个 pod 有两个“崩溃”的容器,bootstrap 和 mongo-replicaset。

只有一个 Pod 导致工作负载崩溃


日志

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

mongo 容器中没有日志 在复制配置容器中几乎没有日志 安装容器中几乎没有日志 来自引导容器的一些日志

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

谢谢

Sli*_*lim 8

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

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

需要为 kubelets 添加一个卷绑定,就像 K8s 将能够创建具有相同绑定的 mongo pod。

在 Rancher 中:编辑集群 yaml(集群 > 编辑 > 编辑为 Yaml)

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

  kubelet: 
    extra_binds: 
      - "/mongo:/mongo:rshared"
Run Code Online (Sandbox Code Playgroud)