我正在尝试使用ksonnet prototype将本地目录挂载到kubeflow中部署的组件中。
答案 0 :(得分:0)
无法将本地目录安装到Kubernetes窗格中(在所有kubeflow和ksonnet之后只创建pod和其他Kubernetes资源)。
如果您希望文件在Kubernetes中可用,我可以考虑两个选项:
创建自定义泊坞窗映像,复制所需的文件夹,然后将其推送到注册表。 Kubeflow具有用于自定义要部署的图像的参数。
使用NFS。这样,您就可以在本地以及pod中安装NFS卷。为此,您应该修改ksonnet代码,因为在上一个稳定版本中它没有实现。
如果您提供有关您尝试部署的组件以及您正在使用的云提供商的更多信息,我可以为您提供更多帮助
答案 1 :(得分:0)
如果本地目录是指节点上的本地目录,则可以使用 HostPath 或 Local {{在pod中的节点文件系统上安装目录3}}功能。
hostPath 卷将文件或目录从主机节点的文件系统安装到Pod中。这不是大多数Pod需要的东西,但它为某些应用提供了强大的逃生舱。
本地卷表示已安装的本地存储设备,例如磁盘,分区或目录。
本地卷只能用作静态创建的PersistentVolume。尚不支持动态配置。
与 hostPath 卷相比,可以以持久且可移植的方式使用本地卷,而无需手动将Pod调度到节点,因为系统通过查看节点关联性来了解卷的节点约束PersistentVolume。
例如:
# HostPaht Volume example
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /test-pd
name: test-volume
volumes:
- name: test-volume
hostPath:
# directory location on host
path: /data
# this field is optional
type: Directory
# local volume example (beta in v1.10)
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
GlusterFS 也可用作Volumes或Volume(访问模式:ReadWriteOnce,ReadOnlyMany,ReadWriteMany)
glusterfs 卷允许将Glusterfs(开源网络文件系统)卷安装到您的Pod中。与删除Pod时删除的emptyDir不同,glusterfs卷的内容将被保留,并且仅卸载卷。这意味着可以使用数据预先填充glusterfs卷,并且可以在Pod之间“切换”该数据。 GlusterFS可以由多个编写器同时安装。
有关详细信息,请参阅Persistent Volume。