如何将SQLite数据库放置在NFS持久卷之外

时间:2019-05-02 05:18:35

标签: kubernetes sqlite nfs persistent-volumes

我有一个在裸机上运行的多节点(2)Kubernetes集群。我了解1. hostPath对生产不利,并且2.多节点设置不支持hostPath持久卷。有没有一种方法可以安全地运行由SQLite数据库支持的应用程序?通过NFS,数据库锁定了很多东西,并确实损害了应用程序的性能。

我可能会将每个应用程序的SQLite数据库放在hostPath卷上,然后一切将再次平稳运行。但是我想知道是否有一些解决方法可以做到这一点,即使我必须将应用程序限制在特定的节点上。

1 个答案:

答案 0 :(得分:1)

似乎您应该使用本地永久卷GA

根据文档:

  

本地卷代表已安装的本地存储设备,例如磁盘,分区或目录。

     

与hostPath卷相比,本地卷可以持久且可移植的方式使用,而无需手动将Pod调度到节点,因为系统通过查看PersistentVolume上的节点亲和力来了解卷的节点约束。

但是:

  

在GA,本地永久卷不支持动态卷配置。

您可以找到herehere的更多信息。

作为一个例子:

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
  

借助本地持久卷,Kubernetes调度程序可确保始终将使用本地持久卷的Pod调度到同一节点