Kubernetes / Rancher 2,mongo-具有本地存储卷部署的副本集
Kubernetes / Rancher 2, mongo-replicaset with Local Storage Volume deployment
我试了,我试了,但是 Rancher 2.1 无法部署“mongo-replicaset”目录应用程序,带有 Local Persistent Volumes已配置。
如何使用本地存储卷正确部署 mongo-replicaset?由于我是 rancher 2 的新手,任何调试技术都值得赞赏。
我按照下面的 4 ABCD 步骤进行操作,但是第一个 pod 部署永远不会结束。这有什么问题吗?日志和结果屏幕在最后。详细配置可见here.
注意:没有本地持久卷的部署成功。
注意:使用本地持久卷和“mongo”映像部署成功(无副本集版本)。
注意:同时使用 mongo-replicaset 和本地持久卷进行部署 失败 。
步骤 A - 集群
创建一个牧场主实例,并且:
- 添加三个节点:一个worker,一个worker etcd,一个worker control plane
- 在每个节点上添加标签:节点亲和力的名称一、名称二和名称三
步骤 B - 存储 class
使用以下参数创建存储 class:
- volumeBindingMode : WaitForFirstConsumer saw here
- 名称:本地存储
步骤 C - 持久卷
像这样添加 3 个持久卷:
- 类型:本地节点路径
- 接入方式:单节点读写,12Gi
- 存储class:本地存储
- 节点亲和度:名一(二卷二,三卷三)
步骤 D - Mongo-副本集部署
从目录,select Mongo-replicaset 并像这样配置它:
- 副本集名称:rs0
- persistentVolume.enabled: 真
- persistentVolume.size: 12Gi
- persistentVolume.storageClass: 本地存储
结果
执行完ABCD步骤后,新创建的mongo-replicaset app一直处于“Initializing”状态。
关联的 mongo 工作负载仅包含一个 pod,而不是三个。这个 pod 有两个 'crashed' 容器,bootstrap 和 mongo-replicaset。
日志
这是唯一的 运行 pod 的 4 个容器的输出。没有错误,没有问题。
我无法弄清楚这个配置有什么问题,我也没有任何工具或技术来分析问题。详细配置可见here。请向我询问更多命令结果。
谢谢你
所有这些配置都是正确的。
它缺少一个细节,因为 Rancher 是 kubernetes 的容器化部署。
Kubelet 部署在 docker 个容器中的每个节点上。他们无法访问 OS 个本地文件夹。
需要为 kubelet 添加卷绑定,这样 K8s 将能够使用相同的绑定创建 mongo pod。
在牧场主中:
编辑集群 yaml(集群 > 编辑 > 编辑为 Yaml)
在 "services" 节点下添加以下条目:
kubelet:
extra_binds:
- "/mongo:/mongo:rshared"
我试了,我试了,但是 Rancher 2.1 无法部署“mongo-replicaset”目录应用程序,带有 Local Persistent Volumes已配置。
如何使用本地存储卷正确部署 mongo-replicaset?由于我是 rancher 2 的新手,任何调试技术都值得赞赏。
我按照下面的 4 ABCD 步骤进行操作,但是第一个 pod 部署永远不会结束。这有什么问题吗?日志和结果屏幕在最后。详细配置可见here.
注意:没有本地持久卷的部署成功。
注意:使用本地持久卷和“mongo”映像部署成功(无副本集版本)。
注意:同时使用 mongo-replicaset 和本地持久卷进行部署 失败 。
步骤 A - 集群
创建一个牧场主实例,并且:
- 添加三个节点:一个worker,一个worker etcd,一个worker control plane
- 在每个节点上添加标签:节点亲和力的名称一、名称二和名称三
步骤 B - 存储 class
使用以下参数创建存储 class:
- volumeBindingMode : WaitForFirstConsumer saw here
- 名称:本地存储
步骤 C - 持久卷
像这样添加 3 个持久卷:
- 类型:本地节点路径
- 接入方式:单节点读写,12Gi
- 存储class:本地存储
- 节点亲和度:名一(二卷二,三卷三)
步骤 D - Mongo-副本集部署
从目录,select Mongo-replicaset 并像这样配置它:
- 副本集名称:rs0
- persistentVolume.enabled: 真
- persistentVolume.size: 12Gi
- persistentVolume.storageClass: 本地存储
结果
执行完ABCD步骤后,新创建的mongo-replicaset app一直处于“Initializing”状态。
关联的 mongo 工作负载仅包含一个 pod,而不是三个。这个 pod 有两个 'crashed' 容器,bootstrap 和 mongo-replicaset。
日志
这是唯一的 运行 pod 的 4 个容器的输出。没有错误,没有问题。
我无法弄清楚这个配置有什么问题,我也没有任何工具或技术来分析问题。详细配置可见here。请向我询问更多命令结果。
谢谢你
所有这些配置都是正确的。
它缺少一个细节,因为 Rancher 是 kubernetes 的容器化部署。 Kubelet 部署在 docker 个容器中的每个节点上。他们无法访问 OS 个本地文件夹。
需要为 kubelet 添加卷绑定,这样 K8s 将能够使用相同的绑定创建 mongo pod。
在牧场主中: 编辑集群 yaml(集群 > 编辑 > 编辑为 Yaml)
在 "services" 节点下添加以下条目:
kubelet:
extra_binds:
- "/mongo:/mongo:rshared"