From 0c15d99ef367d99d57cef72be86568467f6e37f4 Mon Sep 17 00:00:00 2001 From: Dominic Yin Date: Thu, 16 Apr 2020 16:00:24 +0800 Subject: [PATCH] Update content/zh/docs/concepts/configuration/secret.md --- .../zh/docs/concepts/configuration/secret.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/content/zh/docs/concepts/configuration/secret.md b/content/zh/docs/concepts/configuration/secret.md index e889c0ffcc..6720964baa 100644 --- a/content/zh/docs/concepts/configuration/secret.md +++ b/content/zh/docs/concepts/configuration/secret.md @@ -853,6 +853,54 @@ Secret updates. {{< /note >}} +{{< feature-state for_k8s_version="v1.18" state="alpha" >}} + + +Kubernetes 的 alpha 特性 _不可变的 Secret 和 ConfigMap_ 提供了一个设置各个 Secret 和 ConfigMap 为不可变的选项。 +对于大量使用 Secret 的集群(至少有成千上万各不相同的 Secret 供 Pod 挂载),禁止变更它们的数据有下列好处: + + +- 防止意外(或非预期的)更新导致应用程序中断 +- 通过将 Secret 标记为不可变来关闭 kube-apiserver 对其的监视,以显著地降低 kube-apiserver 的负载来提升集群性能。 + + +使用这个特性需要启用 `ImmutableEmphemeralVolumes` +[特性开关](/docs/reference/command-line-tools-reference/feature-gates/) 并将 Secret 或 ConfigMap 的 `immutable` 字段设置为 `true`. 例如: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + ... +data: + ... +immutable: true +``` + + +{{< note >}} +一旦一个 Secret 或 ConfigMap 被标记为不可变,撤销此操作或者更改 `data` 字段的内容都是 _不_ 可能的。 +只能删除并重新创建这个 Secret. 现有的 Pod 将维持对已删除 Secret 的挂载点 - 建议重新创建这些 pod. +{{< /note >}} +