From f51e409293a60be0bce90b9d00548796d43f083d Mon Sep 17 00:00:00 2001 From: Hu Shuai Date: Wed, 10 Aug 2022 10:24:58 +0800 Subject: [PATCH] [zh-cn] resync: volumes.md & download.md Signed-off-by: Hu Shuai --- .../zh-cn/docs/concepts/storage/volumes.md | 422 +++++++++--------- content/zh-cn/releases/download.md | 6 +- 2 files changed, 219 insertions(+), 209 deletions(-) diff --git a/content/zh-cn/docs/concepts/storage/volumes.md b/content/zh-cn/docs/concepts/storage/volumes.md index cd5a6da040..1a158586e3 100644 --- a/content/zh-cn/docs/concepts/storage/volumes.md +++ b/content/zh-cn/docs/concepts/storage/volumes.md @@ -18,7 +18,7 @@ weight: 10 @@ -139,7 +139,7 @@ Pod 时会被保留,卷只是被卸载掉了。 这意味着 EBS 卷可以预先填充数据,并且该数据可以在 Pod 之间共享。 {{< note >}} 你在使用 EBS 卷之前必须使用 `aws ec2 create-volume` 命令或者 AWS API 创建该卷。 @@ -148,9 +148,9 @@ You must create an EBS volume using `aws ec2 create-volume` or the AWS API befor 使用 `awsElasticBlockStore` 卷时有一些限制: @@ -159,11 +159,11 @@ There are some restrictions when using an `awsElasticBlockStore` volume: * EBS 卷只支持被挂载到单个 EC2 实例上。 -#### 创建 EBS 卷 +#### 创建 AWS EBS 卷 在将 EBS 卷用到 Pod 上之前,你首先要创建它。 @@ -172,13 +172,13 @@ aws ec2 create-volume --availability-zone=eu-west-1a --size=10 --volume-type=gp2 ``` 确保该区域与你的集群所在的区域相匹配。还要检查卷的大小和 EBS 卷类型都适合你的用途。 #### AWS EBS 配置示例 @@ -198,12 +198,12 @@ spec: - name: test-volume # 此 AWS EBS 卷必须已经存在 awsElasticBlockStore: - volumeID: "" + volumeID: "" fsType: ext4 ``` 如果 EBS 卷是分区的,你可以提供可选的字段 `partition: ""` 来指定要挂载到哪个分区上。 @@ -261,7 +261,7 @@ For more details, see the [`azureDisk` volume plugin](https://github.com/kuberne 若需了解更多详情,请参考 [`azureDisk` 卷插件](https://github.com/kubernetes/examples/tree/master/staging/volumes/azure_disk/README.md)。 #### azureDisk 的 CSI 迁移 {#azuredisk-csi-migration} @@ -302,7 +302,7 @@ and the kubelet, set the `InTreePluginAzureDiskUnregister` flag to `true`. {{< feature-state for_k8s_version="v1.21" state="deprecated" >}} The `azureFile` volume type mounts a Microsoft Azure File volume (SMB 2.1 and 3.0) -into a Pod. +into a pod. For more details, see the [`azureFile` volume plugin](https://github.com/kubernetes/examples/tree/master/staging/volumes/azure_file/README.md). --> @@ -321,7 +321,7 @@ For more details, see the [`azureFile` volume plugin](https://github.com/kuberne {{< feature-state for_k8s_version="v1.21" state="beta" >}} -#### azureDisk CSI 迁移完成 +#### azureFile CSI 迁移完成 {{< feature-state for_k8s_version="v1.21" state="alpha" >}} -要禁止控制器管理器和 kubelet 加载 `azureDisk` 存储插件, -请将 `InTreePluginAzureDiskUnregister` 标志设置为 `true`。 +要禁止控制器管理器和 kubelet 加载 `azureFile` 存储插件, +请将 `InTreePluginAzureFileUnregister` 标志设置为 `true`。 ### cephfs {#cephfs} `cephfs` 卷允许你将现存的 CephFS 卷挂载到 Pod 中。 @@ -405,7 +405,7 @@ The `cinder` volume type is used to mount the OpenStack Cinder volume into your `cinder` 卷类型用于将 OpenStack Cinder 卷挂载到 Pod 中。 #### Cinder 卷示例配置 {#cinder-volume-example-configuration} @@ -425,12 +425,12 @@ spec: - name: test-volume # 此 OpenStack 卷必须已经存在 cinder: - volumeID: "" + volumeID: "" fsType: ext4 ``` #### OpenStack CSI 迁移 @@ -464,9 +464,9 @@ and the kubelet, you can enable the `InTreePluginOpenStackUnregister` [`configMap`](/zh-cn/docs/tasks/configure-pod-container/configure-pod-configmap/) 卷提供了向 Pod 注入配置数据的方法。 @@ -506,7 +506,7 @@ spec: @@ -530,14 +530,15 @@ keyed with `log_level`. `binaryData` 字段。 {{< /note >}} -### downwardAPI +### downwardAPI {#downwardapi} -`downwardAPI` 卷用于使 downward API 数据对应用程序可用。 -这种卷类型挂载一个目录并在纯文本文件中写入所请求的数据。 +`downwardAPI` 卷用于为应用提供 {{< glossary_tooltip term_id="downward-api" text="downward API" >}} 数据。 +在这类卷中,所公开的数据以纯文本格式的只读文件形式存在。 -更多详细信息请参考 [`downwardAPI` 卷示例](/zh-cn/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/)。 +更多详细信息请参考[通过文件将 Pod 信息呈现给容器](/zh-cn/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/)。 -### emptyDir +### emptyDir {#emptydir} 当 Pod 分派到某个 Node 上时,`emptyDir` 卷会被创建,并且在 Pod 在该节点上运行期间,卷一直存在。 就像其名称表示的那样,卷最初是空的。 @@ -569,7 +571,8 @@ any reason, the data in the `emptyDir` is deleted forever. 当 Pod 因为某些原因被从节点上删除时,`emptyDir` 卷中的数据也会被永久删除。 {{< note >}} 容器崩溃并**不**会导致 Pod 被从节点上移除,因此容器崩溃期间 `emptyDir` 卷中的数据是安全的。 @@ -580,8 +583,8 @@ Some uses for an `emptyDir` are: * scratch space, such as for a disk-based merge sort * checkpointing a long computation for recovery from crashes -* holding files that a content-manager Container fetches while a webserver - Container serves the data +* holding files that a content-manager container fetches while a webserver + container serves the data --> `emptyDir` 的一些用途: @@ -594,7 +597,7 @@ Depending on your environment, `emptyDir` volumes are stored on whatever medium node such as disk or SSD, or network storage. However, if you set the `emptyDir.medium` field to `"Memory"`, Kubernetes mounts a tmpfs (RAM-backed filesystem) for you instead. While tmpfs is very fast, be aware that unlike disks, tmpfs is cleared on -node reboot and any files you write will count against your Container's +node reboot and any files you write count against your container's memory limit. --> 取决于你的环境,`emptyDir` 卷存储在该节点所使用的介质上;这里的介质可以是磁盘或 SSD @@ -654,7 +657,8 @@ targetWWNs expect that those WWNs are from multi-path connections. 如果指定了多个 WWN,targetWWNs 期望这些 WWN 来自多路径连接。 {{< note >}} 你必须配置 FC SAN Zoning,以便预先向目标 WWN 分配和屏蔽这些 LUN(卷),这样 @@ -670,7 +674,7 @@ See the [fibre channel example](https://github.com/kubernetes/examples/tree/mast ### flocker (deprecated) {#flocker} [Flocker](https://github.com/ClusterHQ/flocker) is an open-source, clustered -Container data volume manager. Flocker provides management +container data volume manager. Flocker provides management and orchestration of data volumes backed by a variety of storage backends. --> @@ -683,8 +687,8 @@ Flocker 提供了由各种存储后端所支持的数据卷的管理和编排。 A `flocker` volume allows a Flocker dataset to be mounted into a Pod. If the dataset does not already exist in Flocker, it needs to be first created with the Flocker CLI or by using the Flocker API. If the dataset already exists it will be -reattached by Flocker to the node that the Pod is scheduled. This means data -can be shared between Pods as required. +reattached by Flocker to the node that the pod is scheduled. This means data +can be shared between pods as required. --> 使用 `flocker` 卷可以将一个 Flocker 数据集挂载到 Pod 中。 如果数据集在 Flocker 中不存在,则需要首先使用 Flocker CLI 或 Flocker API 创建数据集。 @@ -704,15 +708,20 @@ See the [Flocker example](https://github.com/kubernetes/examples/tree/master/sta 更多详情请参考 [Flocker 示例](https://github.com/kubernetes/examples/tree/master/staging/volumes/flocker)。 -### gcePersistentDisk {#gcepersistentdisk} +### gcePersistentDisk (deprecated) {#gcepersistentdisk} + +{{< feature-state for_k8s_version="v1.17" state="deprecated" >}} `gcePersistentDisk` 卷能将谷歌计算引擎 (GCE) [持久盘(PD)](http://cloud.google.com/compute/docs/disks) 挂载到你的 Pod 中。 @@ -723,15 +732,15 @@ pre-populated with data, and that data can be shared between pods. -{{< caution >}} +{{< note >}} 在使用 PD 前,你必须使用 `gcloud` 或者 GCE API 或 UI 创建它。 -{{< /caution >}} +{{< /note >}} 使用 `gcePersistentDisk` 时有一些限制: @@ -760,7 +769,7 @@ the PD is read-only or the replica count is 0 or 1. #### 创建 GCE 持久盘(PD) {#gce-create-persistent-disk} @@ -795,15 +804,15 @@ spec: fsType: ext4 ``` #### 区域持久盘 {#regional-persistent-disks} [区域持久盘](https://cloud.google.com/compute/docs/disks/#repds)特性允许你创建能在同一区域的两个可用区中使用的持久盘。 要使用这个特性,必须以持久卷(PersistentVolume)的方式提供卷;直接从 @@ -812,32 +821,31 @@ Pod 引用这种卷是不可以的。 #### 手动供应基于区域 PD 的 PersistentVolume {#manually-provisioning-regional-pd-pv} -使用[为 GCE PD 定义的存储类](/zh-cn/docs/concepts/storage/storage-classes/#gce) +使用[为 GCE PD 定义的存储类](/zh-cn/docs/concepts/storage/storage-classes/#gce-pd) 可以实现动态供应。在创建 PersistentVolume 之前,你首先要创建 PD。 ```shell -gcloud beta compute disks create --size=500GB my-data-disk - --region us-central1 - --replica-zones us-central1-a,us-central1-b +gcloud compute disks create --size=500GB my-data-disk + --region us-central1 + --replica-zones us-central1-a,us-central1-b ``` -PersistentVolume 示例: +#### 区域持久盘配置示例 ```yaml apiVersion: v1 kind: PersistentVolume metadata: name: test-volume - labels: - failure-domain.beta.kubernetes.io/zone: us-central1-a__us-central1-b spec: capacity: storage: 400Gi @@ -859,14 +867,14 @@ spec: ``` #### GCE CSI 迁移 {#gce-csi-migration} {{< feature-state for_k8s_version="v1.17" state="beta" >}} {{< warning >}} `gitRepo` 卷类型已经被废弃。如果需要在容器中提供 git 仓库,请将一个 @@ -943,10 +951,10 @@ spec: ### glusterfs 更多详情请参考 [GlusterFS 示例](https://github.com/kubernetes/examples/tree/master/volumes/glusterfs)。 -### hostPath +### hostPath {#hostpath} {{< warning >}} @@ -1011,17 +1019,17 @@ For example, some uses for a `hostPath` are: * 允许 Pod 指定给定的 `hostPath` 在运行 Pod 之前是否应该存在,是否应该创建以及应该以什么方式存在。 -除了必需的 `path` 属性之外,用户可以选择性地为 `hostPath` 卷指定 `type`。 +除了必需的 `path` 属性之外,你可以选择性地为 `hostPath` 卷指定 `type`。 支持的 `type` 值如下: `iscsi` 卷能将 iSCSI (基于 IP 的 SCSI) 卷挂载到你的 Pod 中。 @@ -1152,14 +1160,14 @@ that data can be shared between pods. -{{< caution >}} +{{< note >}} 在使用 iSCSI 卷之前,你必须拥有自己的 iSCSI 服务器,并在上面创建卷。 -{{< /caution >}} +{{< /note >}} @@ -1179,31 +1187,31 @@ A `local` volume represents a mounted local storage device such as a disk, partition or directory. Local volumes can only be used as a statically created PersistentVolume. Dynamic -provisioning is not supported yet. +provisioning is not supported. --> ### local `local` 卷所代表的是某个被挂载的本地存储设备,例如磁盘、分区或者目录。 -`local` 卷只能用作静态创建的持久卷。尚不支持动态配置。 +`local` 卷只能用作静态创建的持久卷。不支持动态配置。 与 `hostPath` 卷相比,`local` 卷能够以持久和可移植的方式使用,而无需手动将 Pod 调度到节点。系统通过查看 PersistentVolume 的节点亲和性配置,就能了解卷的节点约束。 然而,`local` 卷仍然取决于底层节点的可用性,并不适合所有应用程序。 @@ -1292,9 +1300,9 @@ lifecycle. @@ -1319,7 +1327,7 @@ See the [NFS example](https://github.com/kubernetes/examples/tree/master/staging @@ -1328,17 +1336,18 @@ iSCSI volume) without knowing the details of the particular cloud environment. GCE PersistentDisk 或者 iSCSI 卷)的一种方法。 -更多详情请参考[持久卷示例](/zh-cn/docs/concepts/storage/persistent-volumes/)。 +更多详情请参考[持久卷](/zh-cn/docs/concepts/storage/persistent-volumes/)。 ### portworxVolume {#portworxvolume} `portworxVolume` 是一个可伸缩的块存储层,能够以超融合(hyperconverged)的方式与 Kubernetes 一起运行。 [Portworx](https://portworx.com/use-case/kubernetes-storage/) @@ -1347,12 +1356,11 @@ Portworx 可以以 in-guest 方式在虚拟机中运行,也可以在裸金属 -`portworxVolume` 类型的卷可以通过 Kubernetes 动态创建,也可以预先配备并在 -Kubernetes Pod 内引用。 -下面是一个引用预先配备的 PortworxVolume 的示例 Pod: +`portworxVolume` 类型的卷可以通过 Kubernetes 动态创建,也可以预先配备并在 Pod 内引用。 +下面是一个引用预先配备的 Portworx Volume 的示例 Pod: ```yaml apiVersion: v1 @@ -1399,13 +1407,13 @@ directory. For more details, see [projected volumes](/docs/concepts/storage/proj ### quobyte (已弃用) {#quobyte} `quobyte` 卷允许将现有的 [Quobyte](https://www.quobyte.com) 卷挂载到你的 Pod 中。 {{< note >}} @@ -1517,8 +1525,8 @@ RBD CSI driver: @@ -1527,18 +1535,18 @@ API 服务器上,然后以文件的形式挂载到 Pod 中,无需直接与 K `secret` 卷由 tmpfs(基于 RAM 的文件系统)提供存储,因此它们永远不会被写入非易失性(持久化的)存储器。 {{< note >}} -使用前你必须在 Kubernetes API 中创建 secret。 +使用前你必须在 Kubernetes API 中创建 Secret。 {{< /note >}} {{< note >}} -容器以 [subPath](#using-subpath) 卷挂载方式挂载 Secret 时,将感知不到 Secret 的更新。 +容器以 [`subPath`](#using-subpath) 卷挂载方式挂载 Secret 时,将感知不到 Secret 的更新。 {{< /note >}} `storageos` 卷允许将现有的 [StorageOS](https://www.storageos.com) 卷挂载到你的 Pod 中。 +以下示例是使用 StorageOS 的 Pod 配置: ```yaml apiVersion: v1 kind: Pod @@ -1749,7 +1761,7 @@ Kubernetes 1.23 中加入了 Portworx 的 `CSIMigration` 特性,但默认不 @@ -1808,19 +1820,19 @@ spec: -使用 `subPathExpr` 字段可以基于 Downward API 环境变量来构造 `subPath` 目录名。 +使用 `subPathExpr` 字段可以基于 downward API 环境变量来构造 `subPath` 目录名。 `subPath` 和 `subPathExpr` 属性是互斥的。 -在这个示例中,Pod 使用 `subPathExpr` 来 hostPath 卷 `/var/log/pods` 中创建目录 `pod1`。 +在这个示例中,`Pod` 使用 `subPathExpr` 来 `hostPath` 卷 `/var/log/pods` 中创建目录 `pod1`。 `hostPath` 卷采用来自 `downwardAPI` 的 Pod 名称生成目录名。 宿主目录 `/var/log/pods/pod1` 被挂载到容器的 `/logs` 中。 @@ -1855,15 +1867,15 @@ spec: ## 资源 {#resources} -`emptyDir` 卷的存储介质(磁盘、SSD 等)是由保存 kubelet +`emptyDir` 卷的存储介质(例如磁盘、SSD 等)是由保存 kubelet 数据的根目录(通常是 `/var/lib/kubelet`)的文件系统的介质确定。 Kubernetes 对 `emptyDir` 卷或者 `hostPath` 卷可以消耗的空间没有限制,容器之间或 Pod 之间也没有隔离。 @@ -1876,7 +1888,7 @@ To learn about requesting space using a resource specification, see CSI 和 FlexVolume 都允许独立于 Kubernetes 代码库开发卷插件,并作为扩展部署(安装)在 Kubernetes 集群上。 对于希望创建树外(Out-Of-Tree)卷插件的存储供应商,请参考 [卷插件常见问题](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md)。 -### CSI +### csi -更多详情请阅读 [CSI 设计方案](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md)。 +更多详情请阅读 [CSI 设计方案](https://git.k8s.io/design-proposals-archive/storage/container-storage-interface.md)。 一旦在 Kubernetes 集群上部署了 CSI 兼容卷驱动程序,用户就可以使用 @@ -1966,9 +1977,8 @@ if the driver supports that (beta feature) `csi` 卷可以在 Pod 中以三种方式使用: * 通过 PersistentVolumeClaim(#persistentvolumeclaim) 对象引用 -* 使用[一般性的临时卷](/zh-cn/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volume) - (Alpha 特性) -* 使用 [CSI 临时卷](/zh-cn/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volume), +* 使用[一般性的临时卷](/zh-cn/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) +* 使用 [CSI 临时卷](/zh-cn/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volumes), 前提是驱动支持这种用法(Beta 特性) -- `driver`:指定要使用的卷驱动名称的字符串值。 +* `driver`:指定要使用的卷驱动名称的字符串值。 这个值必须与 CSI 驱动程序在 `GetPluginInfoResponse` 中返回的值相对应;该接口定义在 [CSI 规范](https://github.com/container-storage-interface/spec/blob/master/spec.md#getplugininfo)中。 Kubernetes 使用所给的值来标识要调用的 CSI 驱动程序;CSI 驱动程序也使用该值来辨识哪些 PV 对象属于该 CSI 驱动程序。 -- `volumeHandle`:唯一标识卷的字符串值。 +* `volumeHandle`:唯一标识卷的字符串值。 该值必须与 CSI 驱动在 `CreateVolumeResponse` 的 `volume_id` 字段中返回的值相对应;接口定义在 [CSI 规范](https://github.com/container-storage-interface/spec/blob/master/spec.md#createvolume) 中。 在所有对 CSI 卷驱动程序的调用中,引用该 CSI 卷时都使用此值作为 `volume_id` 参数。 -- `readOnly`:一个可选的布尔值,指示通过 `ControllerPublished` 关联该卷时是否设置该卷为只读。默认值是 false。 +* `readOnly`:一个可选的布尔值,指示通过 `ControllerPublished` 关联该卷时是否设置该卷为只读。默认值是 false。 该值通过 `ControllerPublishVolumeRequest` 中的 `readonly` 字段传递给 CSI 驱动。 -- `fsType`:如果 PV 的 `VolumeMode` 为 `Filesystem`,那么此字段指定挂载卷时应该使用的文件系统。 +* `fsType`:如果 PV 的 `VolumeMode` 为 `Filesystem`,那么此字段指定挂载卷时应该使用的文件系统。 如果卷尚未格式化,并且支持格式化,此值将用于格式化卷。 此值可以通过 `ControllerPublishVolumeRequest`、`NodeStageVolumeRequest` 和 `NodePublishVolumeRequest` 的 `VolumeCapability` 字段传递给 CSI 驱动。 -- `volumeAttributes`:一个字符串到字符串的映射表,用来设置卷的静态属性。 +* `volumeAttributes`:一个字符串到字符串的映射表,用来设置卷的静态属性。 该映射必须与 CSI 驱动程序返回的 `CreateVolumeResponse` 中的 `volume.attributes` 字段的映射相对应; [CSI 规范](https://github.com/container-storage-interface/spec/blob/master/spec.md#createvolume)中有相应的定义。 该映射通过`ControllerPublishVolumeRequest`、`NodeStageVolumeRequest`、和 - `NodePublishVolumeRequest` 中的 `volume_attributes` 字段传递给 CSI 驱动。 + `NodePublishVolumeRequest` 中的 `volume_context` 字段传递给 CSI 驱动。 -- `controllerPublishSecretRef`:对包含敏感信息的 Secret 对象的引用; +* `controllerPublishSecretRef`:对包含敏感信息的 Secret 对象的引用; 该敏感信息会被传递给 CSI 驱动来完成 CSI `ControllerPublishVolume` 和 `ControllerUnpublishVolume` 调用。 此字段是可选的;在不需要 Secret 时可以是空的。 - 如果 Secret 对象包含多个 Secret 条目,则所有的 Secret 条目都会被传递。 + 如果 Secret 包含多个 Secret 条目,则所有的 Secret 条目都会被传递。 -- `nodeStageSecretRef`:对包含敏感信息的 Secret 对象的引用。 +* `nodeStageSecretRef`:对包含敏感信息的 Secret 对象的引用。 该信息会传递给 CSI 驱动来完成 CSI `NodeStageVolume` 调用。 此字段是可选的,如果不需要 Secret,则可能是空的。 - 如果 Secret 对象包含多个 Secret 条目,则传递所有 Secret 条目。 + 如果 Secret 包含多个 Secret 条目,则传递所有 Secret 条目。 -- `nodePublishSecretRef`:对包含敏感信息的 Secret 对象的引用。 +* `nodePublishSecretRef`:对包含敏感信息的 Secret 对象的引用。 该信息传递给 CSI 驱动来完成 CSI `NodePublishVolume` 调用。 此字段是可选的,如果不需要 Secret,则可能是空的。 如果 Secret 对象包含多个 Secret 条目,则传递所有 Secret 条目。 @@ -2087,7 +2097,7 @@ persistent volume: {{< feature-state for_k8s_version="v1.18" state="stable" >}} 具有外部 CSI 驱动程序的供应商能够在 Kubernetes 工作负载中实现原始块卷支持。 @@ -2111,12 +2121,12 @@ You can set up your You can directly configure CSI volumes within the Pod specification. Volumes specified in this way are ephemeral and do not persist across pod restarts. See [Ephemeral -Volumes](/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volume) +Volumes](/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volumes) for more information. --> 你可以直接在 Pod 规约中配置 CSI 卷。采用这种方式配置的卷都是临时卷, 无法在 Pod 重新启动后继续存在。 -进一步的信息可参阅[临时卷](/zh-cn/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volume)。 +进一步的信息可参阅[临时卷](/zh-cn/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volumes)。 ## 挂载卷的传播 {#mount-propagation} @@ -2250,13 +2260,13 @@ Its values are: 它的值包括: * `None` - 此卷挂载将不会感知到主机后续在此卷或其任何子目录上执行的挂载变化。 @@ -2266,18 +2276,18 @@ Its values are: `private` 挂载传播选项。 * `HostToContainer` - 此卷挂载将会感知到主机后续针对此卷或其任何子目录的挂载操作。 @@ -2291,14 +2301,14 @@ Its values are: * `Bidirectional` - 这种卷挂载和 `HostToContainer` 挂载表现相同。 另外,容器创建的卷挂载将被传播回至主机和使用同一卷的所有 Pod 的所有容器。 @@ -2309,9 +2319,9 @@ Its values are: {{< warning >}} `Bidirectional` 形式的挂载传播可能比较危险。 @@ -2332,7 +2342,7 @@ Docker as shown below. 在某些部署环境中,挂载传播正常工作前,必须在 Docker 中正确配置挂载共享(mount share),如下所示。 编辑你的 Docker `systemd` 服务文件,按下面的方法设置 `MountFlags`: diff --git a/content/zh-cn/releases/download.md b/content/zh-cn/releases/download.md index c05432d80d..412f843846 100644 --- a/content/zh-cn/releases/download.md +++ b/content/zh-cn/releases/download.md @@ -100,14 +100,14 @@ those derivations are signed in the same way as the multi-architecture manifest -Kubernetes 项目以 SBoM(软件物料清单)格式发布已签名的 Kubernetes 容器镜像列表。 +Kubernetes 项目以 [SPDX 2.2](https://spdx.dev/specifications/) 格式发布已签名的 Kubernetes 容器镜像列表。 你可以使用以下方法获取该列表: ```shell -curl -Ls "https://sbom.k8s.io/$(curl -Ls https://dl.k8s.io/release/latest.txt)/release" | awk '/PackageName: k8s.gcr.io\// {print $2}' +curl -Ls "https://sbom.k8s.io/$(curl -Ls https://dl.k8s.io/release/latest.txt)/release" | awk '/Package: registry.k8s.io\// {print $3}' ```