Skip to main content

iSCSI 卷

本章节仅适用于由 RKE 创建的集群

将数据存储到 iSCSI 卷时,您可能会遇到一个问题:kubelet 无法自动连接 iSCSI 卷。造成此问题的原因很可能是 iSCSI 启动器工具不兼容。您可以在集群的每个节点上安装 iSCSI 启动器工具,解决这个问题。

Rancher 启动的 Kubernetes 集群是借助 iSCSI 启动器工具把数据存储到 iSCSI 卷的,这个工具已经被嵌入到 kubelet 的 rancher/hyperkube Docker 镜像中。该工具从每个 kubelet(即启动器)中发起与 iSCSI 卷(即目标)的会话。但是,在某些情况下,启动器和目标上安装的 iSCSI 启动器工具的版本可能不匹配,从而导致连接失败。

如果您遇到这个问题,您可以通过在集群的每个节点上安装启动器工具来解决。您可以通过登录到节点并输入以下命令之一来安装 iSCSI 启动器工具:

平台包名安装指令
Ubuntu/Debianopen-iscsisudo apt install open-iscsi
RHELiscsi-initiator-utilsyum install iscsi-initiator-utils -y

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

注意:

在更新 Kubernetes YAML 以挂载 iSCSI 二进制文件和配置之前,请确保在集群节点上安装了 open-iscsi(deb)或 iscsi-initiator-utils(yum)软件包。如果之前没有安装此软件包,更新 YAML 会导致 Docker 自动在每个节点上创建目录和文件,并且会导致 iscsi 相关软件包不能被成功安装。

services:
kubelet:
extra_binds:
- "/etc/iscsi:/etc/iscsi"
- "/sbin/iscsiadm:/sbin/iscsiadm"
Last updated on by yzeng25