From 2dc571df7781d00f1be260553e812f20be492fc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Nussbaumer?=
Date: Mon, 12 Feb 2024 08:18:31 +0100
Subject: [PATCH 01/24] docs(kubeadm-upgrade): add consideration on etcd
upgrade impact
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
relates to https://github.com/kubernetes/kubeadm/issues/2991#issuecomment-1932337556
Co-authored-by: Lubomir I. Ivanov
Signed-off-by: Clément Nussbaumer
---
.../kubeadm/kubeadm-upgrade.md | 21 +++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md b/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md
index 09f43dd634..8c747d99f0 100644
--- a/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md
+++ b/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md
@@ -54,11 +54,28 @@ The upgrade workflow at high level is the following:
with the purpose of reconfiguring the cluster is not recommended and can have unexpected results. Follow the steps in
[Reconfiguring a kubeadm cluster](/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure) instead.
+### Considerations when upgrading etcd
+
+Because the `kube-apiserver` static pod is running at all times (even if you
+have drained the node), when you perform a kubeadm upgrade which includes an
+etcd upgrade, in-flight requests to the server will stall while the new etcd
+static pod is restarting. As a workaround, it is possible to actively stop the
+`kube-apiserver` process a few seconds before starting the `kubeadm upgrade
+apply` command. This permits to complete in-flight requests and close existing
+connections, and minimizes the consequence of the etcd downtime. This can be
+done as follows on control plane nodes:
+
+```shell
+killall -s SIGTERM kube-apiserver # trigger a graceful kube-apiserver shutdown
+sleep 20 # wait a little bit to permit completing in-flight requests
+kubeadm upgrade ... # execute a kubeadm upgrade command
+```
+
## Changing the package repository
-If you're using the community-owned package repositories (`pkgs.k8s.io`), you need to
+If you're using the community-owned package repositories (`pkgs.k8s.io`), you need to
enable the package repository for the desired Kubernetes minor release. This is explained in
[Changing the Kubernetes package repository](/docs/tasks/administer-cluster/kubeadm/change-package-repository/)
document.
@@ -320,4 +337,4 @@ and post-upgrade manifest file for a certain component, a backup file for it wil
`kubeadm upgrade node` does the following on worker nodes:
- Fetches the kubeadm `ClusterConfiguration` from the cluster.
-- Upgrades the kubelet configuration for this node.
+- Upgrades the kubelet configuration for this node.
\ No newline at end of file
From c4aea8c8619ee1be081550a52c60ab306010a6db Mon Sep 17 00:00:00 2001
From: "xin.li"
Date: Wed, 21 Feb 2024 21:16:01 +0800
Subject: [PATCH 02/24] [zh-cn]sync patch-releases network-policies
Signed-off-by: xin.li
---
.../services-networking/network-policies.md | 95 ++++++++++---------
content/zh-cn/releases/patch-releases.md | 12 +--
2 files changed, 54 insertions(+), 53 deletions(-)
diff --git a/content/zh-cn/docs/concepts/services-networking/network-policies.md b/content/zh-cn/docs/concepts/services-networking/network-policies.md
index 69831b7224..b8d181b8d2 100644
--- a/content/zh-cn/docs/concepts/services-networking/network-policies.md
+++ b/content/zh-cn/docs/concepts/services-networking/network-policies.md
@@ -28,8 +28,8 @@ description: >-
Pod 可以与之通信的实体是通过如下三个标识符的组合来辩识的:
@@ -60,11 +60,11 @@ Pod 可以与之通信的实体是通过如下三个标识符的组合来辩识
无论 Pod 或节点的 IP 地址)
在定义基于 Pod 或名字空间的 NetworkPolicy 时,
你会使用{{< glossary_tooltip text="选择算符" term_id="selector">}}来设定哪些流量可以进入或离开与该算符匹配的 Pod。
@@ -87,17 +87,17 @@ Creating a NetworkPolicy resource without a controller that implements it will h
创建一个 NetworkPolicy 资源对象而没有控制器来使它生效的话,是没有任何作用的。
## Pod 隔离的两种类型 {#the-two-sorts-of-pod-isolation}
-Pod 有两种隔离: 出口的隔离和入口的隔离。它们涉及到可以建立哪些连接。
+Pod 有两种隔离:出口的隔离和入口的隔离。它们涉及到可以建立哪些连接。
这里的“隔离”不是绝对的,而是意味着“有一些限制”。
另外的,“非隔离方向”意味着在所述方向上没有限制。这两种隔离(或不隔离)是独立声明的,
并且都与从一个 Pod 到另一个 Pod 的连接有关。
@@ -112,7 +112,7 @@ allowed connections will also be implicitly allowed.
The effects of those `egress` lists combine additively.
-->
默认情况下,一个 Pod 的出口是非隔离的,即所有外向连接都是被允许的。如果有任何的 NetworkPolicy
-选择该 Pod 并在其 `policyTypes` 中包含 “Egress”,则该 Pod 是出口隔离的,
+选择该 Pod 并在其 `policyTypes` 中包含 "Egress",则该 Pod 是出口隔离的,
我们称这样的策略适用于该 Pod 的出口。当一个 Pod 的出口被隔离时,
唯一允许的来自 Pod 的连接是适用于出口的 Pod 的某个 NetworkPolicy 的 `egress` 列表所允许的连接。
针对那些允许连接的应答流量也将被隐式允许。
@@ -176,7 +176,7 @@ solution supports network policy.
你可以通过创建选择所有 Pod 但不允许任何进入这些 Pod 的入站流量的 NetworkPolicy
-来为名字空间创建 “default” 隔离策略。
+来为名字空间创建 "default" 隔离策略。
{{< code_sample file="service/networking/network-policy-default-deny-ingress.yaml" >}}
@@ -419,7 +420,7 @@ that explicitly allows that.
有了这个策略,任何额外的策略都不会导致到这些 Pod 的任何入站连接被拒绝。
此策略对任何 Pod 的出口隔离没有影响。
@@ -433,7 +434,7 @@ that selects all pods but does not allow any egress traffic from those pods.
### 默认拒绝所有出站流量 {#default-deny-all-egress-traffic}
你可以通过创建选择所有容器但不允许来自这些容器的任何出站流量的 NetworkPolicy
-来为名字空间创建 “default” 隔离策略。
+来为名字空间创建 "default" 隔离策略。
{{< code_sample file="service/networking/network-policy-default-deny-egress.yaml" >}}
@@ -460,7 +461,7 @@ explicitly allows all outgoing connections from pods in that namespace.
有了这个策略,任何额外的策略都不会导致来自这些 Pod 的任何出站连接被拒绝。
此策略对进入任何 Pod 的隔离没有影响。
@@ -473,7 +474,7 @@ creating the following NetworkPolicy in that namespace.
-->
### 默认拒绝所有入站和所有出站流量 {#default-deny-all-ingress-and-all-egress-traffic}
-你可以为名字空间创建 “default” 策略,以通过在该名字空间中创建以下 NetworkPolicy
+你可以为名字空间创建 "default" 策略,以通过在该名字空间中创建以下 NetworkPolicy
来阻止所有入站和出站流量。
{{< code_sample file="service/networking/network-policy-default-deny-all.yaml" >}}
@@ -487,8 +488,8 @@ ingress or egress traffic.
## 网络流量过滤 {#network-traffic-filtering}
@@ -508,7 +509,7 @@ protocol NetworkPolicies.
When a `deny all` network policy is defined, it is only guaranteed to deny TCP, UDP and SCTP
connections. For other protocols, such as ARP or ICMP, the behaviour is undefined.
The same applies to allow rules: when a specific pod is allowed as ingress source or egress destination,
-it is undefined what happens with (for example) ICMP packets. Protocols such as ICMP may be allowed by some
+it is undefined what happens with (for example) ICMP packets. Protocols such as ICMP may be allowed by some
network plugins and denied by others.
-->
当 `deny all` 网络策略被定义时,此策略只能保证拒绝 TCP、UDP 和 SCTP 连接。
@@ -536,8 +537,8 @@ This is achievable with the usage of the `endPort` field, as the following examp
{{< code_sample file="service/networking/networkpolicy-multiport-egress.yaml" >}}
上面的规则允许名字空间 `default` 中所有带有标签 `role=db` 的 Pod 使用 TCP 协议与
@@ -560,7 +561,7 @@ The following restrictions apply when using this field:
@@ -658,7 +659,7 @@ NetworkPolicy.
When a new NetworkPolicy object is created, it may take some time for a network plugin
to handle the new object. If a pod that is affected by a NetworkPolicy
is created before the network plugin has completed NetworkPolicy handling,
-that pod may be started unprotected, and isolation rules will be applied when
+that pod may be started unprotected, and isolation rules will be applied when
the NetworkPolicy handling is completed.
-->
当新的 NetworkPolicy 对象被创建时,网络插件可能需要一些时间来处理这个新对象。
@@ -669,11 +670,11 @@ the NetworkPolicy handling is completed.
Once the NetworkPolicy is handled by a network plugin,
1. All newly created pods affected by a given NetworkPolicy will be isolated before
-they are started.
-Implementations of NetworkPolicy must ensure that filtering is effective throughout
-the Pod lifecycle, even from the very first instant that any container in that Pod is started.
-Because they are applied at Pod level, NetworkPolicies apply equally to init containers,
-sidecar containers, and regular containers.
+ they are started.
+ Implementations of NetworkPolicy must ensure that filtering is effective throughout
+ the Pod lifecycle, even from the very first instant that any container in that Pod is started.
+ Because they are applied at Pod level, NetworkPolicies apply equally to init containers,
+ sidecar containers, and regular containers.
-->
一旦 NetworkPolicy 被网络插件处理,
@@ -684,8 +685,8 @@ sidecar containers, and regular containers.
@@ -709,7 +711,7 @@ kubelet 启动应用容器之前等待这些目的地变得可达。
- 网络插件无法正确辨别 `hostNetwork` Pod 流量,因此在匹配 `podSelector` 和 `namespaceSelector`
@@ -771,9 +773,10 @@ This applies when
```
-2. `hostNetwork` Pod 在 `ingress` 或 `egress` 规则中被 `podSelector` 或 `namespaceSelector` 选中。
+2. `hostNetwork` Pod 在 `ingress` 或 `egress` 规则中被 `podSelector` 或
+ `namespaceSelector` 选中。
```yaml
...
@@ -799,7 +802,7 @@ from a `hostNetwork` Pod using an `ipBlock` rule.
As of Kubernetes {{< skew currentVersion >}}, the following functionality does not exist in the
NetworkPolicy API, but you might be able to implement workarounds using Operating System
components (such as SELinux, OpenVSwitch, IPTables, and so on) or Layer 7 technologies (Ingress
-controllers, Service Mesh implementations) or admission controllers. In case you are new to
+controllers, Service Mesh implementations) or admission controllers. In case you are new to
network security in Kubernetes, its worth noting that the following User Stories cannot (yet) be
implemented using the NetworkPolicy API.
-->
@@ -873,6 +876,6 @@ It is recommended not to modify policies/pods/namespaces in ways that might affe
- See more [recipes](https://github.com/ahmetb/kubernetes-network-policy-recipes) for common
scenarios enabled by the NetworkPolicy resource.
-->
-- 参阅[声明网络策略](/zh-cn/docs/tasks/administer-cluster/declare-network-policy/)演练了解更多示例;
+- 有关更多示例,请参阅[声明网络策略](/zh-cn/docs/tasks/administer-cluster/declare-network-policy/)演练。
- 有关 NetworkPolicy 资源所支持的常见场景的更多信息,
请参见[此指南](https://github.com/ahmetb/kubernetes-network-policy-recipes)。
diff --git a/content/zh-cn/releases/patch-releases.md b/content/zh-cn/releases/patch-releases.md
index 12bfb33788..884c00ba85 100644
--- a/content/zh-cn/releases/patch-releases.md
+++ b/content/zh-cn/releases/patch-releases.md
@@ -55,7 +55,7 @@ if there are questions on the PR.
在两次发布之间,团队每周都会查看收到的 cherry pick 请求。
如果对 PR 有任何问题,团队将通过 GitHub PR、Slack 中的 SIG 频道以及 Slack 中的直接消息和
-[email](mailto:release-managers-private@kubernetes.io) 与提交者取得联系。
+[Email](mailto:release-managers-private@kubernetes.io) 与提交者取得联系。
| 月度补丁发布 | Cherry Pick 截止日期 | 目标日期 |
|--------------|---------------------|-------------|
-| 2023 年 12 月 | 2023-12-15 | 2023-12-19 |
-| 2024 年 1 月 | 2024-01-12 | 2024-01-17 |
-| 2024 年 2 月 | 2024-02-09 | 2024-02-14 |
| 2024 年 3 月 | 2024-03-08 | 2024-03-13 |
+| 2024 年 4 月 | 2024-04-12 | 2024-04-17 |
+| 2024 年 5 月 | 2024-05-10 | 2024-05-15 |
+
+## {{% heading "synopsis" %}}
+
+
+更新一个或多个资源上的注解。
+
+所有 Kubernetes 对象都支持以注解(Annotation)的形式为对象存储额外的数据。
+注解是一些键/值对,可以比标签的数据量更大,可以包含诸如结构化 JSON 这类任意字符串值。
+各种工具和系统扩展可以使用注解来存储自己的数据。
+
+尝试设置已存在的注解的操作将会失败,除非设置了 --overwrite 选项。
+如果 --resource-version 被指定且与服务器上当前资源版本不匹配,命令将会失败。
+
+使用 "kubectl api-resources" 获取可支持的资源完整列表。
+
+```shell
+kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
+```
+
+## {{% heading "examples" %}}
+
+
+```shell
+# 使用注解 'description' 和值 'my frontend' 更新 Pod 'foo'
+# 如果同一注解被设置多次,则只使用最后一个值
+kubectl annotate pods foo description='my frontend'
+
+# 更新在 "pod.json" 中指定 type 和 name 的 Pod
+kubectl annotate -f pod.json description='my frontend'
+
+# 更新 Pod 'foo',设置注解 'description' 和值 'my frontend running nginx',覆盖其当前值
+kubectl annotate --overwrite pods foo description='my frontend running nginx'
+
+# 更新命名空间中的所有 Pod
+kubectl annotate pods --all description='my frontend running nginx'
+
+# 仅在资源版本仍为 1 时更新 Pod 'foo'
+kubectl annotate pods foo description='my frontend running nginx' --resource-version=1
+
+# 通过删除名为 'description' 的注解(如果存在)来更新 Pod 'foo'
+# 不需要 --overwrite 标志
+kubectl annotate pods foo description-
+```
+
+## {{% heading "options" %}}
+
+
+
+## {{% heading "seealso" %}}
+
+
+* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
From e8413b6f45b5025765123a91f9a2d65de29743b1 Mon Sep 17 00:00:00 2001
From: David Nguyen
Date: Fri, 23 Feb 2024 14:33:49 +0700
Subject: [PATCH 04/24] update README-vi.md and vi.toml
---
README-vi.md | 212 ++++++++++++++++----
data/i18n/vi/vi.toml | 466 ++++++++++++++++++++++++++++++++++++++-----
2 files changed, 597 insertions(+), 81 deletions(-)
diff --git a/README-vi.md b/README-vi.md
index 8f8d9cecef..72b1a56a39 100644
--- a/README-vi.md
+++ b/README-vi.md
@@ -1,71 +1,213 @@
# Tài liệu Kubernetes
-[](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
+[](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
-Chào mừng! Kho lưu trữ này chứa tất cả các tài nguyên cần thiết để xây dựng [trang web của Kubernetes và các tài liệu](https://kubernetes.io/). Chúng tôi rất vui vì bạn muốn đóng góp.
+Kho lưu trữ này chứa các tài sản cần thiết để xây dựng [trang web và tài liệu Kubernetes](https://kubernetes.io/). Chúng tôi rất vui mừng khi bạn muốn đóng góp!
-## Đóng góp cho tài liệu
+- [Đóng góp vào tài liệu](#contributing-to-the-docs)
+- [READMEs địa phương](#localization-readmes)
-Bạn có thể click vào nút **Fork** ở góc trên bên phải màn hình để tạo bản sao của kho lưu trữ này trong tài khoản GitHub của bạn. Bản sao này được gọi là một bản *fork*. Thực hiện bất kì thay đổi nào mà bạn muốn trong bản fork của bạn và khi bạn sẵn sang gửi những thay đổi đó cho chúng tôi, hãy đến bản fork của bạn và tạo một Pull Request mới để cho chúng tôi biết về nó.
+## Sử dụng kho lưu trữ này
-Một khi Pull Request của bạn được tạo, reviewer sẽ chịu trách nhiệm cung cấp các phản hồi rõ ràng, có thể thực hiện được. Là chủ sở hữu của pull request, **bạn có trách nhiệm sửa đổi Pull Request của mình để giải quyết các phản hồi bởi reviewer.** Ngoài ra, lưu ý rằng bạn có thể có nhiều hơn một reviewer cung cấp cho bạn các phản hồi hoặc bạn có thể nhận được phản hồi từ reviewer khác với reviewer ban đầu được chỉ định. Hơn nữa, trong một số trường hợp, một trong những reviewer của bạn có thể yêu cầu đánh giá kỹ thuật từ [Kubernetes tech reviewer](https://github.com/kubernetes/website/wiki/Tech-reviewers) khi cần. Các reviewers sẽ cố gắng hết sức để cung cấp phản hồi một cách kịp thời nhưng thời gian phản hồi có thể thay đổi tùy theo hoàn cảnh.
+Bạn có thể chạy trang web này ở chế độ local bằng cách sử dụng [Hugo (Phiên bản mở rộng)](https://gohugo.io/), hoặc bạn có thể chạy nó trong một container runtime. Chúng tôi mạnh mẽ khuyến nghị sử dụng container runtime, vì nó mang lại tính nhất quán trong triển khai với trang web thực tế.
-Để biết thêm thông tin về việc đóng góp cho tài liệu Kubernetes, hãy xem:
+## Yêu cầu tiên quyết
-* [Bắt đầu đóng góp](https://kubernetes.io/docs/contribute/start/)
-* [Các giai đoạn thay đổi tài liệu](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
-* [Sử dụng các trang templates](https://kubernetes.io/docs/contribute/style/page-content-types/)
-* [Hướng dẫn biểu mẫu tài liệu](http://kubernetes.io/docs/contribute/style/style-guide/)
-* [Địa phương hóa tài liệu Kubernetes](https://kubernetes.io/docs/contribute/localization/)
+Để sử dụng kho lưu trữ này, bạn cần cài đặt các phần mềm sau trên máy tính của bạn:
+- [npm](https://www.npmjs.com/)
+- [Go](https://go.dev/)
+- [Hugo (Phiên bản mở rộng)](https://gohugo.io/)
+- Một container runtime, như [Docker](https://www.docker.com/).
-## Chạy website cục bộ dùng Docker
-
-Cách được đề xuất để chạy trang web Kubernetes cục bộ là dùng [Docker](https://docker.com) image chứa trình tạo web tĩnh [Hugo](https://gohugo.io).
-
-> Nếu bạn làm việc trên môi trường Windows, bạn sẽ cần thêm môt vài công cụ mà bạn có thể cài đặt với [Chocolatey](https://chocolatey.org). `choco install make`
-
-> Nếu bạn không muốn dùng Docker để chạy trang web cục bộ, hãy xem [Chạy website cục bộ dùng Hugo](#chạy-website-cục-bộ-dùng-hugo) dưới đây.
-
-Nếu bạn có Docker đang [up và running](https://www.docker.com/get-started), build `kubernetes-hugo` Docker image cục bộ:
+Trước khi bắt đầu, hãy cài đặt các phụ thuộc. Sao chép kho lưu trữ và di chuyển đến thư mục:
```bash
-make container-image
+git clone https://github.com/kubernetes/website.git
+cd website
```
-Khi image đã được built, bạn có thể chạy website cục bộ:
+Trang web Kubernetes sử dụng [chủ đề Docsy Hugo](https://github.com/google/docsy#readme). Ngay cả khi bạn dự định chạy trang web trong một vùng chứa, chúng tôi thực sự khuyên bạn nên kéo mô-đun con và các phần phụ thuộc phát triển khác bằng cách chạy như sau:
+
+### Windows
+
+```powershell
+# fetch submodule dependencies
+git submodule update --init --recursive --depth 1
+```
+
+### Linux / other Unix
```bash
+# fetch submodule dependencies
+make module-init
+```
+
+## Chạy trang web bằng container
+
+Để xây dựng trang web trong một container, chạy lệnh sau:
+
+```bash
+# Bạn có thể đặt biến $CONTAINER_ENGINE thành tên của bất kỳ công cụ container giống Docker nào
make container-serve
```
-Mở trình duyệt và đến địa chỉ http://localhost:1313 để xem website. Khi bạn thay đổi các file nguồn, Hugo cập nhật website và buộc làm mới trình duyệt.
+Nếu bạn thấy lỗi, điều đó có thể có nghĩa là container Hugo không có đủ tài nguyên điện toán. Để giải quyết nó, hãy tăng số lượng sử dụng CPU và bộ nhớ được phép cho Docker trên máy của bạn ([macOS] () và [windows] (https: // tài liệu .Docker.com/Desktop/Cài đặt/Windows/)).
-## Chạy website cục bộ dùng Hugo
+Mở trình duyệt của bạn để để xem trang web. Khi bạn thay đổi các tệp nguồn, Hugo cập nhật trang web và buộc phải làm mới trình duyệt.
-Hãy xem [tài liệu chính thức của Hugo](https://gohugo.io/getting-started/installing/) cho việc hướng dẫn cài đặt Hugo. Đảm bảo cài đặt phiên bản mở rộng của Hugo được xác định bởi biến môi trường `HUGO_VERSION` trong file [`netlify.toml`](netlify.toml#L9)
+## Chạy trang web cục bộ bằng cách sử dụng Hugo
-Để chạy website cục bộ khi Hugo được cài đặt:
+Đảm bảo cài đặt phiên bản mở rộng Hugo được chỉ định bởi biến môi trường `Hugo_version` trong tệp [`netlify.toml`] (netlify.toml#l11).
+
+Để cài đặt các phụ thuộc, triển khai và kiểm tra trang web cục bộ, chạy:
+
+- Đối với MacOS và Linux
+
+ ```bash
+ npm ci
+ make serve
+ ```
+
+- Đối với Windows (PowerShell)
+
+ ```powershell
+ npm ci
+ hugo.exe server --buildFuture --environment development
+ ```
+
+Điều này sẽ khởi động máy chủ Hugo cục bộ trên cổng 1313. Mở trình duyệt của bạn thành để xem trang web. Khi bạn thay đổi các tệp nguồn, Hugo cập nhật trang web và buộc phải làm mới trình duyệt.
+
+## Xây dựng các trang tài liệu tham khảo API
+
+Các trang tài liệu tham khảo API nằm trong `content/en/docs/reference/kubernetes-api` được xây dựng từ Swagger specification, còn được gọi là OpenAPI specification, sử dụng .
+
+Để cập nhật các trang tài liệu tham khảo cho một phiên bản Kubernetes mới, làm theo các bước sau:
+
+1. Kéo về submodule `api-ref-generator`:
+
+ ```bash
+ git submodule update --init --recursive --depth 1
+ ```
+
+2. Cập nhật Swagger specification:
+
+ ```bash
+ curl 'https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json' > api-ref-assets/api/swagger.json
+ ```
+
+3. Trong `api-ref-assets/config/`, điều chỉnh các tệp `toc.yaml` và `fields.yaml` để phản ánh các thay đổi của phiên bản mới.
+
+4. Tiếp theo, xây dựng các trang:
+
+ ```bash
+ make api-reference
+ ```
+
+ Bạn có thể kiểm tra kết quả trên máy cục bộ bằng cách xây dựng và chạy trang web từ một container:
+
+ ```bash
+ make container-serve
+ ```
+
+ Trong trình duyệt web, truy cập vào để xem tài liệu tham khảo API.
+
+5. Khi tất cả các thay đổi của hợp đồng mới được phản ánh vào các tệp cấu hình `toc.yaml` và `fields.yaml`, tạo một Pull Request với các trang tài liệu tham khảo API mới được tạo ra.
+
+## Khắc phục sự cố
+
+### Lỗi: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): tính năng này không khả dụng trong phiên bản Hugo hiện tại của bạn
+
+Hugo được cung cấp dưới dạng hai bộ công cụ nhị phân vì lý do kỹ thuật. Trang web hiện tại chạy dựa trên phiên bản **Hugo Extended** duy nhất. Trong [trang phát hành](https://github.com/gohugoio/hugo/releases), tìm kiếm các bản lưu trữ có chứa từ khóa `extended` trong tên. Để xác nhận, chạy `hugo version` và tìm từ khóa `extended`.
+
+### Khắc phục sự cố trên macOS với quá nhiều tệp mở
+
+Nếu bạn chạy `make serve` trên macOS và nhận được lỗi sau đây:
```bash
-make serve
+ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
+make: *** [serve] Error 1
```
-Câu lệnh trên sẽ khởi động server Hugo cục bộ trên cổng 1313. Mở trình duyệt và đến địa chỉ http://localhost:1313 để xem website. Khi bạn thay đổi các file nguồn, Hugo cập nhật website và buộc làm mới trình duyệt.
+Hãy kiểm tra giới hạn hiện tại cho số tệp mở:
-## Cộng đồng, thảo luận, đóng góp và hỗ trợ
+`launchctl limit maxfiles`
-Tìm hiểu cách tham gia với cộng đồng Kubernetes trên [trang cộng đồng](http://kubernetes.io/community/).
+Sau đó, chạy các lệnh sau (được thích nghi từ ):
-Bạn có thể tiếp cận những maintainers của dự án này tại:
+```shell
+#!/bin/sh
+
+# Đây là các liên kết gist gốc, liên kết đến các gist của tôi ngay bây giờ.
+# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
+# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
+
+curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
+curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
+
+sudo mv limit.maxfiles.plist /Library/LaunchDaemons
+sudo mv limit.maxproc.plist /Library/LaunchDaemons
+
+sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
+sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
+
+sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
+```
+
+Điều này hoạt động cho cả macOS Catalina và Mojave.
+
+## Tham gia với SIG Docs
+
+Tìm hiểu thêm về cộng đồng SIG Docs Kubernetes và cuộc họp trên [trang cộng đồng](https://github.com/kubernetes/community/tree/master/sig-docs#meetings).
+
+Bạn cũng có thể liên hệ với những người duy trì dự án này tại:
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
+ - [Nhận lời mời tham gia Slack này](https://slack.k8s.io/)
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
-### Quy tắc ứng xử
+## Đóng góp vào tài liệu
-Sự tham gia vào cộng đồng Kubernetes được điểu chỉnh bởi [Kubernetes Code of Conduct](code-of-conduct.md).
+Bạn có thể nhấp vào nút **Fork** ở phía trên bên phải của màn hình để tạo một bản sao của kho lưu trữ này trong tài khoản GitHub của bạn. Bản sao này được gọi là _fork_. Thực hiện bất kỳ thay đổi nào bạn muốn trong fork của bạn, và khi bạn sẵn sàng gửi những thay đổi đó cho chúng tôi, hãy vào fork của bạn và tạo một pull request mới để thông báo cho chúng tôi biết về nó.
-## Cảm ơn!
+Sau khi pull request của bạn được tạo, một người xem Kubernetes sẽ chịu trách nhiệm cung cấp phản hồi rõ ràng, có thể thực hiện được. Là chủ sở hữu của pull request, **bạn có trách nhiệm sửa đổi pull request của mình để giải quyết phản hồi đã được cung cấp cho bạn bởi người xem Kubernetes.**
-Kubernetes phát triển mạnh mẽ về sự tham gia của cộng đồng và chúng tôi đánh giá cao những đóng góp của bạn cho trang web và tài liệu của chúng tôi!
+Lưu ý rằng bạn có thể nhận được phản hồi từ nhiều người đánh giá Kubernetes hoặc bạn có thể nhận được phản hồi từ một người đánh giá Kubernetes khác với người được chỉ định ban đầu để cung cấp phản hồi.
+
+Hơn nữa, trong một số trường hợp, một trong những người đánh giá của bạn có thể yêu cầu một đánh giá kỹ thuật từ một người đánh giá kỹ thuật Kubernetes khi cần thiết. Người đánh giá sẽ cố gắng cung cấp phản hồi một cách kịp thời, nhưng thời gian phản hồi có thể thay đổi tùy thuộc vào các tình huống.
+
+Để biết thêm thông tin về việc đóng góp vào tài liệu Kubernetes, hãy xem:
+
+- [Đóng góp vào tài liệu Kubernetes](https://kubernetes.io/docs/contribute/)
+- [Loại nội dung trang](https://kubernetes.io/docs/contribute/style/page-content-types/)
+- [Hướng dẫn về phong cách tài liệu](https://kubernetes.io/docs/contribute/style/style-guide/)
+- [Dịch tài liệu Kubernetes](https://kubernetes.io/docs/contribute/localization/)
+- [Giới thiệu về tài liệu Kubernetes](https://www.youtube.com/watch?v=pprMgmNzDcw)
+
+### Đại sứ đóng góp mới
+
+Nếu bạn cần trợ giúp bất kỳ lúc nào khi đóng góp, [Đại sứ đóng góp mới](https://kubernetes.io/docs/contribute/advanced/#serve-as-a-new-contributor-ambassador) là điểm liên lạc tốt. Đây là những người phê duyệt SIG Docs có trách nhiệm hướng dẫn các đóng góp viên mới và giúp họ qua những pull request đầu tiên. Nơi tốt nhất để liên hệ với Đại sứ đóng góp mới là trên [Kubernetes Slack](https://slack.k8s.io/). Đại sứ đóng góp mới hiện tại cho SIG Docs:
+
+| Name | Slack | GitHub |
+| -------------------------- | -------------------------- | -------------------------- |
+| Arsh Sharma | @arsh | @RinkiyaKeDad |
+
+## Các tệp README đa ngôn ngữ
+
+| Language | Language |
+| -------------------------- | -------------------------- |
+| [Chinese](README-zh.md) | [Korean](README-ko.md) |
+| [French](README-fr.md) | [Polish](README-pl.md) |
+| [German](README-de.md) | [Portuguese](README-pt.md) |
+| [Hindi](README-hi.md) | [Russian](README-ru.md) |
+| [Indonesian](README-id.md) | [Spanish](README-es.md) |
+| [Italian](README-it.md) | [Ukrainian](README-uk.md) |
+| [Japanese](README-ja.md) | [Vietnamese](README-vi.md) |
+
+## Quy tắc ứng xử
+
+Sự tham gia vào cộng đồng Kubernetes được điều chỉnh bởi [Quy tắc ứng xử của CNCF](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
+
+## Cảm ơn bạn
+
+Kubernetes phát triển dựa trên sự tham gia của cộng đồng, và chúng tôi đánh giá cao những đóng góp của bạn cho trang web và tài liệu của chúng tôi!
\ No newline at end of file
diff --git a/data/i18n/vi/vi.toml b/data/i18n/vi/vi.toml
index d65c07a720..5c2d15f3a0 100644
--- a/data/i18n/vi/vi.toml
+++ b/data/i18n/vi/vi.toml
@@ -1,10 +1,16 @@
-# i18n strings for the Vietnamese (main) site.
+# Chuỗi i18n cho trang chủ tiếng Việt.
+
+[auto_generated_edit_notice]
+other = "(trang tự động tạo)"
+
+[auto_generated_pageinfo]
+other = """
Trang này được tạo tự động.
Nếu bạn có ý định báo cáo một vấn đề với trang này, hãy đề cập rằng trang này được tạo tự động trong mô tả vấn đề của bạn. Sửa lỗi có thể cần phải xảy ra ở một nơi khác trong dự án Kubernetes.
"""
[caution]
other = "Chú ý:"
[cleanup_heading]
-other = "Cleaning up"
+other = "Dọn dẹp"
[community_events_calendar]
other = "Lịch sự kiện"
@@ -27,23 +33,126 @@ other = "Twitter"
[community_youtube_name]
other = "YouTube"
+# Tránh sử dụng conjunction_1.
+# Phải phù hợp với ngữ cảnh trong layouts/shortcodes/release-data.html
+# Xuất hiện trên https://kubernetes.io/releases/
+# Ví dụ như "and" trong "Complete 1.25 Schedule and Changelog"
+[conjunction_1]
+other = "và"
+
+[cve_id]
+other = "ID CVE"
+
+[cve_issue_url]
+other = "URL Vấn đề GitHub CVE"
+
+[cve_summary]
+other = "Tóm tắt Vấn đề"
+
+[cve_table]
+other = "Danh sách CVE chính thức của Kubernetes"
+
+[cve_table_date_format]
+other = "02 Th01 2006 15:04:05 MST"
+
+[cve_table_date_format_string]
+other = "(cập nhật lần cuối: %s)"
+
+[deprecation_title]
+other = "Bạn đang xem tài liệu cho phiên bản Kubernetes:"
+
[deprecation_warning]
-other = " tài liệu này không còn được duy trì. Phiên bản đang xem hiện tại là một snapshot tĩnh. Để rõ hơn về tài liệu bản cập nhật, xem "
+other = " tài liệu này không còn được duy trì tích cực. Phiên bản bạn đang xem hiện là một bản chụp tĩnh. Để biết thông tin cập nhật, hãy xem "
[deprecation_file_warning]
-other = "Không dùng nữa"
+other = "Đã lạc thú"
+
+[outdated_content_title]
+other = "Thông tin trong tài liệu này có thể đã lạc thú"
+
+[outdated_content_message]
+other = "Tài liệu này có ngày cập nhật cũ hơn so với bản gốc, vì vậy thông tin mà nó chứa có thể đã lạc thú. Nếu bạn có thể đọc tiếng Anh, hãy xem phiên bản tiếng Anh để có thông tin mới nhất: "
+
+[dockershim_message]
+other = """Dockershim đã được loại bỏ khỏi dự án Kubernetes kể từ phiên bản 1.24. Đọc Dockershim Removal FAQ để biết thêm chi tiết."""
[docs_label_browse]
-other = "Duyệt tài liệu"
+other = "Duyệt Tài liệu"
[docs_label_contributors]
-other = "Người đóng góp"
+other = "Những Người đóng góp"
[docs_label_i_am]
other = "TÔI LÀ..."
[docs_label_users]
-other = "Users"
+other = "Người dùng"
+
+[docs_page_versions]
+other = "Trang %s này dành cho Kubernetes %s. Nếu bạn muốn sử dụng phiên bản Kubernetes khác, vui lòng tham khảo các trang sau đây thay vì:"
+
+[docs_version_current]
+other = "(tài liệu này)"
+
+[docs_version_latest_heading]
+other = "Phiên bản mới nhất"
+
+[docs_version_other_heading]
+other = "Phiên bản cũ"
+
+[end_of_life]
+other = "Kết thúc vòng đời:"
+
+[envvars_heading]
+other = "Biến môi trường"
+
+[error_404_were_you_looking_for]
+other = "Bạn có đang tìm kiếm:"
+
+[examples_heading]
+other = "Ví dụ"
+
+[feature_gate_stage_alpha]
+other = "Alpha"
+
+[feature_gate_stage_beta]
+other = "Beta"
+
+[feature_gate_stage_stable]
+other = "GA"
+
+[feature_gate_stage_deprecated]
+other = "Đã lạc thú"
+
+[feature_gate_table_header_default]
+other = "Mặc định"
+
+[feature_gate_table_header_feature]
+other = "Tính năng"
+
+[feature_gate_table_header_from]
+other = "Từ"
+
+[feature_gate_table_header_since]
+other = "Từ"
+
+[feature_gate_table_header_stage]
+other = "Giai đoạn"
+
+[feature_gate_table_header_to]
+other = "Đến"
+
+[feature_gate_table_header_until]
+other = "Đến"
+
+[feature_state]
+other = "TRẠNG THÁI TÍNH NĂNG:"
+
+[feature_state_kubernetes_label]
+other = "Kubernetes"
+
+[feature_state_feature_gate_tooltip]
+other = "Feature Gate:"
[feedback_heading]
other = "Phản hồi"
@@ -52,52 +161,146 @@ other = "Phản hồi"
other = "Không"
[feedback_question]
-other = "Trang này có hữu ích?"
+other = "Trang này có hữu ích không?"
[feedback_yes]
other = "Có"
+[final_patch_release]
+other = "Bản phát hành Patch cuối cùng"
+
+[inline_list_separator]
+other = ","
+
[input_placeholder_email_address]
other = "địa chỉ email"
+[javascript_required]
+other = "Cần [kích hoạt](https://www.enable-javascript.com/) JavaScript để xem nội dung này"
+
+[katacoda_message]
+other = """
Tắt các bài hướng dẫn tương tác
+
Các bài hướng dẫn tương tác trên trang web này đang bị tắt. Dự án Kubernetes
+hy vọng sẽ tái thiết lập một tùy chọn học tương tác tương tự trong dài hạn.
+
Quyết định tắt đó là kết quả của cuộc [sáp nhập](https://www.oreilly.com/content/oreilly-acquires-katacoda-and-a-new-way-for-2-5m-customers-to-learn/)
+của O'Reilly Media với Katacoda vào năm 2019.
+
Kubernetes rất biết ơn O'Reilly và Katacoda đã giúp đỡ nhiều người bắt đầu học Kubernetes.
"""
+
+[latest_release]
+other = "Bản phát hành mới nhất:"
+
[latest_version]
other = "phiên bản mới nhất."
+[layouts_blog_pager_next]
+other = "Tiếp theo >>"
+
[layouts_blog_pager_prev]
other = "<< Trước"
-[layouts_blog_pager_next]
-other = "Sau >>"
-
[layouts_case_studies_list_tell]
other = "Kể câu chuyện của bạn"
[layouts_docs_glossary_aka]
-other = "Cũng được biết đến như là"
+other = "Còn được biết đến là"
+
+[layout_docs_glossary_architecture_description]
+other = "Các thành phần bên trong của Kubernetes."
+
+[layout_docs_glossary_architecture_name]
+other = "Kiến trúc"
+
+[layouts_docs_glossary_click_details_after]
+other = "dưới đây để có một giải thích chi tiết hơn cho bất kỳ thuật ngữ cụ thể nào."
+
+[layouts_docs_glossary_click_details_before]
+other = "Nhấp vào"
+
+[layout_docs_glossary_community_description]
+other = "Liên quan đến sự phát triển mã nguồn mở của Kubernetes."
+
+[layout_docs_glossary_community_name]
+other = "Cộng đồng"
+
+[layout_docs_glossary_core-object_description]
+other = "Loại nguồn lực mà Kubernetes hỗ trợ theo mặc định."
+
+[layout_docs_glossary_core-object_name]
+other = "Đối tượng Core"
[layouts_docs_glossary_description]
-other = "Bảng chú giải này được kì vọng là một danh sách hoàn thiện, được chuẩn hóa về thuật ngữ Kubernetes. Nó bao gồm các thuật ngữ kỹ thuật dành riêng cho Kubernetes, cũng như các thuật ngữ chung hơn cung cấp ngữ cảnh hữu ích"
+other = "Bảng từ vựng này được thiết kế để là một danh sách toàn diện, chuẩn hóa các thuật ngữ của Kubernetes. Nó bao gồm các thuật ngữ kỹ thuật cụ thể cho Kubernetes, cũng như các thuật ngữ tổng quát mang lại ngữ cảnh hữu ích."
[layouts_docs_glossary_deselect_all]
other = "Bỏ chọn tất cả"
-[layouts_docs_glossary_click_details_after]
-other = "danh mục dưới đây để giải thích rõ hơn cho các thuật ngữ cụ thể"
+[layout_docs_glossary_extension_description]
+other = "Các tùy chỉnh được hỗ trợ của Kubernetes."
-[layouts_docs_glossary_click_details_before]
-other = "Click vào"
+[layout_docs_glossary_extension_name]
+other = "Phần mở rộng"
[layouts_docs_glossary_filter]
-other = "Lọc các thuật ngữ theo tags"
+other = "Lọc các thuật ngữ theo các thẻ của chúng"
+
+[layout_docs_glossary_fundamental_description]
+other = "Quan trọng đối với người dùng Kubernetes lần đầu tiên."
+
+[layout_docs_glossary_fundamental_name]
+other = "Cơ bản"
+
+[layout_docs_glossary_networking_description]
+other = "Cách các thành phần Kubernetes trò chuyện với nhau (và với các chương trình bên ngoài cụm)."
+
+[layout_docs_glossary_networking_name]
+other = "Mạng"
+
+[layout_docs_glossary_operation_description]
+other = "Bắt đầu và duy trì Kubernetes."
+
+[layout_docs_glossary_operation_name]
+other = "Hoạt động"
+
+[layout_docs_glossary_security_description]
+other = "Giữ cho các ứng dụng Kubernetes an toàn và bảo mật."
+
+[layout_docs_glossary_security_name]
+other = "Bảo mật"
[layouts_docs_glossary_select_all]
other = "Chọn tất cả"
+[layout_docs_glossary_storage_description]
+other = "Cách các ứng dụng Kubernetes xử lý dữ liệu lâu dài."
+
+[layout_docs_glossary_storage_name]
+other = "Lưu trữ"
+
+[layout_docs_glossary_tool_description]
+other = "Phần mềm giúp làm cho Kubernetes dễ sử dụng hoặc tốt hơn."
+
+[layout_docs_glossary_tool_name]
+other = "Công cụ"
+
+[layout_docs_glossary_user-type_description]
+other = "Đại diện cho một loại người dùng Kubernetes phổ biến."
+
+[layout_docs_glossary_user-type_name]
+other = "Loại Người dùng"
+
+[layout_docs_glossary_workload_description]
+other = "Các ứng dụng đang chạy trên Kubernetes."
+
+[layout_docs_glossary_workload_name]
+other = "Khối công việc"
+
[layouts_docs_partials_feedback_improvement]
-other = "đề xuất cải tiến"
+other = "đề xuất một cải tiến"
[layouts_docs_partials_feedback_issue]
-other = "Tạo một issue trên Github repo nến bạn muốn "
+other = """Mở một vấn đề trong [Kho GitHub](https://www.github.com/kubernetes/website/) nếu bạn muốn """
[layouts_docs_partials_feedback_or]
other = "hoặc"
@@ -106,16 +309,24 @@ other = "hoặc"
other = "báo cáo một vấn đề"
[layouts_docs_partials_feedback_thanks]
-other = "Cảm ơn vì đã phản hồi. Nếu bạn có một câu hỏi cụ thể, có thể trả lời về cách sử dụng Kubernetes, hãy hỏi nó trên"
+other = "Cảm ơn bạn đã phản hồi. Nếu bạn có một câu hỏi cụ thể và có thể trả lời về cách sử dụng Kubernetes, hãy đặt nó trên"
[layouts_docs_search_fetching]
-other = "Đang lấy kết quả..."
+other = "Đang tìm kết quả..."
+
+[legacy_repos_message]
+other = """Các kho lưu trữ gói cũ (`apt.kubernetes.io` và `yum.kubernetes.io`) đã bị
+[lạc thú và đóng băng từ ngày 13 tháng 9, 2023](/blog/2023/08/31/legacy-package-repository-deprecation/).
+**Sử dụng [các kho lưu trữ mới được đặt tại `pkgs.k8s.io`](/blog/2023/08/15/pkgs-k8s-io-introduction/)
+được khuyến nghị mạnh mẽ và yêu cầu để cài đặt các phiên bản Kubernetes phát hành sau ngày 13 tháng 9, 2023.**
+Các kho cũ đã lạc thú, và nội dung của chúng, có thể bị xóa bất kỳ lúc nào trong tương lai và mà không có
+thêm thông báo. Các kho lưu trữ mới cung cấp tải về cho các phiên bản Kubernetes bắt đầu từ v1.24.0."""
[main_by]
other = "bởi"
[main_cncf_project]
-other = """Chúng tôi là một dự án CNCF
"""
+other = """Chúng tôi là một dự án tốt nghiệp từ CNCF"""
[main_community_explore]
other = "Khám phá cộng đồng"
@@ -124,40 +335,34 @@ other = "Khám phá cộng đồng"
other = "Đóng góp"
[main_copyright_notice]
-other = """The Linux Foundation ®. Đã đăng ký Bản quyền. The Linux Foundation đã đăng ký và sử dụng nhãn hiệu. Để biết danh sách các nhãn hiệu của The Linux Foundation, xem Trademark Usage page"""
+other = """The Linux Foundation ®. Tất cả các quyền được bảo lưu. The Linux Foundation đã đăng ký thương hiệu và sử dụng thương hiệu. Để xem danh sách các thương hiệu của The Linux Foundation, vui lòng xem trang Sử dụng Thương hiệu của chúng tôi"""
[main_documentation_license]
-other = """Các tác giả Kubernetes | Tài liệu được phân phối theo CC BY 4.0"""
-
-[main_edit_this_page]
-other = "Sửa trang này"
-
-[main_github_create_an_issue]
-other = "Tạo một Issue"
+other = """Tác giả Kubernetes | Tài liệu phân phối dưới CC BY 4.0"""
[main_github_invite]
-other = "Quan tâm đến việc hacking mã nguồn Kubernetes?"
+other = "Có quan tâm đến việc đóng góp vào mã nguồn chính của Kubernetes?"
[main_github_view_on]
other = "Xem trên GitHub"
[main_kubernetes_features]
-other = "Các tính năng của Kubernetes"
+other = "Tính năng Kubernetes"
[main_kubeweekly_baseline]
-other = "Muốn nhận những tin tức Kubernetes mới nhất? Đăng kí KubeWeekly."
+other = "Muốn nhận tin tức Kubernetes mới nhất không? Đăng ký KubeWeekly."
[main_kubernetes_past_link]
-other = "Xem các bản tin trước đây"
+other = "Xem những bản tin trước đó"
[main_kubeweekly_signup]
-other = "Đăng kí"
+other = "Đăng ký"
[main_page_history]
-other ="Lịch sử trang"
+other ="Lịch sử Trang"
[main_page_last_modified_on]
-other = "Trang được sửa lần cuồi vào"
+other = "Trang được chỉnh sửa lần cuối vào"
[main_read_about]
other = "Đọc về"
@@ -165,33 +370,202 @@ other = "Đọc về"
[main_read_more]
other = "Đọc thêm"
+[not_applicable]
+# Đội dịch thuật: Có thể sử dụng một đoạn văn bản dài hơn ở đây
+other = "n/a"
+
[note]
-other = "Ghi chú:"
+other = "Lưu ý:"
[objectives_heading]
other = "Mục tiêu"
+[options_heading]
+other = "Tùy chọn"
+
+[outdated_blog__message]
+other = "Bài viết này đã có hơn một năm. Các bài viết cũ có thể chứa thông tin lạc thú. Hãy kiểm tra xem thông tin trong trang có không chính xác so với thời điểm xuất bản."
+
+[patch_release]
+other = "Bản Phát hành Patch"
+
+[post_create_issue]
+other = "Tạo một vấn đề"
+
[prerequisites_heading]
-other = "Trước khi bắt đầu"
+other = "Trước khi bạn bắt đầu"
+
+[previous_patches]
+other = "Bản Phát hành Patch:"
+
+# Đoạn văn bản sau đây được hiển thị khi JavaScript không khả dụng.
+[release_binary_alternate_links]
+other = """Bạn có thể tìm liên kết để tải các thành phần Kubernetes (và checksum của chúng) trong các tệp [CHANGELOG](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG).
+Hoặc sử dụng [downloadkubernetes.com](https://www.downloadkubernetes.com/) để lọc theo phiên bản và kiến trúc."""
+
+[release_binary_arch]
+other = "Kiến trúc"
+
+[release_binary_arch_option]
+other = "Kiến trúc"
+
+[release_binary_copy_link]
+other = "Sao chép Liên kết"
+
+[release_binary_copy_link_certifcate]
+other = "cert"
+
+[release_binary_copy_link_checksum]
+other = "checksum"
+
+[release_binary_copy_link_signature]
+other = "signature"
+
+[release_binary_copy_link_tooltip]
+other = "sao chép vào bảng tạm"
+
+[release_binary_download]
+other = "Tải về Tệp Nhị phân"
+
+[release_binary_download_tooltip]
+other = "tải về tệp nhị phân"
+
+[release_binary_options]
+other = "Tùy chọn Tải về"
+
+[release_binary_os]
+other = "Hệ điều hành"
+
+[release_binary_os_option]
+other = "Hệ điều hành"
+
+[release_binary_os_darwin]
+other = "darwin"
+
+[release_binary_os_linux]
+other = "linux"
+
+[release_binary_os_windows]
+other = "windows"
+
+[release_binary_table_caption]
+other = "Tải về các tệp nhị phân của thành phần Kubernetes"
+
+# NOTE: là một chỗ giữ chỗ cho số phiên bản thực tế được đặt bởi shortcode 'release-binaries'.
+# Vui lòng không dịch hoặc sửa đổi chỗ giữ chỗ .
+
+[release_binary_section]
+other = """Bạn có thể tìm các liên kết để tải về các thành phần Kubernetes (kèm theo checksum của chúng) dưới đây.
+Để truy cập các phiên bản cũ được hỗ trợ, hãy truy cập liên kết tài liệu tương ứng
+đối với [các phiên bản cũ](https://kubernetes.io/docs/home/supported-doc-versions/#versions-older) hoặc sử dụng [downloadkubernetes.com](https://www.downloadkubernetes.com/)."""
+
+# NOTE: và là chỗ giữ chỗ được đặt bởi shortcode 'release-binaries'.
+# Vui lòng không dịch hoặc sửa đổi chỗ giữ chỗ và .
+
+[release_binary_section_note]
+other = """Để tải các phiên bản path cũ của các thành phần Kubernetes (và checksum của chúng),
+vui lòng tham khảo tệp [CHANGELOG](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG/CHANGELOG-.md)."""
+
+[release_binary_version]
+other = "Phiên bản"
+
+[release_binary_version_option]
+other = "Phiên bản Mới Nhất"
+
+[release_date_after]
+other = ")"
+
+[release_date_before]
+other = "(phát hành ngày: "
+
+# Xem https://gohugo.io/functions/format/#gos-layout-string
+# Sử dụng định dạng phù hợp với khu vực của bạn
+[release_date_format]
+other = "2006-01-02"
+
+[release_cherry_pick_deadline]
+other = "Thời Hạn Chọn Cherries"
+
+[release_end_of_life_date]
+other = "Ngày Kết Thúc Vòng Đời"
+
+[release_full_details_initial_text]
+other = "Đầy Đủ"
+
+[release_information_navbar]
+other = "Thông Tin Phát Hành"
+
+[release_minor_version]
+other = "Phiên Bản Nhỏ"
+
+[release_info_next_patch]
+other = "Bản phát hành patch tiếp theo là **%s**."
+
+# Ghi chú về phiên dịch: Bạn có thể sử dụng Markdown ở đây.
+# Ba chỗ giữ chỗ (theo thứ tự) là:
+# Phiên bản nhỏ của Kubernetes
+# Ngày chế độ bảo trì
+# Ngày kết thúc vòng đời
+#
+# Giữ thứ tự này. Có thể sử dụng nhiều hơn một câu, và cũng có thể thay đổi
+# thì của văn bản miễn là ý nghĩa là rõ ràng.
+[release_info_eol]
+other = "**%s** bắt đầu chế độ bảo trì vào ngày **%s** và Kết thúc Vòng đời vào ngày **%s**."
+
+[release_note]
+other = "Ghi chú"
+
+[release_schedule]
+other = "Lịch Trình"
+
+[release_target_date]
+other = "Ngày Đích"
+
+[release_changelog]
+other = "Changelog"
+
+[seealso_heading]
+other = "Xem Thêm"
[subscribe_button]
-other = "Đăng ký"
+other = "Đăng Ký"
+
+[synopsis_heading]
+other = "Tóm Tắt"
+
+[thirdparty_message]
+other = """Phần này liên kết đến các dự án bên thứ ba cung cấp chức năng được yêu cầu bởi Kubernetes. Tác giả dự án Kubernetes không chịu trách nhiệm về những dự án này, được liệt kê theo thứ tự chữ cái. Để thêm một dự án vào danh sách này, đọc hướng dẫn nội dung trước khi gửi thay đổi. Thêm thông tin."""
+
+[thirdparty_message_edit_disclaimer]
+other="""Lời khuyên về nội dung của bên thứ ba"""
+
+
+[thirdparty_message_single_item]
+other = """🛇 Mục này liên kết đến một dự án hoặc sản phẩm bên thứ ba không phải là một phần của Kubernetes chính. Thông tin thêm"""
+[thirdparty_message_disclaimer]
+other = """
Các mục trên trang này đề cập đến các sản phẩm hoặc dự án bên thứ ba cung cấp chức năng được yêu cầu bởi Kubernetes. Tác giả dự án Kubernetes không chịu trách nhiệm đối với những sản phẩm hoặc dự án của bên thứ ba đó. Xem hướng dẫn trang web CNCF để biết thêm chi tiết.
Bạn nên đọc hướng dẫn nội dung trước khi đề xuất một thay đổi thêm một liên kết bên thứ ba nữa.
"""
+
+[thirdparty_message_vendor]
+other = """Các mục trên trang này đề cập đến các nhà cung cấp bên ngoài Kubernetes. Tác giả dự án Kubernetes không chịu trách nhiệm đối với những sản phẩm hoặc dự án của bên thứ ba đó. Để thêm một nhà cung cấp, sản phẩm hoặc dự án vào danh sách này, đọc hướng dẫn nội dung trước khi gửi thay đổi. Thông tin thêm."""
+
[ui_search_placeholder]
-other = "Tìm kiếm"
+other = "Tìm kiếm trên trang này"
[version_check_mustbe]
-other = "Server Kubernetes của bạn phải ở phiên bản "
+other = "Máy chủ Kubernetes của bạn phải là phiên bản "
[version_check_mustbeorlater]
-other = "Server Kubernetes của bạn ở phiên bản mới hơn hoặc tại phiên bản "
+other = "Máy chủ Kubernetes của bạn phải là phiên bản từ hoặc sau phiên bản "
[version_check_tocheck]
other = "Để kiểm tra phiên bản, nhập "
+[version_menu]
+other = "Phiên bản"
+
[warning]
other = "Cảnh báo:"
[whatsnext_heading]
-other = "Có gì tiếp theo"
-
+other = "Tiếp theo là gì"
\ No newline at end of file
From 354260f1e474d5c5765fecdb4be97b095a3503bf Mon Sep 17 00:00:00 2001
From: windsonsea
Date: Fri, 23 Feb 2024 10:24:15 +0800
Subject: [PATCH 05/24] [zh] Sync /kubectl/kubectl.md
---
.../zh-cn/docs/reference/kubectl/kubectl.md | 193 +++++++++---------
1 file changed, 101 insertions(+), 92 deletions(-)
diff --git a/content/zh-cn/docs/reference/kubectl/kubectl.md b/content/zh-cn/docs/reference/kubectl/kubectl.md
index a1b639e107..09d6bdfe5e 100644
--- a/content/zh-cn/docs/reference/kubectl/kubectl.md
+++ b/content/zh-cn/docs/reference/kubectl/kubectl.md
@@ -17,11 +17,11 @@ kubectl controls the Kubernetes cluster manager.
kubectl 管理控制 Kubernetes 集群。
-获取更多信息,请访问 [kubectl 概述](/zh-cn/docs/reference/kubectl/)。
+更多信息请查阅[命令行工具](/zh-cn/docs/kubectl/)(`kubectl`)。
-```
+```shell
kubectl [flags]
```
@@ -321,7 +321,9 @@ kubectl [flags]
-
+
如果为 true,则只将日志写入初始严重级别(而不是同时写入所有较低的严重级别)。
@@ -560,104 +562,111 @@ When set to true, the kubectl exec, cp, and attach commands will attempt to stre
## {{% heading "seealso" %}}
-* [kubectl annotate](/docs/reference/generated/kubectl/kubectl-commands#annotate) - 更新资源所关联的注解
-* [kubectl api-resources](/docs/reference/generated/kubectl/kubectl-commands#api-resources) - 打印服务器上所支持的 API 资源
-* [kubectl api-versions](/docs/reference/generated/kubectl/kubectl-commands#api-versions) - 以“组/版本”的格式输出服务端所支持的 API 版本
-* [kubectl apply](/docs/reference/generated/kubectl/kubectl-commands#apply) - 基于文件名或标准输入,将新的配置应用到资源上
-* [kubectl attach](/docs/reference/generated/kubectl/kubectl-commands#attach) - 连接到一个正在运行的容器
+* [kubectl annotate](/zh-cn/docs/reference/kubectl/generated/kubectl_annotate/) - 更新资源所关联的注解
+* [kubectl api-resources](/docs/reference/kubectl/generated/kubectl_api-resources/) - 打印服务器上所支持的 API 资源
+* [kubectl api-versions](/docs/reference/kubectl/generated/kubectl_api-versions/) - 以“组/版本”的格式输出服务端所支持的 API 版本
+* [kubectl apply](/docs/reference/kubectl/generated/kubectl_apply/) - 基于文件名或标准输入,将新的配置应用到资源上
+* [kubectl attach](/docs/reference/kubectl/generated/kubectl_attach/) - 挂接到一个正在运行的容器
-* [kubectl auth](/docs/reference/generated/kubectl/kubectl-commands#auth) - 检查授权信息
-* [kubectl autoscale](/docs/reference/generated/kubectl/kubectl-commands#autoscale) - 对一个资源对象(Deployment、ReplicaSet 或 ReplicationController )进行扩缩
-* [kubectl certificate](/docs/reference/generated/kubectl/kubectl-commands#certificate) - 修改证书资源
-* [kubectl cluster-info](/docs/reference/generated/kubectl/kubectl-commands#cluster-info) - 显示集群信息
-* [kubectl completion](/docs/reference/generated/kubectl/kubectl-commands#completion) - 根据已经给出的 Shell(bash 或 zsh),输出 Shell 补全后的代码
-* [kubectl config](/docs/reference/generated/kubectl/kubectl-commands#config) - 修改 kubeconfig 配置文件
+* [kubectl auth](/docs/reference/kubectl/generated/kubectl_auth/) - 检查授权信息
+* [kubectl autoscale](/docs/reference/kubectl/generated/kubectl_autoscale/) - 对一个资源对象
+ (Deployment、ReplicaSet 或 ReplicationController)进行自动扩缩
+* [kubectl certificate](/docs/reference/kubectl/generated/kubectl_certificate/) - 修改证书资源
+* [kubectl cluster-info](/docs/reference/kubectl/generated/kubectl_cluster-info/) - 显示集群信息
+* [kubectl completion](/docs/reference/kubectl/generated/kubectl_completion/) - 根据已经给出的 Shell(bash 或 zsh),
+ 输出 Shell 补全后的代码
+* [kubectl config](/docs/reference/kubectl/generated/kubectl_config/) - 修改 kubeconfig 配置文件
-* [kubectl convert](/docs/reference/generated/kubectl/kubectl-commands#convert) - 在不同的 API 版本之间转换配置文件
-* [kubectl cordon](/docs/reference/generated/kubectl/kubectl-commands#cordon) - 标记节点为不可调度的
-* [kubectl cp](/docs/reference/generated/kubectl/kubectl-commands#cp) - 将文件和目录拷入/拷出容器
-* [kubectl create](/docs/reference/generated/kubectl/kubectl-commands#create) - 通过文件或标准输入来创建资源
-* [kubectl debug](/docs/reference/generated/kubectl/kubectl-commands#debug) - 创建用于排查工作负载和节点故障的调试会话
-* [kubectl delete](/docs/reference/generated/kubectl/kubectl-commands#delete) - 通过文件名、标准输入、资源和名字删除资源,或者通过资源和标签选择算符来删除资源
+* [kubectl cordon](/docs/reference/kubectl/generated/kubectl_cordon/) - 标记节点为不可调度的
+* [kubectl cp](/docs/reference/kubectl/generated/kubectl_cp/) - 将文件和目录拷入/拷出容器
+* [kubectl create](/docs/reference/kubectl/generated/kubectl_create/) - 通过文件或标准输入来创建资源
+* [kubectl debug](/docs/reference/kubectl/generated/kubectl_debug/) - 创建用于排查工作负载和节点故障的调试会话
+* [kubectl delete](/docs/reference/kubectl/generated/kubectl_delete/) - 通过文件名、标准输入、资源和名字删除资源,
+ 或者通过资源和标签选择算符来删除资源
-* [kubectl describe](/docs/reference/generated/kubectl/kubectl-commands#describe) - 显示某个资源或某组资源的详细信息
-* [kubectl diff](/docs/reference/generated/kubectl/kubectl-commands#diff) - 显示目前版本与将要应用的版本之间的差异
-* [kubectl drain](/docs/reference/generated/kubectl/kubectl-commands#drain) - 腾空节点,准备维护
-* [kubectl edit](/docs/reference/generated/kubectl/kubectl-commands#edit) - 修改服务器上的某资源
-* [kubectl events](/docs/reference/generated/kubectl/kubectl-commands#events) - 列举事件
-* [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands#exec) - 在容器中执行相关命令
-* [kubectl explain](/docs/reference/generated/kubectl/kubectl-commands#explain) - 显示资源文档说明
-* [kubectl expose](/docs/reference/generated/kubectl/kubectl-commands#expose) - 给定副本控制器、服务、Deployment 或 Pod,将其暴露为新的 kubernetes Service
+* [kubectl describe](/docs/reference/kubectl/generated/kubectl_describe/) - 显示某个资源或某组资源的详细信息
+* [kubectl diff](/docs/reference/kubectl/generated/kubectl_diff/) - 显示目前版本与将要应用的版本之间的差异
+* [kubectl drain](/docs/reference/kubectl/generated/kubectl_drain/) - 腾空节点,准备维护
+* [kubectl edit](/docs/reference/kubectl/generated/kubectl_edit/) - 修改服务器上的某资源
+* [kubectl events](/docs/reference/kubectl/generated/kubectl_events/) - 列举事件
+* [kubectl exec](/docs/reference/kubectl/generated/kubectl_exec/) - 在容器中执行相关命令
+* [kubectl explain](/docs/reference/kubectl/generated/kubectl_explain/) - 显示资源文档说明
+* [kubectl expose](/docs/reference/kubectl/generated/kubectl_expose/) - 给定副本控制器、服务、Deployment 或 Pod,
+ 将其暴露为新的 kubernetes Service
-* [kubectl get](/docs/reference/generated/kubectl/kubectl-commands#get) - 显示一个或者多个资源信息
-* [kubectl kustomize](/docs/reference/generated/kubectl/kubectl-commands#kustomize) - 从目录或远程 URL 中构建 kustomization
-* [kubectl label](/docs/reference/generated/kubectl/kubectl-commands#label) - 更新资源的标签
-* [kubectl logs](/docs/reference/generated/kubectl/kubectl-commands#logs) - 输出 Pod 中某容器的日志
-* [kubectl options](/docs/reference/generated/kubectl/kubectl-commands#options) - 打印所有命令都支持的共有参数列表
-* [kubectl patch](/docs/reference/generated/kubectl/kubectl-commands#patch) - 基于策略性合并修补(Stategic Merge Patch)规则更新某资源中的字段
+* [kubectl get](/docs/reference/kubectl/generated/kubectl_get/) - 显示一个或者多个资源信息
+* [kubectl kustomize](/docs/reference/kubectl/generated/kubectl_kustomize/) - 从目录或远程 URL 中构建 kustomization
+* [kubectl label](/docs/reference/kubectl/generated/kubectl_label/) - 更新资源的标签
+* [kubectl logs](/docs/reference/kubectl/generated/kubectl_logs/) - 输出 Pod 中某容器的日志
+* [kubectl options](/docs/reference/kubectl/generated/kubectl_options/) - 打印所有命令都支持的共有参数列表
+* [kubectl patch](/docs/reference/kubectl/generated/kubectl_patch/) - 更新某资源中的字段
-* [kubectl plugin](/docs/reference/generated/kubectl/kubectl-commands#plugin) - 运行命令行插件
-* [kubectl port-forward](/docs/reference/generated/kubectl/kubectl-commands#port-forward) - 将一个或者多个本地端口转发到 Pod
-* [kubectl proxy](/docs/reference/generated/kubectl/kubectl-commands#proxy) - 运行一个 kubernetes API 服务器代理
-* [kubectl replace](/docs/reference/generated/kubectl/kubectl-commands#replace) - 基于文件名或标准输入替换资源
-* [kubectl rollout](/docs/reference/generated/kubectl/kubectl-commands#rollout) - 管理资源的上线
-* [kubectl run](/docs/reference/generated/kubectl/kubectl-commands#run) - 在集群中使用指定镜像启动容器
+* [kubectl plugin](/docs/reference/kubectl/generated/kubectl_plugin/) - 运行命令行插件
+* [kubectl port-forward](/docs/reference/kubectl/generated/kubectl_port-forward/) - 将一个或者多个本地端口转发到 Pod
+* [kubectl proxy](/docs/reference/kubectl/generated/kubectl_proxy/) - 运行一个 kubernetes API 服务器代理
+* [kubectl replace](/docs/reference/kubectl/generated/kubectl_replace/) - 基于文件名或标准输入替换资源
+* [kubectl rollout](/docs/reference/kubectl/generated/kubectl_rollout/) - 管理资源的上线
+* [kubectl run](/docs/reference/kubectl/generated/kubectl_run/) - 在集群中使用指定镜像启动容器
-* [kubectl scale](/docs/reference/generated/kubectl/kubectl-commands#scale) - 为一个 Deployment、ReplicaSet 或 ReplicationController 设置一个新的规模值
-* [kubectl set](/docs/reference/generated/kubectl/kubectl-commands#set) - 为对象设置功能特性
-* [kubectl taint](/docs/reference/generated/kubectl/kubectl-commands#taint) - 在一个或者多个节点上更新污点配置
-* [kubectl top](/docs/reference/generated/kubectl/kubectl-commands#top) - 显示资源(CPU/内存/存储)使用率
-* [kubectl uncordon](/docs/reference/generated/kubectl/kubectl-commands#uncordon) - 标记节点为可调度的
-* [kubectl version](/docs/reference/generated/kubectl/kubectl-commands#version) - 打印客户端和服务器的版本信息
-* [kubectl wait](/docs/reference/generated/kubectl/kubectl-commands#wait) - 实验级特性:等待一个或多个资源达到某种状态
+* [kubectl scale](/docs/reference/kubectl/generated/kubectl_scale/) - 为一个 Deployment、ReplicaSet 或
+ ReplicationController 设置一个新的规模值
+* [kubectl set](/docs/reference/kubectl/generated/kubectl_set/) - 为对象设置功能特性
+* [kubectl taint](/docs/reference/kubectl/generated/kubectl_taint/) - 在一个或者多个节点上更新污点配置
+* [kubectl top](/docs/reference/kubectl/generated/kubectl_top/) - 显示资源(CPU/内存/存储)使用率
+* [kubectl uncordon](/docs/reference/kubectl/generated/kubectl_uncordon/) - 标记节点为可调度的
+* [kubectl version](/docs/reference/kubectl/generated/kubectl_version/) - 打印客户端和服务器的版本信息
+* [kubectl wait](/docs/reference/kubectl/generated/kubectl_wait/) - 实验级特性:等待一个或多个资源达到某种状态
From bef31e2091435265ddfdd1d82bbb4f62966637cf Mon Sep 17 00:00:00 2001
From: xin gu <418294249@qq.com>
Date: Wed, 21 Feb 2024 22:20:22 +0800
Subject: [PATCH 06/24] sync style-guide kube-scheduler-config.v1 slis
Update slis.md
---
content/zh-cn/docs/contribute/style/style-guide.md | 2 +-
.../reference/config-api/kube-scheduler-config.v1.md | 10 ++--------
content/zh-cn/docs/reference/instrumentation/slis.md | 2 +-
3 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/content/zh-cn/docs/contribute/style/style-guide.md b/content/zh-cn/docs/contribute/style/style-guide.md
index 359a654189..962559b3ef 100644
--- a/content/zh-cn/docs/contribute/style/style-guide.md
+++ b/content/zh-cn/docs/contribute/style/style-guide.md
@@ -317,7 +317,7 @@ Run the process as a DaemonSet in the `kube-system` namespace. | Run the process
{{< table caption = "Do and Don't - Use code style for Kubernetes command tool and component names" >}}
Do | Don't
:--| :-----
-The kubelet preserves node stability. | The `kubelet` preserves node stability.
+The `kubelet` preserves node stability. | The `kubelet` preserves node stability.
The `kubectl` handles locating and authenticating to the API server. | The kubectl handles locating and authenticating to the apiserver.
Run the process with the certificate, `kube-apiserver --client-ca-file=FILENAME`. | Run the process with the certificate, kube-apiserver --client-ca-file=FILENAME. |
{{< /table >}}
diff --git a/content/zh-cn/docs/reference/config-api/kube-scheduler-config.v1.md b/content/zh-cn/docs/reference/config-api/kube-scheduler-config.v1.md
index 636c76269a..8ec219a90e 100644
--- a/content/zh-cn/docs/reference/config-api/kube-scheduler-config.v1.md
+++ b/content/zh-cn/docs/reference/config-api/kube-scheduler-config.v1.md
@@ -32,8 +32,6 @@ auto_generated: true
-->
**出现在:**
-- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
-
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
**出现在:**
-- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
-
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
**出现在:**
-- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
-
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
-{{< feature-state for_k8s_version="v1.27" state="beta" >}}
+{{< feature-state for_k8s_version="v1.29" state="stable" >}}
@@ -57,7 +57,7 @@ This section covers starting a single-node and multi-node etcd cluster.
### Single-node etcd cluster
-Use a single-node etcd cluster only for testing purpose.
+Use a single-node etcd cluster only for testing purposes.
1. Run the following:
@@ -144,8 +144,8 @@ ETCDCTL_API=3 etcdctl --endpoints 10.2.0.9:2379 \
### Limiting access of etcd clusters
-After configuring secure communication, restrict the access of etcd cluster to
-only the Kubernetes API servers. Use TLS authentication to do so.
+After configuring secure communication, restrict the access of the etcd cluster to
+only the Kubernetes API servers using TLS authentication.
For example, consider key pairs `k8sclient.key` and `k8sclient.cert` that are
trusted by the CA `etcd.ca`. When etcd is configured with `--client-cert-auth`
@@ -160,9 +160,7 @@ flags `--etcd-certfile=k8sclient.cert`, `--etcd-keyfile=k8sclient.key` and
`--etcd-cafile=ca.cert`.
{{< note >}}
-etcd authentication is not currently supported by Kubernetes. For more
-information, see the related issue
-[Support Basic Auth for Etcd v2](https://github.com/kubernetes/kubernetes/issues/23398).
+etcd authentication is not planned for Kubernetes.
{{< /note >}}
## Replacing a failed etcd member
@@ -203,9 +201,9 @@ replace it with `member4=http://10.0.0.4`.
etcd.
1. Stop the etcd server on the broken node. It is possible that other
- clients besides the Kubernetes API server is causing traffic to etcd
+ clients besides the Kubernetes API server are causing traffic to etcd
and it is desirable to stop all traffic to prevent writes to the data
- dir.
+ directory.
1. Remove the failed member:
@@ -256,10 +254,10 @@ For more information on cluster reconfiguration, see
## Backing up an etcd cluster
-All Kubernetes objects are stored on etcd. Periodically backing up the etcd
+All Kubernetes objects are stored in etcd. Periodically backing up the etcd
cluster data is important to recover Kubernetes clusters under disaster
scenarios, such as losing all control plane nodes. The snapshot file contains
-all the Kubernetes states and critical information. In order to keep the
+all the Kubernetes state and critical information. In order to keep the
sensitive Kubernetes data safe, encrypt the snapshot files.
Backing up an etcd cluster can be accomplished in two ways: etcd built-in
@@ -267,14 +265,14 @@ snapshot and volume snapshot.
### Built-in snapshot
-etcd supports built-in snapshot. A snapshot may either be taken from a live
+etcd supports built-in snapshot. A snapshot may either be created from a live
member with the `etcdctl snapshot save` command or by copying the
`member/snap/db` file from an etcd
[data directory](https://etcd.io/docs/current/op-guide/configuration/#--data-dir)
-that is not currently used by an etcd process. Taking the snapshot will
+that is not currently used by an etcd process. Creating the snapshot will
not affect the performance of the member.
-Below is an example for taking a snapshot of the keyspace served by
+Below is an example for creating a snapshot of the keyspace served by
`$ENDPOINT` to the file `snapshot.db`:
```shell
@@ -298,19 +296,19 @@ ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshot.db
### Volume snapshot
If etcd is running on a storage volume that supports backup, such as Amazon
-Elastic Block Store, back up etcd data by taking a snapshot of the storage
+Elastic Block Store, back up etcd data by creating a snapshot of the storage
volume.
### Snapshot using etcdctl options
-We can also take the snapshot using various options given by etcdctl. For example
+We can also create the snapshot using various options given by etcdctl. For example:
```shell
ETCDCTL_API=3 etcdctl -h
```
-will list various options available from etcdctl. For example, you can take a snapshot by specifying
-the endpoint, certificates etc as shown below:
+will list various options available from etcdctl. For example, you can create a snapshot by specifying
+the endpoint, certificates and key as shown below:
```shell
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
@@ -324,7 +322,7 @@ where `trusted-ca-file`, `cert-file` and `key-file` can be obtained from the des
Scaling out etcd clusters increases availability by trading off performance.
Scaling does not increase cluster performance nor capability. A general rule
is not to scale out or in etcd clusters. Do not configure any auto scaling
-groups for etcd clusters. It is highly recommended to always run a static
+groups for etcd clusters. It is strongly recommended to always run a static
five-member etcd cluster for production Kubernetes clusters at any officially
supported scale.
@@ -337,7 +335,7 @@ for information on how to add members into an existing cluster.
etcd supports restoring from snapshots that are taken from an etcd process of
the [major.minor](http://semver.org/) version. Restoring a version from a
-different patch version of etcd also is supported. A restore operation is
+different patch version of etcd is also supported. A restore operation is
employed to recover the data of a failed cluster.
Before starting the restore operation, a snapshot file must be present. It can
@@ -358,12 +356,12 @@ export ETCDCTL_API=3
etcdctl --data-dir snapshot restore snapshot.db
```
-If `` is the same folder as before, delete it and stop etcd process before restoring the cluster. Else change etcd configuration and restart the etcd process after restoration to make it use the new data directory.
+If `` is the same folder as before, delete it and stop the etcd process before restoring the cluster. Otherwise, change etcd configuration and restart the etcd process after restoration to have it use the new data directory.
For more information and examples on restoring a cluster from a snapshot file, see
[etcd disaster recovery documentation](https://etcd.io/docs/current/op-guide/recovery/#restoring-a-cluster).
-If the access URLs of the restored cluster is changed from the previous
+If the access URLs of the restored cluster are changed from the previous
cluster, the Kubernetes API server must be reconfigured accordingly. In this
case, restart Kubernetes API servers with the flag
`--etcd-servers=$NEW_ETCD_CLUSTER` instead of the flag
@@ -408,9 +406,9 @@ For more details on etcd maintenance, please refer to the [etcd maintenance](htt
{{% thirdparty-content single="true" %}}
{{< note >}}
-Defragmentation is an expensive operation, so it should be executed as infrequent
+Defragmentation is an expensive operation, so it should be executed as infrequently
as possible. On the other hand, it's also necessary to make sure any etcd member
-will not run out of the storage quota. The Kubernetes project recommends that when
+will not exceed the storage quota. The Kubernetes project recommends that when
you perform defragmentation, you use a tool such as [etcd-defrag](https://github.com/ahrtr/etcd-defrag).
You can also run the defragmentation tool as a Kubernetes CronJob, to make sure that
From a5572b3755005ecae98fe2e664ae815f7c49c234 Mon Sep 17 00:00:00 2001
From: Arhell
Date: Sat, 24 Feb 2024 07:51:17 +0200
Subject: [PATCH 08/24] [ko] Fix broken link
---
.../network-policy-provider/weave-network-policy.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/content/ko/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy.md b/content/ko/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy.md
index 9c99014c1f..c032d941c7 100644
--- a/content/ko/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy.md
+++ b/content/ko/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy.md
@@ -19,12 +19,12 @@ weight: 50
## Weave Net 애드온을 설치한다
-[애드온을 통한 쿠버네티스 통합하기](https://www.weave.works/docs/net/latest/kubernetes/kube-addon/) 가이드를 따른다.
+[애드온을 통한 쿠버네티스 통합하기](https://github.com/weaveworks/weave/blob/master/site/kubernetes/kube-addon.md#-installation) 가이드를 따른다.
쿠버네티스의 위브넷 애드온은 쿠버네티스의 모든 네임스페이스의
네크워크 정책 어노테이션을 자동으로 모니터링하며,
정책에 따라 트래픽을 허용하고 차단하는 `iptables` 규칙을 구성하는
-[네트워크 폴리시 컨트롤러](https://www.weave.works/docs/net/latest/kubernetes/kube-addon/#npc)와 함께 제공된다.
+[네트워크 폴리시 컨트롤러](https://github.com/weaveworks/weave/blob/master/site/kubernetes/kube-addon.md#network-policy)와 함께 제공된다.
## 설치 시험
From 4a04547c0a57e2023e184936892259debe8a62e4 Mon Sep 17 00:00:00 2001
From: Hassan BENHZAINE
Date: Fri, 26 Jan 2024 21:43:54 +0100
Subject: [PATCH 09/24] Modified storage access for zone and deleted
PersistentVolumeLabel since its deprecated
s
---
.../en/docs/setup/best-practices/multiple-zones.md | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/content/en/docs/setup/best-practices/multiple-zones.md b/content/en/docs/setup/best-practices/multiple-zones.md
index 3bce166937..f9ff827946 100644
--- a/content/en/docs/setup/best-practices/multiple-zones.md
+++ b/content/en/docs/setup/best-practices/multiple-zones.md
@@ -95,13 +95,16 @@ such as Deployment, StatefulSet, or Job.
## Storage access for zones
-When persistent volumes are created, the `PersistentVolumeLabel`
-[admission controller](/docs/reference/access-authn-authz/admission-controllers/)
-automatically adds zone labels to any PersistentVolumes that are linked to a specific
-zone. The {{< glossary_tooltip text="scheduler" term_id="kube-scheduler" >}} then ensures,
+When persistent volumes are created, Kubernetes automatically adds zone labels
+to any PersistentVolumes that are linked to a specific zone.
+The {{< glossary_tooltip text="scheduler" term_id="kube-scheduler" >}} then ensures,
through its `NoVolumeZoneConflict` predicate, that pods which claim a given PersistentVolume
are only placed into the same zone as that volume.
+Please note that the method of adding zone labels can depend on your
+cloud provider and the storage provisioner you’re using. Always refer to the specific
+documentation for your environment to ensure correct configuration.
+
You can specify a {{< glossary_tooltip text="StorageClass" term_id="storage-class" >}}
for PersistentVolumeClaims that specifies the failure domains (zones) that the
storage in that class may use.
From f271922667d613510d158558fb55f67443fa835a Mon Sep 17 00:00:00 2001
From: Arhell
Date: Sun, 25 Feb 2024 00:45:48 +0200
Subject: [PATCH 10/24] [id] Update link
---
.../extend-kubernetes/compute-storage-net/device-plugins.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/content/id/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md b/content/id/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md
index 40263d5e35..eadf3c51ba 100644
--- a/content/id/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md
+++ b/content/id/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md
@@ -212,7 +212,7 @@ pluginapi.Device{ID: "25102017", Health: pluginapi.Healthy, Topology:&pluginapi.
Berikut beberapa contoh implementasi _plugin_ perangkat:
-* [Plugin perangkat AMD GPU](https://github.com/RadeonOpenCompute/k8s-device-plugin)
+* [Plugin perangkat AMD GPU](https://github.com/ROCm/k8s-device-plugin)
* [Plugin perangkat Intel](https://github.com/intel/intel-device-plugins-for-kubernetes) untuk perangkat GPU, FPGA, dan QuickAssist Intel
* [Plugin perangkat KubeVirt](https://github.com/kubevirt/kubernetes-device-plugins) untuk virtualisasi hardware-assisted
* [Plugin perangkat NVIDIA GPU](https://github.com/NVIDIA/k8s-device-plugin)
From 930b7bb7e5ef12efb77349907b7f2e0bcc8bb3a4 Mon Sep 17 00:00:00 2001
From: steve-hardman <132999137+steve-hardman@users.noreply.github.com>
Date: Sun, 25 Feb 2024 00:13:29 +0000
Subject: [PATCH 11/24] Update link
---
.../extend-kubernetes/compute-storage-net/device-plugins.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/content/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md b/content/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md
index 869ef578dd..55b2c227bf 100644
--- a/content/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md
+++ b/content/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md
@@ -845,7 +845,7 @@ Here are some examples of device plugin implementations:
-->
下面是一些设备插件实现的示例:
-* [AMD GPU 设备插件](https://github.com/RadeonOpenCompute/k8s-device-plugin)
+* [AMD GPU 设备插件](https://github.com/ROCm/k8s-device-plugin)
* 适用于通用 Linux 设备和 USB 设备的[通用设备插件](https://github.com/squat/generic-device-plugin)
* [Intel 设备插件](https://github.com/intel/intel-device-plugins-for-kubernetes)支持
Intel GPU、FPGA、QAT、VPU、SGX、DSA、DLB 和 IAA 设备
From 115c0b41bd066426046d8a26f1e4e12dda56e2f0 Mon Sep 17 00:00:00 2001
From: saifeddine Rajhi
Date: Sun, 25 Feb 2024 09:47:06 +0100
Subject: [PATCH 12/24] [de]: fix html reference to the German documentations
Change from English to the German documentations
---
.../tutorials/kubernetes-basics/_index.html | 26 +++++++++----------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/content/de/docs/tutorials/kubernetes-basics/_index.html b/content/de/docs/tutorials/kubernetes-basics/_index.html
index 1a1b7cbfff..71dd175efc 100644
--- a/content/de/docs/tutorials/kubernetes-basics/_index.html
+++ b/content/de/docs/tutorials/kubernetes-basics/_index.html
@@ -50,25 +50,25 @@ card:
Vous pouvez créer et gérer un déploiement à l'aide de l'interface de ligne de commande, Kubectl.
Kubectl utilise l'API Kubernetes pour interagir avec le cluster. Dans ce module, vous apprendrez les commandes Kubectl les plus courantes nécessaires à la création de déploiements exécutant vos applications sur un cluster Kubernetes.
-
Lorsque vous créez un déploiement, vous devez spécifier l'image de conteneur de votre application et le nombre de réplicas que vous souhaitez exécuter. Vous pouvez modifier ces informations ultérieurement en mettant à jour votre déploiement.; Modules 5 et 6 du bootcamp, expliquez comment vous pouvez faire évoluer et mettre à jour vos déploiements.
+
Lorsque vous créez un déploiement, vous devez spécifier l'image de conteneur de votre application et le nombre de réplicas que vous souhaitez exécuter. Vous pouvez modifier ces informations ultérieurement en mettant à jour votre déploiement.; Modules 5 et 6 du bootcamp, expliquez comment vous pouvez faire évoluer et mettre à jour vos déploiements.
Dans le module 2, vous avez utilisé l'interface de ligne de commande Kubectl. Vous continuerez à l'utiliser dans le module 3 pour obtenir des informations sur les applications déployées et leurs environnements. Les opérations les plus courantes peuvent être effectuées avec les commandes kubectl suivantes:
+
Dans le module 2, vous avez utilisé l'interface de ligne de commande Kubectl. Vous continuerez à l'utiliser dans le module 3 pour obtenir des informations sur les applications déployées et leurs environnements. Les opérations les plus courantes peuvent être effectuées avec les commandes kubectl suivantes:
kubectl get - liste les ressources
kubectl describe - affiche des informations détaillées sur une ressource
From 470efefe506d1c0675766027a53de14ef6da7e78 Mon Sep 17 00:00:00 2001
From: Haikal R Fadhilah
Date: Mon, 26 Feb 2024 00:57:08 +0700
Subject: [PATCH 15/24] fix broken link indonesian docs
---
content/id/docs/concepts/_index.md | 6 +++---
content/id/docs/home/_index.md | 2 ++
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/content/id/docs/concepts/_index.md b/content/id/docs/concepts/_index.md
index 623b3fac3a..a786f9fb0a 100644
--- a/content/id/docs/concepts/_index.md
+++ b/content/id/docs/concepts/_index.md
@@ -33,10 +33,10 @@ misalnya dengan mekanisme `start` atau `stop` kontainer, melakukan *scale* repli
suatu aplikasi, dan lain sebagainya. *Control Plane* Kubernetes terdiri dari sekumpulan
`process` yang dijalankan di klaster:
-* **Kubernetes Master** terdiri dari tiga buah *process* yang dijalankan pada sebuah *node* di klaster kamu, *node* ini disebut sebagai *master*, yang terdiri [kube-apiserver](/docs/admin/kube-apiserver/), [kube-controller-manager](/docs/admin/kube-controller-manager/) dan [kube-scheduler](/docs/admin/kube-scheduler/).
+* **Kubernetes Master** terdiri dari tiga buah *process* yang dijalankan pada sebuah *node* di klaster kamu, *node* ini disebut sebagai *master*, yang terdiri [kube-apiserver](/id/docs/concepts/overview/components/#kube-apiserver), [kube-controller-manager](/id/docs/concepts/overview/components/#kube-controller-manager) dan [kube-scheduler](/id/docs/concepts/overview/components/#kube-scheduler).
* Setiap *node* non-master pada klaster kamu menjalankan dua buah *process*:
- * **[kubelet](/docs/admin/kubelet/)**, yang menjadi perantara komunikasi dengan *master*.
- * **[kube-proxy](/docs/admin/kube-proxy/)**, sebuah *proxy* yang merupakan representasi jaringan yang ada pada setiap *node*.
+ * **[kubelet](/id/docs/concepts/overview/components/#kubelet)**, yang menjadi perantara komunikasi dengan *master*.
+ * **[kube-proxy](/id/docs/concepts/overview/components/#kube-proxy)**, sebuah *proxy* yang merupakan representasi jaringan yang ada pada setiap *node*.
## Objek Kubernetes
diff --git a/content/id/docs/home/_index.md b/content/id/docs/home/_index.md
index bf74b6727b..c962794177 100644
--- a/content/id/docs/home/_index.md
+++ b/content/id/docs/home/_index.md
@@ -50,6 +50,8 @@ cards:
- name: download
title: Unduh Kubernetes
description: Untuk instalasi atau pembaharuan Kubernetes ke versi terbaru, lihat catatan rilis saat ini.
+ button: Unduh Kubernetes Sekarang
+ button_path: /releases/download/
- name: about
title: Tentang dokumentasi
description: Situs ini merupakan dokumentasi dari Kubernetes versi saat ini dan 4 versi sebelumnya.
From cf5a8f86dc5c511d0776ee17f2cd3a854ff585c3 Mon Sep 17 00:00:00 2001
From: Sankalp Khare
Date: Mon, 26 Feb 2024 00:05:09 +0530
Subject: [PATCH 16/24] Fix typo in ephemeral-volumes.md
---
content/en/docs/concepts/storage/ephemeral-volumes.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/content/en/docs/concepts/storage/ephemeral-volumes.md b/content/en/docs/concepts/storage/ephemeral-volumes.md
index f92f544768..f1968dabea 100644
--- a/content/en/docs/concepts/storage/ephemeral-volumes.md
+++ b/content/en/docs/concepts/storage/ephemeral-volumes.md
@@ -18,7 +18,7 @@ particular PersistentVolumeClaim and PersistentVolume.
-Some application need additional storage but don't care whether that
+Some applications need additional storage but don't care whether that
data is stored persistently across restarts. For example, caching
services are often limited by memory size and can move infrequently
used data into storage that is slower than memory with little impact
From bb5d0a45f2ea85a1af274bab46cff22350552cf5 Mon Sep 17 00:00:00 2001
From: Semih Buyukgungor
Date: Sun, 25 Feb 2024 23:22:30 +0300
Subject: [PATCH 17/24] Update api fields in volumes page
---
content/en/docs/concepts/storage/volumes.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md
index 13b83596f4..a4ef1bbede 100644
--- a/content/en/docs/concepts/storage/volumes.md
+++ b/content/en/docs/concepts/storage/volumes.md
@@ -859,7 +859,7 @@ To turn off the `vsphereVolume` plugin from being loaded by the controller manag
## Using subPath {#using-subpath}
Sometimes, it is useful to share one volume for multiple uses in a single pod.
-The `volumeMounts.subPath` property specifies a sub-path inside the referenced volume
+The `volumeMounts[*].subPath` property specifies a sub-path inside the referenced volume
instead of its root.
The following example shows how to configure a Pod with a LAMP stack (Linux Apache MySQL PHP)
@@ -1162,7 +1162,7 @@ Mount propagation allows for sharing volumes mounted by a container to
other containers in the same pod, or even to other pods on the same node.
Mount propagation of a volume is controlled by the `mountPropagation` field
-in `Container.volumeMounts`. Its values are:
+in `containers[*].volumeMounts`. Its values are:
* `None` - This volume mount will not receive any subsequent mounts
that are mounted to this volume or any of its subdirectories by the host.
From 02685cc91aeff4dbadedc0490037de5a615940d1 Mon Sep 17 00:00:00 2001
From: "xin.li"
Date: Sat, 24 Feb 2024 21:34:56 +0800
Subject: [PATCH 18/24] [zh-cn] sync kubeadm-upgrade.md
Signed-off-by: xin.li
---
.../kubeadm/kubeadm-upgrade.md | 34 ++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md
index c066100703..560b6ef9e0 100644
--- a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md
+++ b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md
@@ -110,12 +110,44 @@ The upgrade workflow at high level is the following:
这样会产生意想不到的结果。
请按照[重新配置 kubeadm 集群](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure)中的步骤来进行。
+
+### 升级 etcd 时的注意事项
+
+由于 `kube-apiserver` 静态 Pod 始终在运行(即使你已经执行了腾空节点的操作),
+因此当你执行包括 etcd 升级在内的 kubeadm 升级时,对服务器正在进行的请求将停滞,
+因为要重新启动新的 etcd 静态 Pod。作为一种解决方法,可以在运行 `kubeadm upgrade apply`
+命令之前主动停止 `kube-apiserver` 进程几秒钟。这样可以允许正在进行的请求完成处理并关闭现有连接,
+并最大限度地减少 etcd 停机的后果。此操作可以在控制平面节点上按如下方式完成:
+
+
+```shell
+killall -s SIGTERM kube-apiserver # 触发 kube-apiserver 体面关闭
+sleep 20 # 等待一下,以完成进行中的请求
+kubeadm upgrade ... # 执行 kubeadm 升级命令
+```
+
在单独的终端窗口中,执行:
+ minikube service kubernetes-bootcamp --url
输出看起来像这样:
http://127.0.0.1:51082 ! Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
然后使用给定的 URL 访问应用程序:
From ecc2b0c9fa63853c4ecc533c3b35f55d95f1d7e0 Mon Sep 17 00:00:00 2001
From: Johannes <69789894+Audiotape-2@users.noreply.github.com>
Date: Mon, 26 Feb 2024 16:36:09 +0100
Subject: [PATCH 20/24] fix typo
---
content/de/docs/concepts/containers/_index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/content/de/docs/concepts/containers/_index.md b/content/de/docs/concepts/containers/_index.md
index 764c891d01..0424ac7ca8 100644
--- a/content/de/docs/concepts/containers/_index.md
+++ b/content/de/docs/concepts/containers/_index.md
@@ -2,6 +2,6 @@
title: "Container"
weight: 40
description: >
- Methoden, um Anwendungen und ihre Abhängigkeiten zu zusammenzufassen.
+ Methoden, um Anwendungen und ihre Abhängigkeiten zusammenzufassen.
---
From ea6624ee6268293b143a83ee23b036cfe050872a Mon Sep 17 00:00:00 2001
From: Bart Jeukendrup
Date: Mon, 26 Feb 2024 16:59:51 +0100
Subject: [PATCH 21/24] Clarify in the documentation that 27017 is the official
TCP port for MongoDB
---
.../port-forward-access-application-cluster.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md b/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md
index 3b2648f943..d31585a1a9 100644
--- a/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md
+++ b/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md
@@ -110,7 +110,7 @@ for database debugging.
27017
```
- 27017 is the TCP port allocated to MongoDB on the internet.
+ 27017 is the official TCP port for MongoDB.
## Forward a local port to a port on the Pod
From e88b49b964c231cf7b2bae1b85ca963242a54bea Mon Sep 17 00:00:00 2001
From: howieyuen
Date: Tue, 27 Feb 2024 20:16:54 +0800
Subject: [PATCH 22/24] [zh-cn]fix format issue
---
.../extend-resources/mutating-webhook-configuration-v1.md | 6 +++---
.../reference/kubernetes-api/workload-resources/job-v1.md | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md b/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md
index df95a52429..c8fa3519f1 100644
--- a/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md
+++ b/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md
@@ -1,8 +1,8 @@
---
api_metadata:
-apiVersion: "admissionregistration.k8s.io/v1"
-import: "k8s.io/api/admissionregistration/v1"
-kind: "MutatingWebhookConfiguration"
+ apiVersion: "admissionregistration.k8s.io/v1"
+ import: "k8s.io/api/admissionregistration/v1"
+ kind: "MutatingWebhookConfiguration"
content_type: "api_reference"
description: "MutatingWebhookConfiguration 描述准入 Webhook 的配置,该 Webhook 可在更改对象的情况下接受或拒绝对象请求"
title: "MutatingWebhookConfiguration"
diff --git a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/job-v1.md b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/job-v1.md
index 478f91e123..a283c01425 100644
--- a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/job-v1.md
+++ b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/job-v1.md
@@ -1,8 +1,8 @@
---
api_metadata:
-apiVersion: "batch/v1"
-import: "k8s.io/api/batch/v1"
-kind: "Job"
+ apiVersion: "batch/v1"
+ import: "k8s.io/api/batch/v1"
+ kind: "Job"
content_type: "api_reference"
description: "Job 表示单个任务的配置。"
title: "Job"
From 9761f3dcb4b4fff17db57b05b8cec27657c18bf7 Mon Sep 17 00:00:00 2001
From: xin gu <418294249@qq.com>
Date: Mon, 26 Feb 2024 21:39:49 +0800
Subject: [PATCH 23/24] sync blogs-case-studies multiple-zones
Update multiple-zones.md
---
.../new-content/blogs-case-studies.md | 8 ++++++++
.../setup/best-practices/multiple-zones.md | 18 +++++++++++-------
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/content/zh-cn/docs/contribute/new-content/blogs-case-studies.md b/content/zh-cn/docs/contribute/new-content/blogs-case-studies.md
index a19821a252..5f28758320 100644
--- a/content/zh-cn/docs/contribute/new-content/blogs-case-studies.md
+++ b/content/zh-cn/docs/contribute/new-content/blogs-case-studies.md
@@ -219,6 +219,10 @@ Submissions need to be in Markdown format to be used by the [Hugo](https://gohug
for the blog. There are [many resources available](https://gohugo.io/documentation/) on how to use
this technology stack.
+For illustrations, diagrams or charts, the [figure shortcode](https://gohugo.io/content-management/shortcodes/#figure)
+can be used. For other images, we strongly encourage use of alt attributes; if an image doesn't
+need any alt attrribute, maybe it's not needed in the article at all.
+
We recognize that this requirement makes the process more difficult for less-familiar folks to
submit, and we're constantly looking at solutions to lower this bar. If you have ideas on how to
lower the barrier, please volunteer to help out.
@@ -228,6 +232,10 @@ lower the barrier, please volunteer to help out.
所提交的内容应该是 Markdown 格式的,以便能够被 [Hugo](https://gohugo.io/) 生成器来处理。
关于如何使用相关技术,有[很多可用的资源](https://gohugo.io/documentation/)。
+对于插图、表格或图表,可以使用 [figure shortcode](https://gohugo.io/content-management/shortcodes/#figure)。
+对于其他图片,我们强烈建议使用 alt 属性;如果一张图片不需要任何 alt 属性,
+那么这张图片在文章中就不是必需的。
+
我们知道这一需求可能给那些对此过程不熟悉的朋友们带来不便,
我们也一直在寻找降低难度的解决方案。
如果你有降低难度的好主意,请自荐帮忙。
diff --git a/content/zh-cn/docs/setup/best-practices/multiple-zones.md b/content/zh-cn/docs/setup/best-practices/multiple-zones.md
index 2ad2dd4e48..796a2b0796 100644
--- a/content/zh-cn/docs/setup/best-practices/multiple-zones.md
+++ b/content/zh-cn/docs/setup/best-practices/multiple-zones.md
@@ -185,22 +185,26 @@ such as Deployment, StatefulSet, or Job.
## 跨区的存储访问
-当创建持久卷时,`PersistentVolumeLabel`
-[准入控制器](/zh-cn/docs/reference/access-authn-authz/admission-controllers/)
-会自动向那些链接到特定区的 PersistentVolume 添加区标签。
+当创建持久卷时,Kubernetes 会自动向那些链接到特定区的 PersistentVolume 添加区标签。。
{{< glossary_tooltip text="调度器" term_id="kube-scheduler" >}}通过其
`NoVolumeZoneConflict` 断言确保申领给定 PersistentVolume 的 Pods 只会
被调度到该卷所在的可用区。
+请注意,添加区标签的方法可能会根据你所使用的云提供商和存储制备器而有所不同。
+为确保配置正确,请始终参阅你的环境的特定文档。
+