我有一个应用程序可以从目录中访问几个文件。我经历了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
答案 0 :(得分:0)
这取决于您的使用案例,如果要在群集中共享的文件大小超过几兆字节,则需要某种存储运算符。本地存储可能不是您想要的。
如果文件很小,例如配置文件或ssh密钥或类似文件,则可以使用kubernetes configmap(或机密)。这将允许您使用几个文件设置一些文件或目录。 Checkout the documentation
但是,如果您要共享几百兆字节或千兆字节的文件,则需要一个存储提供程序与您的群集。
如果您使用的是云提供商,例如Google,AWS或Azure,这应该很简单,您需要与云提供商一起创建永久磁盘并将所需数据复制到磁盘上。完成后,只需按照相关云提供商的指南进行操作:
(@ justcompile指出AWS不支持对实例的多个只读挂载,我无法找到Azure的类似信息)
但是,如果您在“baremetal”上运行自己的kubernetes集群,则必须设置NFS服务器Ceph cluster,并且可能在顶部使用rook之类的内容。< / p>