Skip to content

Commit 9684eee

Browse files
committed
[zh] Add reconfigure-default-service-ip-ranges.md
1 parent 4c577e7 commit 9684eee

File tree

1 file changed

+226
-0
lines changed

1 file changed

+226
-0
lines changed
Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
---
2+
min-kubernetes-server-version: v1.33
3+
title: 重新配置 Kubernetes 默认的 Service CIDR
4+
content_type: task
5+
---
6+
14+
15+
16+
{{< feature-state feature_gate_name="MultiCIDRServiceAllocator" >}}
17+
18+
22+
本文介绍如何重新配置集群中分配的默认 Service IP 范围。
23+
24+
## {{% heading "prerequisites" %}}
25+
26+
{{< include "task-tutorial-prereqs.md" >}}
27+
28+
{{< version-check >}}
29+
30+
31+
32+
39+
## 重新配置 Kubernetes 默认 Service CIDR {#kubernetes-default-service-cidr-reconfiguration}
40+
41+
本文解释了如何管理 Kubernetes 集群中的 Service IP 地址范围,这也会影响集群针对不同 Service 所支持的 IP 协议族。
42+
43+
48+
可用于 Service ClusterIP 的 IP 协议族由传递给 kube-apiserver 的 `--service-cluster-ip-range`
49+
参数决定。要更好地了解 Service IP 地址分配,请参考
50+
[Service IP 地址分配追踪](/zh-cn/docs/reference/networking/virtual-ips/#ip-address-objects)文档。
51+
52+
58+
自 Kubernetes 1.33 起,为集群所配置的 Service IP 协议族会通过名为 `kubernetes``ServiceCIDR` 对象反映。
59+
这个 `kubernetes` `ServiceCIDR` 对象由依据其配置的 `--service-cluster-ip-range`
60+
参数所启动的第一个 kube-apiserver 实例创建。为了确保集群行为一致,所有 kube-apiserver 实例必须使用相同的
61+
`--service-cluster-ip-range` 配置,其取值需与默认的 kubernetes ServiceCIDR 对象保持一致。
62+
63+
68+
### Kubernetes Service CIDR 重新配置类别 {#kubernetes-service-cidr-reconfiguration-categories}
69+
70+
我们可以将 Service CIDR 的重新配置分为以下几种情形:
71+
72+
79+
* **扩展现有的 Service CIDR:**
80+
这可以通过添加新的 ServiceCIDR 对象动态完成,无需重新配置 kube-apiserver。
81+
请参考[扩展 Service IP 范围](/zh-cn/docs/tasks/network/extend-service-ip-ranges/)的专门文档。
82+
83+
93+
* **保留主 Service CIDR 的单栈到双栈转换:**
94+
这意味着引入次要 IP 协议族(IPv6 到仅 IPv4 集群,或 IPv4 到仅 IPv6 集群),
95+
同时保留原 IP 协议族作为主协议族。
96+
这需要更新 kube-apiserver 配置,并相应修改需要处理这个附加 IP 协议族的各个集群组件。
97+
这些组件包括但不限于 kube-proxy、CNI 或网络插件、服务网格实现和 DNS 服务。
98+
99+
107+
* **保留主 Service CIDR 的双栈到单栈转换:**
108+
这意味着从双栈集群中移除次要 IP 协议族,恢复为单一 IP 协议族,同时保留原主 IP 协议族。
109+
除了重新配置这些组件以匹配新的 IP 协议族外,你还可能需要处理那些显式使用被移除 IP 协议族的 Service。
110+
111+
121+
* **变更主 Service CIDR 的任何情形:**
122+
完全替换默认 ServiceCIDR 是一项复杂的操作。如果新旧 ServiceCIDR 不重叠,
123+
[则需要重新编号所有现有 Service 并更改 `kubernetes.default` Service](#illustrative-reconfiguration-steps)
124+
如果主 IP 协议族也发生变化,则更为复杂,可能需要修改多个集群组件(如 kubelet、网络插件等)以匹配新的主 IP 协议族。
125+
126+
133+
### 替换默认 Service CIDR 的手动操作 {#manual-operations-for-replacing-the-default-service-cidr}
134+
135+
重新配置默认 Service CIDR 需要集群运维人员、管理员或管理集群生命周期的软件执行一系列手动步骤。
136+
这些通常包括:
137+
138+
142+
1. **更新** kube-apiserver 配置:
143+
使用新的 IP 范围修改 `--service-cluster-ip-range` 参数。
144+
155+
2. **重新配置**网络组件:这一步至关重要,具体步骤取决于正在使用的联网组件。
156+
这可能包括更新配置文件、重启代理 Pod,或更新组件以处理新的 Service CIDR 和期望的 Pod IP 协议族配置。
157+
典型组件可以是 Kubernetes Service(例如 kube-proxy)的实现、
158+
所配置的网络插件以及服务网格控制器和 DNS 服务器等潜在的其他联网组件,
159+
以确保它们能够正确处理流量并使用新的 IP 协议族配置来执行服务发现。
160+
170+
3. **管理现有 Service:**
171+
如果某些 Service 所使用的 IP 不在新配置的范围内,则需处理这些服务。
172+
你可以选择重新创建(会造成停机并重新分配 IP),或者采取更复杂的重新配置策略。
173+
4. **重新创建 Kubernetes 内部服务:**
174+
如果主 IP 协议族发生变化,或者被替换为另一个不同的网络,
175+
则必须删除并重新创建 `kubernetes.default` Service,以便从新的 Service CIDR 获取 IP 地址。
176+
177+
184+
### 示例重新配置步骤 {#illustrative-reconfiguration-steps}
185+
186+
以下步骤描述了受控的重新配置过程,重点是完全替换默认 Service CIDR 并重新创建 `kubernetes.default` Service:
187+
188+
196+
1. 使用初始的 `--service-cluster-ip-range` 启动 kube-apiserver。
197+
2. 创建初始 Service,使其从该范围获取 IP。
198+
3. 引入新的 Service CIDR,作为重新配置的临时目标。
199+
4. 将默认的 `kubernetes` Service CIDR 标记为删除(由于存在 IP 和 Finalizer,会处于 Pending 状态)。
200+
这将阻止从旧的范围分配新的 IP。
201+
209+
5. 重新创建现有 Service。这些 Service 应从新的临时 Service CIDR 分配 IP。
210+
6. 使用配置的新 Service CIDR 重新启动 kube-apiserver,并关闭旧实例。
211+
7. 删除 `kubernetes.default` Service。新的 kube-apiserver 将在新的
212+
Service CIDR 范围内重新创建此 Service。
213+
214+
## {{% heading "whatsnext" %}}
215+
216+
224+
* [Kubernetes 联网概念](/zh-cn/docs/concepts/cluster-administration/networking/)
225+
* [Kubernetes 双栈服务](/zh-cn/docs/concepts/services-networking/dual-stack/)
226+
* [扩展 Kubernetes Service IP 范围](/zh-cn/docs/tasks/network/extend-service-ip-ranges/)

0 commit comments

Comments
 (0)