将数据库添加到raspberry pi kubernetes集群

问题描述 投票:1回答:2

我对k8s很新,所以请原谅我,如果我滥用k8s的术语。我希望有人能指出我正确的方向,并建议最好的方法来做到这一点。

我有一组k8s集群在一组覆盆子pis上运行。我想添加一个可供所有工作人员访问的数据库卷。我计划使用USB外置驱动器来存储数据库内容。

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

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

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

通过k8s Volumes页面阅读后,听起来我可能正在寻找一个“本地”类型的卷。如果我将本地卷挂载到主节点,我是否能够在工作节点中运行postgres容器并访问主节点上安装的卷?

database kubernetes raspberry-pi
2个回答
1
投票

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

不需要。您需要运行一些东西,以使其他节点可以访问您的卷。为此目的有大量的文件系统(Ceph,Lustre,甚至NFS等)并且也开始有Kubernetes本地的(即Rook。)


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安装在所有需要的pod上:

    volumeMounts:
    - name: nfs
      mountPath: "/usr/share/nginx/html"
  volumes:
  - name: nfs
    persistentVolumeClaim:
      claimName: nfs
© www.soinside.com 2019 - 2024. All rights reserved.