【问题标题】:Adding allowVolumeExpansion: true to default storage classes in AKS将 allowVolumeExpansion: true 添加到 AKS 中的默认存储类
【发布时间】:2023-03-13 23:35:01
【问题描述】:

documentation 表示以下内容:

这些默认存储类不允许您在创建后更新卷大小。要启用此功能,请将allowVolumeExpansion: true 行添加到默认存储类之一,或创建您自己的自定义存储类。您可以使用kubectl edit sc 命令编辑现有存储类。有关存储类和创建自己的存储类的详细信息,请参阅 AKS 中应用程序的存储选项。

我尝试在 Kubernetes 仪表板中编辑 default YAML(看起来像 JSON,而不是 YAML):

{
  "kind": "StorageClass",
  "apiVersion": "storage.k8s.io/v1",
  "metadata": {
    "name": "default",
    "selfLink": "/apis/storage.k8s.io/v1/storageclasses/default",
    "uid": "<uid>",
    "resourceVersion": "3891497",
    "creationTimestamp": "2020-02-14T01:34:03Z",
    "labels": {
      "kubernetes.io/cluster-service": "true"
    },
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"storage.k8s.io/v1beta1\",\"kind\":\"StorageClass\",\"metadata\":{\"annotations\":{\"storageclass.beta.kubernetes.io/is-default-class\":\"true\"},\"labels\":{\"kubernetes.io/cluster-service\":\"true\"},\"name\":\"default\"},\"parameters\":{\"cachingmode\":\"ReadOnly\",\"kind\":\"Managed\",\"storageaccounttype\":\"Standard_LRS\"},\"provisioner\":\"kubernetes.io/azure-disk\"}\n",
      "storageclass.beta.kubernetes.io/is-default-class": "true"
    }
  },
  "provisioner": "kubernetes.io/azure-disk",
  "parameters": {
    "cachingmode": "ReadOnly",
    "kind": "Managed",
    "storageaccounttype": "Standard_LRS"
  },
  "reclaimPolicy": "Delete",
  "volumeBindingMode": "Immediate",
  "allowVolumeExpansion": "true"
}

结果:

StorageClass in version "v1" cannot be handled as a StorageClass: v1.StorageClass.AllowVolumeExpansion: ReadBool: expect t or f, but found ", error found in #10 byte of ...|ansion": "true" }|..., bigger context ...|ingMode": "Immediate", "allowVolumeExpansion": "true" }|...

还有:

{
  "kind": "StorageClass",
  "apiVersion": "storage.k8s.io/v1",
  "metadata": {
    "name": "default",
    "selfLink": "/apis/storage.k8s.io/v1/storageclasses/default",
    "uid": "<uid>",
    "resourceVersion": "3891497",
    "creationTimestamp": "2020-02-14T01:34:03Z",
    "labels": {
      "kubernetes.io/cluster-service": "true"
    },
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"storage.k8s.io/v1beta1\",\"kind\":\"StorageClass\",\"metadata\":{\"annotations\":{\"storageclass.beta.kubernetes.io/is-default-class\":\"true\"},\"labels\":{\"kubernetes.io/cluster-service\":\"true\"},\"name\":\"default\"},\"parameters\":{\"cachingmode\":\"ReadOnly\",\"kind\":\"Managed\",\"storageaccounttype\":\"Standard_LRS\"},\"provisioner\":\"kubernetes.io/azure-disk\"}\n",
      "storageclass.beta.kubernetes.io/is-default-class": "true"
    }
  },
  "provisioner": "kubernetes.io/azure-disk",
  "parameters": {
    "cachingmode": "ReadOnly",
    "kind": "Managed",
    "storageaccounttype": "Standard_LRS",
    "allowVolumeExpansion": "true"
  },
  "reclaimPolicy": "Delete",
  "volumeBindingMode": "Immediate"
}

结果:

StorageClass.storage.k8s.io "default" is invalid: parameters: Forbidden: updates to parameters are forbidden.

还使用kubectl edit sc 尝试了以下所有方法:

$ kubectl edit sc default allowVolumeExpansion: true          
Error from server (NotFound): storageclasses.storage.k8s.io "allowVolumeExpansion:" not found
Error from server (NotFound): storageclasses.storage.k8s.io "true" not found

$ kubectl edit sc default "allowVolumeExpansion: true"
Error from server (NotFound): storageclasses.storage.k8s.io "allowVolumeExpansion: true" not found

$ kubectl edit sc/default allowVolumeExpansion: true
error: there is no need to specify a resource type as a separate argument when passing arguments in resource/name form (e.g. 'kubectl get resource/<resource_name>' instead of 'kubectl get resource resource/<resource_name>'

$ kubectl edit sc/default "allowVolumeExpansion: true"
error: there is no need to specify a resource type as a separate argument when passing arguments in resource/name form (e.g. 'kubectl get resource/<resource_name>' instead of 'kubectl get resource resource/<resource_name>'

实现此目的的正确方法是什么?如果文档中有示例会很有帮助。

【问题讨论】:

  • 还有问题吗?它解决了你的问题吗?如果是,请接受。如果没有,请给出答复。
  • 这个问题有什么更新吗?我什么都没看到,问题解决了还是没有。

标签: azure azure-storage azure-aks


【解决方案1】:

我没有遇到您遇到的问题。 allowVolumeExpansion 是存储类的属性,而不是参数,它需要布尔值。你可以在StorageClass看到它。

我认为您错误地设置了它的值。在我的测试中,我在 YAML 文件中添加了这样的属性:

allowVolumeExpansion: true

不是

allowVolumeExpansion: "true"

所以我认为您需要将行更改为:

"allowVolumeExpansion": true

【讨论】:

  • 很奇怪。很确定我之前通过仪表板尝试过,但遇到了错误。这次成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2021-05-20
  • 2021-10-24
相关资源
最近更新 更多