【问题标题】:Expand PV from Kubernetes no-provision storageclass从 Kubernetes 无配置存储类扩展 PV
【发布时间】:2023-03-19 01:35:01
【问题描述】:

我正在尝试为 Kafka (zookeeper statefulset) 部署 Confluent,部分文档提到我应该能够调整它的大小,这意味着我的存储类应该设置 allowVolumeExpansion: true

虽然listed supported on-prem storage solutions 仅适用于 Ceph RBD 和 Portworx,但如果不使用动态配置,则给出的示例是配置器 no-provisioner

我想知道使用带有no-provisioner 的存储类配置器是否实际上不允许我调整持久存储卷的大小。

供参考:

我的 SC 清单如下:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: my-storage-class
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
reclaimPolicy: Retain

我能够创建它。
PV清单如下:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: data1
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: my-storage-class
  local:
     path: /mnt/app/data1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1

然后,我按照以下步骤操作:

  • 向我的虚拟机添加新磁盘
  • 用新磁盘扩展 LVM vg
  • 用可用空间扩展 LVM lv
  • 更改 PV/PVC 存储容量和请求
  • Rollout 重启 sts

一旦我执行到 Pod 并检查 FS 大小,它仍然显示 10Gb。

【问题讨论】:

  • 你用什么命令来检查文件系统的大小?
  • @gohm'c,我正在使用 df -h

标签: kubernetes persistent-volumes


【解决方案1】:

问题出在 Linux 方面,我忘了运行 resize2fs。

【讨论】:

    【解决方案2】:

    没错,在使用no-provisioner 类型的StorageClass 时,不能设置allowVolumeExpansion: true(可以但不起作用)。列出了支持的类型here

    这种类型的存储也不支持扩展持久卷声明。

    您可以尝试的解决方法是:

    1. 将当前 StatefulSet 的大小调整为 0 个副本。
    2. 删除现有的 PV/PVC。
    3. 更新 PV/PVC 清单中所需的容量。
    4. 应用 PV/PVC
    5. 将 StatefulSet 的大小调整为所需的 Pod 数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      相关资源
      最近更新 更多