持久存储:如何在Kubernetes中挂载目录?

时间:2018-03-16 02:55:53

标签: docker kubernetes docker-compose persistent-storage

据我所知,在Kubernetes中,您不希望将pod绑定到主机,但在某些情况下您可能需要。

在我的特定情况下,我有一个DB,它存在于安装到特定主机的blockstorage上。

我想用Kubernetes实现的功能相当于Docker中的bind-mount。我想在主机上指定我需要在pod中挂载的目录,类似于:

/mnt/BTC_2:/root/.bitcoin:rw

如何指定我希望持久存储位于节点/主机上的位置?这将是hostPath卷,如下所示:

    volumeMounts:
    - mountPath: /root/.bitcoin
      name: test-volume
  volumes:
  - name: test-volume
    hostPath:
      # directory location on host
      path: /mnt/BTC_2

1 个答案:

答案 0 :(得分:0)

  

我想在主机上指定我需要在pod中安装的目录

那应该是documented here

  

hostPath卷将文件或目录从主机节点的文件系统安装到您的pod中。这不是大多数Pod需要的东西,但它为某些应用提供了强大的逃生舱。

警告:

  

在底层主机上创建的文件或目录只能由root写入。您需要在特权容器中以root身份运行您的进程,或者修改主机上的文件权限以便能够写入hostPath卷

  volumes:
  - name: test-volume
    hostPath:
      # directory location on host
      path: /data
      # this field is optional
      type: Directory