From e4b920bb560f4a14125fa9ed908a381b17548389 Mon Sep 17 00:00:00 2001 From: windsonsea Date: Wed, 14 Aug 2024 09:54:40 +0800 Subject: [PATCH] [zh] Add coordinated-leader-election.md --- .../docs/concepts/architecture/leases.md | 11 ++- .../coordinated-leader-election.md | 76 +++++++++++++++++++ .../coordinated-leader-election.md | 18 +++++ 3 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 content/zh-cn/docs/concepts/cluster-administration/coordinated-leader-election.md create mode 100644 content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/coordinated-leader-election.md diff --git a/content/zh-cn/docs/concepts/architecture/leases.md b/content/zh-cn/docs/concepts/architecture/leases.md index b8fa0ab1b4..c355d20885 100644 --- a/content/zh-cn/docs/concepts/architecture/leases.md +++ b/content/zh-cn/docs/concepts/architecture/leases.md @@ -66,6 +66,14 @@ Kubernetes 也使用 Lease 确保在任何给定时间某个组件只有一个 这在高可用配置中由 `kube-controller-manager` 和 `kube-scheduler` 等控制平面组件进行使用, 这些组件只应有一个实例激活运行,而其他实例待机。 + +参阅[协调领导者选举](/zh-cn/docs/concepts/cluster-administration/coordinated-leader-election)以了解 +Kubernetes 如何基于 Lease API 来选择哪个组件实例充当领导者。 + @@ -93,12 +101,12 @@ kube-apiserver 拥有的租约。你还可以使用标签选择算符 `apiserver ```shell kubectl -n kube-system get lease -l apiserver.kubernetes.io/identity=kube-apiserver ``` + ``` NAME HOLDER AGE apiserver-07a5ea9b9b072c4a5f3d1c3702 apiserver-07a5ea9b9b072c4a5f3d1c3702_0c8914f7-0f35-440e-8676-7844977d3a05 5m33s apiserver-7be9e061c59d368b3ddaf1376e apiserver-7be9e061c59d368b3ddaf1376e_84f2a85d-37c1-4b14-b6b9-603e62e4896f 4m23s apiserver-1dfef752bcb36637d2763d1868 apiserver-1dfef752bcb36637d2763d1868_c5ffa286-8a9a-45d4-91e7-61118ed58d2e 4m43s - ``` + + + +{{< feature-state feature_gate_name="CoordinatedLeaderElection" >}} + + +Kubernetes {{< skew currentVersion >}} 包含一个 Alpha 特性, +允许{{< glossary_tooltip text="控制平面" term_id="control-plane" >}}组件通过**协调领导者选举**确定性地选择一个领导者。 +这对于在集群升级期间满足 Kubernetes 版本偏差约束非常有用。 +目前,唯一内置的选择策略是 `OldestEmulationVersion`, +此策略会优先选择最低仿真版本作为领导者,其次按二进制版本选择领导者,最后会按创建时间戳选择领导者。 + + +## 启用协调领导者选举 {#enabling-coordinated-leader-election} + +确保你在启动 {{< glossary_tooltip text="API 服务器" term_id="kube-apiserver" >}}时 +`CoordinatedLeaderElection` [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)被启用, +并且 `coordination.k8s.io/v1alpha1` API 组被启用。 + + +此操作可以通过设置 `--feature-gates="CoordinatedLeaderElection=true"` +和 `--runtime-config="coordination.k8s.io/v1alpha1=true"` 标志来完成。 + + +## 组件配置 {#component-configuration} + +前提是你已启用 `CoordinatedLeaderElection` 特性门控**并且** +启用了 `coordination.k8s.io/v1alpha1` API 组, +兼容的控制平面组件会自动使用 LeaseCandidate 和 Lease API 根据需要选举领导者。 + + +对于 Kubernetes {{< skew currentVersion >}}, +当特性门控和 API 组被启用时, +两个控制平面组件(kube-controller-manager 和 kube-scheduler)会自动使用协调领导者选举。 diff --git a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/coordinated-leader-election.md b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/coordinated-leader-election.md new file mode 100644 index 0000000000..817d37e41f --- /dev/null +++ b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/coordinated-leader-election.md @@ -0,0 +1,18 @@ +--- +title: CoordinatedLeaderElection +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" +--- + + +启用支持 LeaseCandidate API 的行为,并且以确定性的方式为 Kubernetes 控制平面启用协调领导者选举。