6.20. CIFS/SMB CSI Driver Operator
OpenShift Container Platform 能够置备持久性卷 (PV),它带有一个用于通用互联网文件系统(CIFS) dialect/Server Message Block (SMB)协议的 Container Storage Interface (CSI) 驱动程序。
CIFS/SMB CSI Driver Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
在使用 CSI Operator 和驱动程序时,建议先熟悉 持久性存储和配置 CSI 卷。
安装 CIFS/SMB CSI Driver Operator 后,OpenShift Container Platform 默认会在 openshift-cluster-csi-drivers
命名空间中为 Operator 和驱动程序安装对应的 pod。这允许 CIFS/SMB CSI 驱动程序创建挂载到 CIFS/SMB 共享的 CSI 置备的持久性卷 (PV)。
-
安装之后,CIFS/SMB CSI Driver Operator 不会默认创建存储类来创建持久性卷声明 (PVC)。但是,您可以手动为动态置备创建 CIFS/SMB
StorageClass
。CIFS/SMB CSI Driver Operator 支持动态卷置备,方法是允许按需创建存储卷。这消除了集群管理员预置备存储的需求。 - CIFS/SMB CSI 驱动程序 允许您创建并挂载 CIFS/SMB PV。
6.20.1. 关于 CSI 复制链接链接已复制到粘贴板!
在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。
CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。
6.20.2. 限制: 复制链接链接已复制到粘贴板!
以下限制适用于通用互联网文件系统(CIFS)/服务器消息块(SMB) Container Storage Interface (CSI) Driver Operator:
不支持 FIPS 模式:
启用联邦信息处理标准(FIPS)模式时,禁用 md4 和 md5 的使用,这会阻止用户使用 ntlm、ntlmv2 或 ntlmssp 身份验证。另外,无法使用签名,因为它使用了 md5。在启用了 FIPS 模式时,使用这些方法的 CIFS 挂载都会失败。
CSI 驱动程序不支持使用 HTTP 代理配置连接到集群 SMB 服务器外。
由于 CIFS/SMB 是 LAN 协议,但可以路由到子网,它不设计为通过 WAN 扩展,且不支持 HTTP 代理设置。
6.20.3. 安装 CIFS/SMB CSI Driver Operator 复制链接链接已复制到粘贴板!
默认情况下,在 OpenShift Container Platform 中不会安装 CIFS/SMB CSI Driver Operator (Red Hat Operator)。使用以下步骤在集群中安装和配置 CIFS/SMB CSI Driver Operator。
先决条件
- 访问 OpenShift Container Platform Web 控制台。
流程
从 web 控制台安装 CIFS/SMB CSI Driver Operator:
- 登录到 web 控制台。
安装 CIFS/SMB CSI Operator:
-
点 Operators
OperatorHub。 - 通过在过滤器框中输入 CIFS/SMB CSI 来找到 CIFS/SMB CSI。
- 点 CIFS/SMB CSI Driver Operator 按钮。
- 在 CIFS/SMB CSI Driver Operator 页中,点 Install。
在 Install Operator 页面中,确保:
- 选择 All namespaces on the cluster (default)。
- 安装的命名空间 被设置为 openshift-cluster-csi-drivers。
点 Install。
安装完成后,Web 控制台的 Installed Operators 部分列出了 CIFS/SMB CSI Operator。
-
点 Operators
6.20.4. 安装 CIFS/SMB CSI 驱动程序 复制链接链接已复制到粘贴板!
安装 CIFS/SMB Container Storage Interface (CSI) Driver Operator 后,安装 CIFS/SMB CSI 驱动程序。
先决条件
- 访问 OpenShift Container Platform Web 控制台。
- 已安装 CIFS/SMB CSI Driver Operator。
流程
-
点 Administration
CustomResourceDefinitions ClusterCSIDriver。 - 在 Instances 选项卡上,单击 Create ClusterCSIDriver。
使用以下 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
等待以下 Conditions 更改为 "True" 状态:
-
SambaDriverControllerServiceControllerAvailable
-
SambaDriverNodeServiceControllerAvailable
-
6.20.5. 动态置备 复制链接链接已复制到粘贴板!
您可以创建一个存储类来动态置备通用互联网文件系统(CIFS)偏移/服务器消息块(SMB)协议卷。置备卷会在存储类中定义的 source
下创建具有持久性卷 (PV) 名称的子目录。
先决条件
- 已安装 CIFS/SMB CSI Driver Operator 和驱动程序。
- 已登陆到正在运行的 OpenShift Container Platform 集群。
已安装 SMB 服务器并了解有关服务器的以下信息:
- 主机名
- 共享名称
- 用户名和密码
流程
设置动态置备:
使用以下命令,使用以下示例 YAML 文件创建 Secret 以访问 Samba 服务器:
oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Secret YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用以下示例 YAML 文件创建存储类:
oc create -f <sc_file_name>.yaml
$ oc create -f <sc_file_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 存储类 YAML 文件的名称。
存储类示例 YAML 文件
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 PVC:
运行以下命令,使用以下示例 YAML 文件创建 PVC:
oc create -f <pv_file_name>.yaml
$ oc create -f <pv_file_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PVC YAML 文件的名称。
PVC YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,确保 PVC 已创建并处于 "Bound" 状态:
oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 上一步中创建的 PVC 名称。
输出示例
Name: pvc-test Namespace: default StorageClass: samba Status: Bound ...
Name: pvc-test Namespace: default StorageClass: samba Status: Bound
1 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PVC 处于 Bound 状态。
6.20.6. 静态置备 复制链接链接已复制到粘贴板!
您可以使用静态置备来创建持久性卷 (PV) 和持久性卷声明 (PVC) 来使用现有的服务器消息块协议 (SMB) 共享:
先决条件
- 访问 OpenShift Container Platform Web 控制台。
- 已安装 CIFS/SMB CSI Driver Operator 和驱动程序。
已安装 SMB 服务器并了解有关服务器的以下信息:
- 主机名
- 共享名称
- 用户名和密码
流程
设置静态置备:
使用以下命令,使用以下示例 YAML 文件创建 Secret 以访问 Samba 服务器:
oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Secret YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用以下示例 YAML 文件创建 PV:
oc create -f <pv_file_name>.yaml
$ oc create -f <pv_file_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PV YAML 文件的名称。
PV YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 PVC:
运行以下命令,使用以下示例 YAML 文件创建 PVC:
oc create -f <pv_file_name>.yaml
$ oc create -f <pv_file_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PVC YAML 文件的名称。
PVC YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,确保 PVC 已创建并处于 "Bound" 状态:
oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 上一步中创建的 PVC 名称。
输出示例
Name: pvc-test Namespace: default StorageClass: Status: Bound ...
Name: pvc-test Namespace: default StorageClass: Status: Bound
1 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PVC 处于 Bound 状态。
运行以下命令,使用以下示例 YAML 文件在 Linux 上创建部署:
注意以下部署不是使用在前面的步骤中创建的 PV 和 PVC 所必需的。以下是如何使用它们的示例。
oc create -f <deployment_file_name>.yaml
$ oc create -f <deployment_file_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 部署 YAML 文件的名称。
部署 YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在容器中运行
df -h
命令检查设置:oc exec -it <pod_name> -- df -h
$ oc exec -it <pod_name> -- df -h
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- pod 的名称。
输出示例
Filesystem Size Used Avail Use% Mounted on ... /dev/sda1 97G 21G 77G 22% /etc/hosts //20.43.191.64/share 97G 21G 77G 22% /mnt/smb ...
Filesystem Size Used Avail Use% Mounted on ... /dev/sda1 97G 21G 77G 22% /etc/hosts //20.43.191.64/share 97G 21G 77G 22% /mnt/smb ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,有
/mnt/smb
目录被挂载为通用 Internet 文件系统 (CIFS) 文件系统。