如何将本地卷安装到kubeflow中部署的ksonnet组件

时间:2018-05-30 06:33:10

标签: kubernetes ksonnet kubeflow

我正在尝试使用kso​​nnet prototype将本地目录挂载到kubeflow中部署的组件中。

2 个答案:

答案 0 :(得分:0)

无法将本地目录安装到Kubernetes窗格中(在所有kubeflow和ksonnet之后只创建pod和其他Kubernetes资源)。

如果您希望文件在Kubernetes中可用,我可以考虑两个选项:

  1. 创建自定义泊坞窗映像,复制所需的文件夹,然后将其推送到注册表。 Kubeflow具有用于自定义要部署的图像的参数。

  2. 使用NFS。这样,您就可以在本地以及pod中安装NFS卷。为此,您应该修改ksonnet代码,因为在上一个稳定版本中它没有实现。

  3. 如果您提供有关您尝试部署的组件以及您正在使用的云提供商的更多信息,我可以为您提供更多帮助

答案 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 也可用作VolumesVolume(访问模式:ReadWriteOnce,ReadOnlyMany,ReadWriteMany)

glusterfs 卷允许将Glusterfs(开源网络文件系统)卷安装到您的Pod中。与删除Pod时删除的emptyDir不同,glusterfs卷的内容将被保留,并且仅卸载卷。这意味着可以使用数据预先填充glusterfs卷,并且可以在Pod之间“切换”该数据。 GlusterFS可以由多个编写器同时安装。

有关详细信息,请参阅Persistent Volume