我有一个应用程序,该应用程序可以从目录中访问几个文件。我经历了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
这取决于您的用例,如果要在群集中共享的文件大于几兆字节,则您需要某种存储操作员。本地存储可能不是您要寻找的。
对于小文件(配置,密钥,init脚本(
如果文件很小,例如配置文件或ssh键或类似文件,则可以使用kubernetes configmap(或秘密(。这将允许您设置一些文件或目录,其中几个文件。查看文档
大型文件(共享数据,图形,二进制文件(
但是,如果您想共享几百个兆字节或千兆字节的文件,则需要一个带有群集的存储提供商。
如果您使用的是云提供商,例如Google,AWS或Azure,则应该简单地使用云提供商,则需要使用云提供商创建一个持久磁盘,并将所需数据复制到磁盘上。完成此操作后,只需遵循相关云提供商的指南:
- Google Cloud -GCE持久磁盘
-
aws-弹性块存储 -
Azure -Azure Disk
(@JustCompile指出AWS不支持多个仅阅读的安装座,我找不到Azure的类似信息(
如果但是,您正在运行自己的kubernetes群集" baremetal&quort",您必须设置NFS服务器,Ceph群集,并且可能在顶部使用诸如Rook之类的东西。