将数据库添加到树莓派kubernetes集群

时间:2019-04-21 18:37:45

标签: database kubernetes raspberry-pi

我对k8s还是很陌生,所以如果我滥用k8s术语,请原谅我。我希望有人可以指出正确的方向,并提出最佳方法。

我有一个运行在一组树莓pis上的k8s集群。我想添加一个所有工作人员均可访问的数据库卷。我打算使用USB外部驱动器来存储数据库内容。

是否要将外部驱动器安装到主节点上?

如何将外部驱动器声明为k8s资源?

配置完成后,其他k8s节点中的Pod如何访问此外部驱动器?

通读k8s的Volumes页面后,听起来好像我正在寻找“本地”类型的Volume。如果将本地卷安装到主节点上,是否可以在工作节点上运行postgres容器并访问安装在主节点上的卷?

2 个答案:

答案 0 :(得分:1)

  

如果我将本地卷安装到主节点上,是否可以在工作节点上运行postgres容器并访问安装在主节点上的卷?

不。您将需要运行一些操作以使其他节点可以访问您的卷。有大量用于此目的的文件系统(Ceph,Lustre甚至NFS等),而且也开始有Kubernetes本机文件系统(例如Rook)

答案 1 :(得分:1)

最简单的方法是在主节点上set up NFS server,通过NFS导出USB驱动器,然后将其作为持久卷安装在pod中。为此,您需要首先创建PersistentVolume:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: master-node-ip
    path: /mnt/nfsserver

然后创建相同大小的PersistentVolumeClaim:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 5Gi

之后,您可以将该PVC安装在所有需要的吊舱上:

    volumeMounts:
    - name: nfs
      mountPath: "/usr/share/nginx/html"
  volumes:
  - name: nfs
    persistentVolumeClaim:
      claimName: nfs