将数据库添加到 Raspberry pi Kubernetes 集群



我对k8s相当陌生,所以如果我滥用k8s术语,请原谅我。我希望有人能为我指出正确的方向,并建议最好的方法。

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

是否要将外部驱动器挂载到主节点?

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

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

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

最简单的方法是在主节点上设置 NFS 服务器,通过 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

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

不。您将需要运行一些内容以使其他节点可以访问您的卷。有大量的文件系统用于此目的(Ceph,Lustre,甚至NFS等(。并且也开始有Kubernetes原生的(即Rook(。

最新更新