Merge pull request #23161 from tengqm/zh-resync-def-storageclass

[zh] Resync default storage class
This commit is contained in:
Kubernetes Prow Robot 2020-08-17 18:09:32 -07:00 committed by GitHub
commit 209b83d496
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 111 additions and 62 deletions

View File

@ -1,104 +1,153 @@
---
title: 改变默认 StorageClass
content_type: task
---
<!-- overview -->
<!--
This page shows how to change the default Storage Class that is used to
provision volumes for PersistentVolumeClaims that have no special requirements.
-->
本文展示了如何改变默认的 Storage Class它用于为没有特殊需求的 PersistentVolumeClaims 配置 volumes。
## {{% heading "prerequisites" %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
<!-- steps -->
<!--
## Why change the default storage class?
## 为什么要改变默认 storage class
取决于安装模式,您的 Kubernetes 集群可能和一个被标记为默认的已有 StorageClass 一起部署。这个默认的 StorageClass 以后将被用于动态的为没有特定 storage class 需求的 PersistentVolumeClaims 配置存储。更多细节请查看 [PersistentVolumeClaim 文档](/docs/user-guide/persistent-volumes/#class-1)。
预先安装的默认 StorageClass 可能不能很好的适应您期望的工作负载;例如,它配置的存储可能太过昂贵。如果是这样的话,您可以改变默认 StorageClass或者完全禁用它以防止动态配置存储。
简单的删除默认 StorageClass 可能行不通,因为它可能会被您集群中的扩展管理器自动重建。请查阅您的安装文档中关于扩展管理器的细节,以及如何禁用单个扩展。
Depending on the installation method, your Kubernetes cluster may be deployed with
an existing StorageClass that is marked as default. This default StorageClass
is then used to dynamically provision storage for PersistentVolumeClaims
that do not require any specific storage class. See
[PersistentVolumeClaim documentation](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)
for details.
-->
## 为什么要改变默认存储类?
取决于安装模式,你的 Kubernetes 集群可能和一个被标记为默认的已有 StorageClass 一起部署。
这个默认的 StorageClass 以后将被用于动态的为没有特定存储类需求的 PersistentVolumeClaims
配置存储。更多细节请查看 [PersistentVolumeClaim 文档](/zh/docs/user-guide/persistent-volumes/#class-1)。
<!--
The pre-installed default StorageClass may not fit well with your expected workload;
for example, it might provision storage that is too expensive. If this is the case,
you can either change the default StorageClass or disable it completely to avoid
dynamic provisioning of storage.
-->
预先安装的默认 StorageClass 可能不能很好的适应你期望的工作负载;例如,它配置的存储可能太过昂贵。
如果是这样的话,你可以改变默认 StorageClass或者完全禁用它以防止动态配置存储。
<!--
Simply deleting the default StorageClass may not work, as it may be re-created
automatically by the addon manager running in your cluster. Please consult the docs for your installation
for details about addon manager and how to disable individual addons.
-->
简单的删除默认 StorageClass 可能行不通,因为它可能会被你集群中的扩展管理器自动重建。
请查阅你的安装文档中关于扩展管理器的细节,以及如何禁用单个扩展。
<!--
## Changing the default StorageClass
-->
## 改变默认 StorageClass
<!--
1. List the StorageClasses in your cluster:
-->
1. 列出你的集群中的 StorageClasses
1. 列出您集群中的 StorageClasses
```shell
kubectl get storageclass
```
```bash
kubectl get storageclass
```
输出类似这样:
输出类似这样:
```bash
NAME PROVISIONER AGE
standard (default) kubernetes.io/gce-pd 1d
gold kubernetes.io/gce-pd 1d
```
默认 StorageClass 以 `(default)` 标记。
```bash
NAME PROVISIONER AGE
standard (default) kubernetes.io/gce-pd 1d
gold kubernetes.io/gce-pd 1d
```
默认 StorageClass 以 `(default)` 标记。
<!--
1. Mark the default StorageClass as non-default:
-->
2. 标记默认 StorageClass 非默认:
<!--
The default StorageClass has an annotation
`storageclass.kubernetes.io/is-default-class` set to `true`. Any other value
or absence of the annotation is interpreted as `false`.
To mark a StorageClass as non-default, you need to change its value to `false`:
-->
默认 StorageClass 的注解 `storageclass.kubernetes.io/is-default-class` 设置为 `true`
注解的其它任意值或者缺省值将被解释为 `false`
默认 StorageClass 的注解 `storageclass.kubernetes.io/is-default-class` 设置为 `true`。注解的其它任意值或者缺省值将被解释为 `false`
要标记一个 StorageClass 为非默认的,您需要改变它的值为 `false`
要标记一个 StorageClass 为非默认的,你需要改变它的值为 `false`
```bash
kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
```
这里的 `<your-class-name>` 是您选择的 StorageClass 的名字。
```bash
kubectl patch storageclass standard -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
```
<!--
where `standard` is the name of your chosen StorageClass.
-->
这里的 `standard` 是你选择的 StorageClass 的名字。
<!--
1. Mark a StorageClass as default:
-->
3. 标记一个 StorageClass 为默认的:
<!--
Similarly to the previous step, you need to add/set the annotation
`storageclass.kubernetes.io/is-default-class=true`.
-->
和前面的步骤类似,你需要添加/设置注解 `storageclass.kubernetes.io/is-default-class=true`
和前面的步骤类似,您需要添加/设置注解 `storageclass.kubernetes.io/is-default-class=true`
```bash
kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
```
```bash
kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
```
<!--
Please note that at most one StorageClass can be marked as default. If two
or more of them are marked as default, a `PersistentVolumeClaim` without
`storageClassName` explicitly specified cannot be created.
-->
请注意,最多只能有一个 StorageClass 能够被标记为默认。
如果它们中有两个或多个被标记为默认Kubernetes 将忽略这个注解,
也就是它将表现为没有默认 StorageClass。
请注意,最多只能有一个 StorageClass 能够被标记为默认。如果它们中有两个或多个被标记为默认Kubernetes 将忽略这个注解,也就是它将表现为没有默认 StorageClass。
<!--
1. Verify that your chosen StorageClass is default:
-->
4. 验证你选用的 StorageClass 为默认的:
```bash
kubectl get storageclass
```
4. 验证您选用的 StorageClass 为默认的:
```bash
kubectl get storageclass
```
输出类似这样:
```bash
NAME PROVISIONER AGE
standard kubernetes.io/gce-pd 1d
gold (default) kubernetes.io/gce-pd 1d
```
<!--
The output is similar to this:
-->
输出类似这样:
```bash
NAME PROVISIONER AGE
standard kubernetes.io/gce-pd 1d
gold (default) kubernetes.io/gce-pd 1d
```
## {{% heading "whatsnext" %}}
* 了解更多关于 [StorageClasses](/docs/concepts/storage/persistent-volumes/)。
<!--
* Learn more about [PersistentVolumes](/docs/concepts/storage/persistent-volumes/).
-->
* 进一步了解 [StorageClasses](/docs/concepts/storage/persistent-volumes/)