|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
iSCSI 卷
在 Rancher 启动的 Kubernetes 集群 中,如果数据存储在 iSCSI 卷上,您可能会遇到 kubelet 无法自动连接到 iSCSI 卷的问题。此故障可能是由于 iSCSI 启动工具的兼容性问题。您可以通过在每个集群节点上安装 iSCSI 启动工具来解决此问题。
存储在 iSCSI 卷上的 Rancher 启动的 Kubernetes 集群利用了 iSCSI 启动工具,该工具嵌入在 kubelet 的 rancher/hyperkube Docker 镜像中。从每个 kubelet(即 启动器)开始,该工具发现并启动与 iSCSI 卷(即 目标)的会话。然而,在某些情况下,安装在启动器和目标上的 iSCSI 启动工具的版本可能不匹配,导致连接失败。
如果您遇到此问题,可以通过在集群中的每个节点上安装 iSCSI 启动工具来解决。您可以通过登录到集群节点并输入以下命令之一来安装 iSCSI 启动工具:
| 平台 | 软件包名称 | 安装命令 |
|---|---|---|
Ubuntu/Debian |
|
|
RHEL |
|
|
在节点上安装 iSCSI 启动工具后,编辑集群的 YAML,修改 kubelet 配置以挂载 iSCSI 二进制文件和配置,如下示例所示。
|
注意
|
services:
kubelet:
extra_binds:
- "/etc/iscsi:/etc/iscsi"
- "/sbin/iscsiadm:/sbin/iscsiadm"
如果您使用的是 RHEL 7.9,您需要挂载文件 /usr/lib64/libcrypto.so.10,如下面的示例所示。
services:
kubelet:
extra_binds:
- "/etc/iscsi:/etc/iscsi"
- "/sbin/iscsiadm:/sbin/iscsiadm"
- "/usr/lib64/libcrypto.so.10:/usr/lib/libcrypto.so.10"
如果您使用的是 RHEL 8.6,您需要挂载文件 /usr/lib64/libcrypto.so.1.1,如下面的示例所示。
services:
kubelet:
extra_binds:
- "/etc/iscsi:/etc/iscsi"
- "/sbin/iscsiadm:/sbin/iscsiadm"
- "/usr/lib64/libcrypto.so.1.1:/usr/lib/libcrypto.so.1.1"
|
要验证 iscsiadm 是否正常工作,您可以在任何节点上运行命令 |