首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除storageclass AKS上的“默认”注释不会持久

删除storageclass AKS上的“默认”注释不会持久
EN

Stack Overflow用户
提问于 2020-05-26 15:07:49
回答 2查看 758关注 0票数 1

我试图在Azure Kubernetes服务中设置一个新的默认存储类。(1.15.10)。我试过几件事,但这种行为对我来说很奇怪。

我已经创建了一个新的存储类custom,将其设置为默认存储类,然后从default存储库中删除is- default类。

默认存储-class.yml:

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: custom
parameters:
  cachingmode: ReadOnly
  kind: Managed
  storageaccounttype: Standard_LRS
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate

以及命令:

代码语言:javascript
复制
# create new storage class "custom"
kubectl apply -f ./default-storage-class.yml
# set storageclass as new default
kubectl patch storageclass custom -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
# remove default storage class from default
kubectl patch storageclass default -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"false"}}}'

一开始,它似乎运转良好:

代码语言:javascript
复制
$kubectl get sc
custom (default)   kubernetes.io/azure-disk   6d23h
default            kubernetes.io/azure-disk   14m

但在一分钟内,没有改变任何东西:

代码语言:javascript
复制
$kubectl get sc
custom (default)   kubernetes.io/azure-disk   6d23h
default (default)  kubernetes.io/azure-disk   16m

我可能漏掉了什么,但不知道是什么。

如果我在一分钟内做了一个kubectl describe sc default,它不会变回来:

代码语言:javascript
复制
storageclass.beta.kubernetes.io/is-default-class=false,storageclass.kubernetes.io/is-default-class=false

过了一会儿:

代码语言:javascript
复制
storageclass.beta.kubernetes.io/is-default-class=true,storageclass.kubernetes.io/is-default-class=false
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-25 03:54:08

经过大量的测试后,发现使默认为非默认的唯一方法是不仅更新storageclass.beta.kubernetes.io/is-default-class注释,还更新kubectl.kubernetes.io/last-applied-configuration注释。

代码语言:javascript
复制
kubectl patch storageclass default -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"false", "kubectl.kubernetes.io/last-applied-configuration": "{\"allowVolumeExpansion\":true,\"apiVersion\":\"storage.k8s.io/v1beta1\",\"kind\":\"StorageClass\",\"metadata\":{\"annotations\":{\"storageclass.beta.kubernetes.io/is-default-class\":\"false\"},\"labels\":{\"kubernetes.io/cluster-service\":\"true\"},\"name\":\"default\"},\"parameters\":{\"cachingmode\":\"ReadOnly\",\"kind\":\"Managed\",\"storageaccounttype\":\"StandardSSD_LRS\"},\"provisioner\":\"kubernetes.io/azure-disk\"}"}}}'

应用此方法后,默认StorageClass将保持非默认状态。

票数 3
EN

Stack Overflow用户

发布于 2020-05-26 15:56:09

遵循以下步骤

YAML中的

  1. kubectl get sc default > default-sc.yaml
  2. Change存储帐户类型

只需确保步骤3和步骤4之间没有太大的时间间隔,否则在执行步骤4之前,将再次创建默认存储类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62025294

复制
相关文章

相似问题

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