在kubernetes中安装pod的目录

时间:2018-04-25 07:33:53

标签: kubernetes

我有一个应用程序可以从目录中访问几个文件。我经历了kubernetes卷和持续量和批量声明。这是一个多节点kubernetes集群。我们有没有可以使用的直接解决方案,不需要任何外部存储,如nfs服务器等?

我有一个VM服务器,我执行我的kubernetes命令。我是kubernetes的新手所以请帮助我。

我也在看当地的持续音量。是否有一个链接,我可以通过一个例子。我正在寻找当地https://kubernetes.io/docs/concepts/storage/volumes/#local

但是这个例子没有解释下面nodeAffinity下的内容:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-pv
spec:
  capacity:
    storage: 100Gi
  # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /mnt/disks/ssd1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - example-node

1 个答案:

答案 0 :(得分:0)

这取决于您的使用案例,如果要在群集中共享的文件大小超过几兆字节,则需要某种存储运算符。本地存储可能不是您想要的。

对于小文件(配置,密钥,init脚本)

如果文件很小,例如配置文件或ssh密钥或类似文件,则可以使用kubernetes configmap(或机密)。这将允许您使用几个文件设置一些文件或目录。 Checkout the documentation

对于大型文件(共享数据,图形,二进制文件)

但是,如果您要共享几百兆字节或千兆字节的文件,则需要一个存储提供程序与您的群集。

如果您使用的是云提供商,例如Google,AWS或Azure,这应该很简单,您需要与云提供商一起创建永久磁盘并将所需数据复制到磁盘上。完成后,只需按照相关云提供商的指南进行操作:

(@ justcompile指出AWS不支持对实例的多个只读挂载,我无法找到Azure的类似信息)

但是,如果您在“baremetal”上运行自己的kubernetes集群,则必须设置NFS服务器Ceph cluster,并且可能在顶部使用rook之类的内容。< / p>