首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向AKS中的默认存储类添加allowVolumeExpansion: true

向AKS中的默认存储类添加allowVolumeExpansion: true
EN

Stack Overflow用户
提问于 2020-02-18 18:16:36
回答 1查看 2.8K关注 0票数 0

文档说:

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

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

代码语言:javascript
复制
{
  "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"
}

其结果是:

代码语言:javascript
复制
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" }|...

另外:

代码语言:javascript
复制
{
  "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"
}

其结果是:

代码语言:javascript
复制
StorageClass.storage.k8s.io "default" is invalid: parameters: Forbidden: updates to parameters are forbidden.

还在kubectl edit sc中尝试了以下所有内容

代码语言:javascript
复制
$ 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>'

做这件事的正确方法是什么?如果文档中有一个例子的话会很有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-19 06:19:10

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

我认为你设定了它的价值是错误的。在我的测试中,我在YAML文件中添加了如下属性:

代码语言:javascript
复制
allowVolumeExpansion: true

而非

代码语言:javascript
复制
allowVolumeExpansion: "true"

所以我认为你需要把这句话改为:

代码语言:javascript
复制
"allowVolumeExpansion": true
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60287163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档