本文展示了如何改变默认的 Storage Class,它用于为没有特殊需求的 PersistentVolumeClaims 配置 volumes。
你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
要检查版本,请输入 kubectl version
。
取决于安装模式,你的 Kubernetes 集群可能和一个被标记为默认的已有 StorageClass 一起部署。 这个默认的 StorageClass 以后将被用于动态的为没有特定存储类需求的 PersistentVolumeClaims 配置存储。
预先安装的默认 StorageClass 可能不能很好的适应你期望的工作负载;例如,它配置的存储可能太过昂贵。 如果是这样的话,你可以改变默认 StorageClass,或者完全禁用它以防止动态配置存储。
删除默认 StorageClass 可能行不通,因为它可能会被你集群中的扩展管理器自动重建。 请查阅你的安装文档中关于扩展管理器的细节,以及如何禁用单个扩展。
kubectl get storageclass
输出类似这样:
NAME PROVISIONER AGE
standard (default) kubernetes.io/gce-pd 1d
gold kubernetes.io/gce-pd 1d
默认 StorageClass 以 (default)
标记。
默认 StorageClass 的注解 storageclass.kubernetes.io/is-default-class
设置为 true
。 注解的其它任意值或者缺省值将被解释为 false
。
要标记一个 StorageClass 为非默认的,你需要改变它的值为 false
:
kubectl patch storageclass standard -p "{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}"
这里的 standard
是你选择的 StorageClass 的名字。
和前面的步骤类似,你需要添加/设置注解 storageclass.kubernetes.io/is-default-class=true
。
kubectl patch storageclass <your-class-name> -p "{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}"
请注意,最多只能有一个 StorageClass 能够被标记为默认。 如果它们中有两个或多个被标记为默认,Kubernetes 将忽略这个注解, 也就是它将表现为没有默认 StorageClass。
kubectl get storageclass
输出类似这样:
NAME PROVISIONER AGE
standard kubernetes.io/gce-pd 1d
gold (default) kubernetes.io/gce-pd 1d
创建WindowsHostProcessPodFEATURESTATE:Kubernetesv1.23[beta]WindowsHostProcess容器让你能够在Windows主机上运行容器化负载。...
使用指令式命令管理 Kubernetes 对象使用构建在kubectl命令行工具中的指令式命令可以直接快速创建、更新和删除 Kubernetes 对象...
为容器设置启动时要执行的命令和参数本页将展示如何为Pod中容器设置启动时要执行的命令及其参数。在开始之前你必须拥有一个Kuber...
扩缩StatefulSet本文介绍如何扩缩StatefulSet。StatefulSet的扩缩指的是增加或者减少副本个数。在开始之前StatefulSets仅适用于K...
使用端口转发来访问集群中的应用本文展示如何使用kubectlport-forward连接到在Kubernetes集群中运行的MongoDB服务。这种类型...
手动轮换CA证书本页展示如何手动轮换证书机构(CA)证书。在开始之前你必须拥有一个Kubernetes的集群,同时你的Kubernetes集群必...
您可以使用任何文本编辑器与命令行工具来构建Flutter应用程序。 不过,我们建议使用我们的编辑器插件之一,以获得更好的体验。通...
云函数的运行环境是 Node.js,我们可以在云函数中使用Nodejs内置模块以及使用 npm 安装第三方依赖来帮助我们更快的开发。借助于...
本指南描述了在安卓模拟器上运行 React Native 安卓应用程序所需要的开发环境的基本安装步骤。在这里我们不讨论诸如 IDE 的开发...
jQuery Mobile 简介jQuery Mobile 是一个用于创建移动端web应用的的前端框架。 学习本教程前你需要先了解 在开始学习 jQuery Mob...