1

我正在使用带有 OpenEBS 的 cTor 存储类在 Rancher 2.1 集群(1 个节点)中测试 Prometheus,RancherOS 在 Hyper-v 中运行。cStor 卷未安装,并且 pod 正在启动一个事件:

Unable to mount volumes for pod "prometheus-server-595746cc5-7xrmt_prometheus(46f03eb4-630f-11e9-b3e5-00155daf3d1f)": timeout expired 
waiting for volumes to attach or mount for pod "prometheus"/"prometheus-server-595746cc5-7xrmt". list of unmounted volumes=[storage-volume]. list of 
unattached volumes=[config-volume storage-volume prometheus-server-token-2w8ng] a minute ago

我认为这与命令的输出有关:

sudo ros s up open-iscsi

那是:

[rancher@kub-master ~]$ sudo ros s up open-iscsi
ERRO[0002] non-200 http response: 404
ERRO[0002] Failed to load rancher.docker.engine=(docker-18.09.5-ce): non-200 
http response: 404
INFO[0002] Project [os]: Starting project
INFO[0002] [0/21] [open-iscsi]: Starting
INFO[0092] [1/21] [open-iscsi]: Started
INFO[0092] Project [os]: Project started

所以,问题是...... ERRO[0002] 很重要吗?在哪里记录了我该如何解决?

我找不到如何解决这个问题,我尝试了:

  • 重新安装 open-iscsi 服务。
  • 由于我不确定容器是否因为这个错误而无法安装卷,所以我尝试重新创建池、存储类......,并且错误仍然存​​在。
4

2 回答 2

0

您可以从 OpenEBS 文档 docs.openebs.io 检查 RancherOS 中安装 OpenEBS 的先决条件吗?从那里复制内容。

如果您使用 RancherOS 作为 Kubernetes 集群的操作系统,您只需启用 iSCSI 服务并在所有主机或节点上启动它。如果您使用 Ubuntu 或 RHEL 作为 Kubernetes 集群的操作系统,则需要

  • 验证 iSCSI 启动器已安装在所有节点(和)上
  • 在集群 YAML 文件中的 Kubelet 服务下添加 extra_binds 以将 iSCSI 二进制文件和配置挂载到 Kubelet 中。

RancherOS 上的 iSCSI 服务

要运行 iSCSI 服务,请在每个集群主机或节点上执行以下命令。

sudo ros s 启用 open-iscsi sudo ros s up open-iscsi

在所有节点上运行以下命令以确保以下目录是持久的,默认情况下这些目录是临时的。

ros config set rancher.services.user-volumes.volumes [/home:/home,/opt:/opt,/var/lib/kubelet:/var/lib/kubelet,/etc/kubernetes:/etc/kubernetes,/ var/openebs] system-docker rm 所有卷重启

RHEL 或 Ubuntu 上的 iSCSI 服务 第 1 步:验证 iSCSI 启动器已安装且服务正在运行

操作系统 iSCSI 软件包命令 RHEL / CentOS iscsi-initiator-utils yum install iscsi-initiator-utils -y sudo systemctl enable iscsid && sudo systemctl start iscsid modprobe iscsi_tcp Ubuntu/Debian open-iscsi sudo apt install open-iscsi sudo systemctl enable iscsid && sudo systemctl start iscsid modprobe iscsi_tcp

Step2:在集群YAML的kubelet服务下添加extra_binds

在节点上安装启动器工具后,编辑集群的 YAML,编辑 kubelet 配置以挂载 iSCSI 二进制文件和配置,如下面的示例所示。

服务:kubelet:extra_binds:-“/etc/iscsi:/etc/iscsi”-“/sbin/iscsiadm:/sbin/iscsiadm”-“/var/lib/iscsi:/var/lib/iscsi”-“/lib /模块”

于 2019-05-02T02:43:33.340 回答
0

来自 pod 的错误(无法挂载)信息不足。检查 OpenEBS 配置程序或命名空间中以开头的任何 pod 的日志和pvc事件openebs。那应该告诉你实际的问题。

如果您正在运行一个 1 节点集群,您是否告诉 OpenEBS 不要创建 3 个副本?它可能正在等待其他 2 个副本上线,因此无法使卷可供 prometheus Pod 使用。

这些只是我脑海中的想法。

404错误很奇怪,但似乎加载了open-iscsi驱动程序没有错误。可能没关系。检查 Github 是否有关于它的问题,如果没有,请打开一个并记录如何重现错误。

于 2019-04-26T16:25:58.267 回答