如何用存储乐团来解释“无缝存储”

时间:2019-05-03 04:52:17

标签: kubernetes storage terminology

我在练习Introduction to Kubernetes时遇到了以下短语:

With Kubernetes and its plugins, we can automatically mount local, external, and storage solutions to the containers in a seamless manner, based on software-defined storage (SDS).

我以前看过它,但从未见过seamless manner的解释。

什么是seamless manner?在存储编排方面存在哪些方式?

1 个答案:

答案 0 :(得分:0)

noted here一样,所有这些资源都将以相同的方式声明/装入:

保留具有卷的数据

  

删除Pod或重新启动容器后,该容器文件系统中的所有数据也会被删除。

     

要在Pod之外保留数据,请使用“卷”。

     

有2种添加方式可将体积添加到Pod:

     
      
  • 规格卷
      该数组定义Pod清单中的容器可以访问的所有卷。请注意,并非所有容器都需要挂载Pod中定义的所有卷。
  •   
  • volumeMounts
      该数组定义了装入特定容器的卷以及应装入每个卷的路径。请注意,一个Pod中的两个不同的容器可以在不同的安装路径上安装相同的卷。
  •   
     

因此,首先在spec.volumes中,我们定义Pod中的容器可以使用哪些卷。
  并且,在volumeMounts中,我们实际上使用了它们

示例(来自同一篇文章)

apiVersion: v1
kind: Pod
metadata:
  name: kuard
spec:
  volumes:
    - name: "kuard-data"
      hostPath:
        path: "/var/lib/kuard"
  containers:
    - image: gcr.io/kuar-demo/kuard-amd64:1
      name: kuard
      volumeMounts:
        - mountPath: "/data"
          name: "kuard-data"
      ports:
        - containerPort: 8080
          name: http
          protocol: TCP
     

在这里,我们将kuard-data定义为卷,然后将其安装在kuard容器上。

     

有各种类型的卷:

     
      
  • emptyDir      
        
    • 这种体积的大小取决于Pod的使用寿命,但可以在两个容器之间共享。 (在上面的示例中,这构成了我们的Git sync和Web服务容器之间进行通信的基础)。这可以在pod重新启动后幸存下来
    •   
  •   
  • hostDir      
        
    • 这可以将工作节点上的任意位置安装到容器中
    •   
    • 在上面的示例中使用了
    •   
    • 例如,当广告连播想要直接访问实例的块存储时,可以使用此功能。但是,不应使用它来存储普通数据,因为并非所有主机都具有相同的基础目录结构。
    •   
  •   
  • 网络存储      
        
    • 如果您希望数据在Pod移动,重新启动等情况下仍保留在Pod中,请使用基于网络的存储中可用的多个选项之一
    •   
    • Kubernetes包括对NFS和iSCSI等标准协议的支持,以及对主要云提供商(公共和私有)的基于云提供商的存储API的支持
    •   
  •   

也就是说:

# Rest of pod definition above here
   volumes:
       - name: "kuard-data"
         nfs:
           server: my.nfs.server.local
           path: "/exports"

“无缝”部分是指“ Migrating to CSI drivers from in-tree plugins”中呈现的类似概念

  

启用CSI迁移功能后,会将针对现有树内插件的操作定向到相应的CSI插件(预计将被安装和配置)。
  该功能实现了必要的转换逻辑和填充,以无缝方式重新路由操作。
  因此,操作员在转换为取代树内插件的CSI驱动程序时,不必对现有存储类,PV或PVC(指树内插件)进行任何配置更改

     

在引入CSI和Flexvolume之前,所有的卷插件(如上面列出的卷类型)都是“ 树内”的,这意味着它们是与核心Kubernetes二进制文件一起构建,链接,编译和交付的并扩展核心Kubernetes API。
  这意味着向Kubernetes(卷插件)添加新的存储系统需要将代码检查到核心Kubernetes代码存储库中。

因此,“无缝方式”在初始卷声明之外几乎不需要配置。