zoukankan      html  css  js  c++  java
  • 基于华为fusionstorage的块存储CSI

    承接上文,块存储的CSI要比对象存储复杂一些,但总的处理逻辑还是一致的。下面以华为fusionstorage的CSI为例进行介绍,该插件支持了多个后端存储,如fusionstorage和oceanstor。下面是CSI插件与后端存储(fusionstorage)交互用到的配置文件。其中pools为事先创建好的存储池,parameters为所有k8s的node节点的hostname:ip对,用于执行attach块存储操作。

      csi.json: |
        {
            "backends": [
                {
                    "storage": "fusionstorage-san",
                    "name": "***",
                    "url": "https://*.*.*.*:28443",
                    "user": "***",
                    "password": "***",
                    "pools": ["***"], 
                    "parameters": {"SCSI": {"***": "*.*.*.*"}}
                }
            ]
        }
    

    如上图所示,Node上的CSI容器挂载了Node的/dev/etc/var/lib/kubelet目录。整体挂载流程为:在后端存储创建一个卷(如果不存在),并将其attach到node节点的/dev目录下(具体的attach动作由iSCSI客户端,NFS,FC等方式完成);由于容器挂载了/dev目录,在容器中直接格式化该块存储并挂载到/var/lib/kubelet中的pod目录即可。/etc目录只用于在csi容器中获取node节点的hostname(PS:在容器中挂载node节点的/dev和/etc目录是比较危险的,如果容器损坏了这些目录,可能导致node节点的系统错误)。

    创建并挂载卷的调用过程如下(下载):

    参考:

  • 相关阅读:
    python 项目实例
    flash教程
    flask request
    systemd-unit
    kubernets HA集群手动部署
    zookeeper(1)-简单介绍
    apache与nginx原理
    技术文章整理
    CMS垃圾回收器
    Zookeeper
  • 原文地址:https://www.cnblogs.com/charlieroro/p/12652746.html
Copyright © 2011-2022 走看看