Skip to content

Commit 4c8c317

Browse files
committed
[zh] Sync validate-dual-stack and extend-service-ip-ranges
1 parent bee6719 commit 4c8c317

File tree

2 files changed

+68
-34
lines changed

2 files changed

+68
-34
lines changed

content/zh-cn/docs/tasks/network/extend-service-ip-ranges.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ This document shares how to extend the existing Service IP range assigned to a c
3636

3737
<!--
3838
Kubernetes clusters with kube-apiservers that have enabled the `MultiCIDRServiceAllocator`
39-
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) and have the `networking.k8s.io/v1beta1`
40-
API group active,
41-
will create a ServiceCIDR object that takes the well-known name `kubernetes`, and that specifies an IP address range
39+
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) and have the
40+
`networking.k8s.io/v1beta1` API group active, will create a ServiceCIDR object that takes
41+
the well-known name `kubernetes`, and that specifies an IP address range
4242
based on the value of the `--service-cluster-ip-range` command line argument to kube-apiserver.
4343
-->
4444
如果 Kubernetes 集群的 kube-apiserver 启用了 `MultiCIDRServiceAllocator`
@@ -88,9 +88,9 @@ NAME PARENTREF
8888
```
8989

9090
<!--
91-
The ServiceCIDRs are protected with {{<glossary_tooltip text="finalizers" term_id="finalizer">}}, to avoid leaving Service ClusterIPs orphans;
92-
the finalizer is only removed if there is another subnet that contains the existing IPAddresses or
93-
there are no IPAddresses belonging to the subnet.
91+
The ServiceCIDRs are protected with {{<glossary_tooltip text="finalizers" term_id="finalizer">}},
92+
to avoid leaving Service ClusterIPs orphans; the finalizer is only removed if there is another subnet
93+
that contains the existing IPAddresses or there are no IPAddresses belonging to the subnet.
9494
-->
9595
ServiceCIDR 受到 {{<glossary_tooltip text="终结器" term_id="finalizer">}} 的保护,
9696
以避免留下孤立的 Service ClusterIP;只有在存在包含现有 IPAddress 的另一个子网或者没有属于此子网的
@@ -99,7 +99,9 @@ IPAddress 时,才会移除终结器。
9999
<!--
100100
## Extend the number of available IPs for Services
101101
102-
There are cases that users will need to increase the number addresses available to Services, previously, increasing the Service range was a disruptive operation that could also cause data loss. With this new feature users only need to add a new ServiceCIDR to increase the number of available addresses.
102+
There are cases that users will need to increase the number addresses available to Services,
103+
previously, increasing the Service range was a disruptive operation that could also cause data loss.
104+
With this new feature users only need to add a new ServiceCIDR to increase the number of available addresses.
103105
-->
104106
## 扩展 Service 可用的 IP 数量 {#extend-the-number-of-available-ips-for-services}
105107

@@ -110,7 +112,9 @@ There are cases that users will need to increase the number addresses available
110112
<!--
111113
### Adding a new ServiceCIDR
112114
113-
On a cluster with a 10.96.0.0/28 range for Services, there is only 2^(32-28) - 2 = 14 IP addresses available. The `kubernetes.default` Service is always created; for this example, that leaves you with only 13 possible Services.
115+
On a cluster with a 10.96.0.0/28 range for Services, there is only 2^(32-28) - 2 = 14
116+
IP addresses available. The `kubernetes.default` Service is always created; for this example,
117+
that leaves you with only 13 possible Services.
114118
-->
115119
### 添加新的 ServiceCIDR {#adding-a-new-servicecidr}
116120

content/zh-cn/docs/tasks/network/validate-dual-stack.md

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,23 @@ This document shares how to validate IPv4/IPv6 dual-stack enabled Kubernetes clu
2222
## {{% heading "prerequisites" %}}
2323

2424
<!--
25-
* Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide Kubernetes nodes with routable IPv4/IPv6 network interfaces)
26-
* A [network plugin](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) that supports dual-stack networking.
25+
* Provider support for dual-stack networking (Cloud provider or otherwise must be able to
26+
provide Kubernetes nodes with routable IPv4/IPv6 network interfaces)
27+
* A [network plugin](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)
28+
that supports dual-stack networking.
2729
* [Dual-stack enabled](/docs/concepts/services-networking/dual-stack/) cluster
2830
-->
2931
* 驱动程序对双协议栈网络的支持 (云驱动或其他方式必须能够为 Kubernetes 节点提供可路由的 IPv4/IPv6 网络接口)
3032
* 一个能够支持[双协议栈](/zh-cn/docs/concepts/services-networking/dual-stack/)网络的
3133
[网络插件](/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)
32-
* [启用双协议栈](/zh-cn/docs/concepts/services-networking/dual-stack/) 集群
34+
* [启用双协议栈](/zh-cn/docs/concepts/services-networking/dual-stack/)集群
3335

3436
{{< version-check >}}
3537

38+
{{< note >}}
3639
<!--
3740
While you can validate with an earlier version, the feature is only GA and officially supported since v1.23.
3841
-->
39-
{{< note >}}
4042
虽然你可以使用较早的版本进行验证,但该功能是从 v1.23 版本进入 GA 状态并正式支持的。
4143
{{< /note >}}
4244

@@ -47,11 +49,14 @@ While you can validate with an earlier version, the feature is only GA and offic
4749
4850
### Validate node addressing
4951
50-
Each dual-stack Node should have a single IPv4 block and a single IPv6 block allocated. Validate that IPv4/IPv6 Pod address ranges are configured by running the following command. Replace the sample node name with a valid dual-stack Node from your cluster. In this example, the Node's name is `k8s-linuxpool1-34450317-0`:
52+
Each dual-stack Node should have a single IPv4 block and a single IPv6 block allocated.
53+
Validate that IPv4/IPv6 Pod address ranges are configured by running the following command.
54+
Replace the sample node name with a valid dual-stack Node from your cluster. In this example,
55+
the Node's name is `k8s-linuxpool1-34450317-0`:
5156
-->
52-
## 验证寻址
57+
## 验证寻址 {#validate-addressing}
5358

54-
### 验证节点寻址
59+
### 验证节点寻址 {#validate-node-addressing}
5560

5661
每个双协议栈节点应分配一个 IPv4 块和一个 IPv6 块。
5762
通过运行以下命令来验证是否配置了 IPv4/IPv6 Pod 地址范围。
@@ -73,7 +78,9 @@ There should be one IPv4 block and one IPv6 block allocated.
7378
应该分配一个 IPv4 块和一个 IPv6 块。
7479

7580
<!--
76-
Validate that the node has an IPv4 and IPv6 interface detected. Replace node name with a valid node from the cluster. In this example the node name is `k8s-linuxpool1-34450317-0`:
81+
Validate that the node has an IPv4 and IPv6 interface detected.
82+
Replace node name with a valid node from the cluster.
83+
In this example the node name is `k8s-linuxpool1-34450317-0`:
7784
-->
7885
验证节点是否检测到 IPv4 和 IPv6 接口。用集群中的有效节点替换节点名称。
7986
在此示例中,节点名称为 `k8s-linuxpool1-34450317-0`
@@ -91,9 +98,10 @@ InternalIP: 2001:db8:10::5
9198
<!--
9299
### Validate Pod addressing
93100
94-
Validate that a Pod has an IPv4 and IPv6 address assigned. Replace the Pod name with a valid Pod in your cluster. In this example the Pod name is `pod01`.
101+
Validate that a Pod has an IPv4 and IPv6 address assigned. Replace the Pod name with
102+
a valid Pod in your cluster. In this example the Pod name is `pod01`:
95103
-->
96-
### 验证 Pod 寻址
104+
### 验证 Pod 寻址 {#validate-pod-addressing}
97105

98106
验证 Pod 已分配了 IPv4 和 IPv6 地址。用集群中的有效 Pod 替换 Pod 名称。
99107
在此示例中,Pod 名称为 `pod01`
@@ -108,7 +116,9 @@ kubectl get pods pod01 -o go-template --template='{{range .status.podIPs}}{{prin
108116
```
109117

110118
<!--
111-
You can also validate Pod IPs using the Downward API via the `status.podIPs` fieldPath. The following snippet demonstrates how you can expose the Pod IPs via an environment variable called `MY_POD_IPS` within a container.
119+
You can also validate Pod IPs using the Downward API via the `status.podIPs` fieldPath.
120+
The following snippet demonstrates how you can expose the Pod IPs via an environment variable
121+
called `MY_POD_IPS` within a container.
112122
-->
113123
你也可以通过 `status.podIPs` 使用 Downward API 验证 Pod IP。
114124
以下代码段演示了如何通过容器内称为 `MY_POD_IPS` 的环境变量公开 Pod 的 IP 地址。
@@ -122,7 +132,9 @@ env:
122132
```
123133
124134
<!--
125-
The following command prints the value of the `MY_POD_IPS` environment variable from within a container. The value is a comma separated list that corresponds to the Pod's IPv4 and IPv6 addresses.
135+
The following command prints the value of the `MY_POD_IPS` environment variable from
136+
within a container. The value is a comma separated list that corresponds to the
137+
Pod's IPv4 and IPv6 addresses.
126138
-->
127139
使用以下命令打印出容器内部 `MY_POD_IPS` 环境变量的值。
128140
该值是一个逗号分隔的列表,与 Pod 的 IPv4 和 IPv6 地址相对应。
@@ -136,7 +148,9 @@ MY_POD_IPS=10.244.1.4,2001:db8::4
136148
```
137149
138150
<!--
139-
The Pod's IP addresses will also be written to `/etc/hosts` within a container. The following command executes a cat on `/etc/hosts` on a dual stack Pod. From the output you can verify both the IPv4 and IPv6 IP address for the Pod.
151+
The Pod's IP addresses will also be written to `/etc/hosts` within a container.
152+
The following command executes a cat on `/etc/hosts` on a dual stack Pod.
153+
From the output you can verify both the IPv4 and IPv6 IP address for the Pod.
140154
-->
141155
Pod 的 IP 地址也将被写入容器内的 `/etc/hosts` 文件中。
142156
在双栈 Pod 上执行 cat `/etc/hosts` 命令操作。
@@ -161,9 +175,11 @@ fe00::2 ip6-allrouters
161175
<!--
162176
## Validate Services
163177
164-
Create the following Service that does not explicitly define `.spec.ipFamilyPolicy`. Kubernetes will assign a cluster IP for the Service from the first configured `service-cluster-ip-range` and set the `.spec.ipFamilyPolicy` to `SingleStack`.
178+
Create the following Service that does not explicitly define `.spec.ipFamilyPolicy`.
179+
Kubernetes will assign a cluster IP for the Service from the first configured
180+
`service-cluster-ip-range` and set the `.spec.ipFamilyPolicy` to `SingleStack`.
165181
-->
166-
## 验证服务
182+
## 验证服务 {#validate-services}
167183

168184
创建以下未显式定义 `.spec.ipFamilyPolicy` 的 Service。
169185
Kubernetes 将从首个配置的 `service-cluster-ip-range` 给 Service 分配集群 IP,
@@ -181,9 +197,11 @@ kubectl get svc my-service -o yaml
181197
```
182198

183199
<!--
184-
The Service has `.spec.ipFamilyPolicy` set to `SingleStack` and `.spec.clusterIP` set to an IPv4 address from the first configured range set via `--service-cluster-ip-range` flag on kube-controller-manager.
200+
The Service has `.spec.ipFamilyPolicy` set to `SingleStack` and `.spec.clusterIP` set
201+
to an IPv4 address from the first configured range set via `--service-cluster-ip-range`
202+
flag on kube-controller-manager.
185203
-->
186-
该 Service 通过在 kube-controller-manager 的 `--service-cluster-ip-range`
204+
该 Service 通过在 kube-controller-manager 的 `--service-cluster-ip-range`
187205
标志设置的第一个配置范围,将 `.spec.ipFamilyPolicy` 设置为 `SingleStack`
188206
`.spec.clusterIP` 设置为 IPv4 地址。
189207

@@ -213,7 +231,9 @@ status:
213231
```
214232
215233
<!--
216-
Create the following Service that explicitly defines `IPv6` as the first array element in `.spec.ipFamilies`. Kubernetes will assign a cluster IP for the Service from the IPv6 range configured `service-cluster-ip-range` and set the `.spec.ipFamilyPolicy` to `SingleStack`.
234+
Create the following Service that explicitly defines `IPv6` as the first array element in
235+
`.spec.ipFamilies`. Kubernetes will assign a cluster IP for the Service from the IPv6 range
236+
configured `service-cluster-ip-range` and set the `.spec.ipFamilyPolicy` to `SingleStack`.
217237
-->
218238
创建以下显式定义 `.spec.ipFamilies` 数组中的第一个元素为 IPv6 的 Service。
219239
Kubernetes 将 `service-cluster-ip-range` 配置的 IPv6 地址范围给 Service 分配集群 IP,
@@ -231,9 +251,10 @@ kubectl get svc my-service -o yaml
231251
```
232252

233253
<!--
234-
The Service has `.spec.ipFamilyPolicy` set to `SingleStack` and `.spec.clusterIP` set to an IPv6 address from the IPv6 range set via `--service-cluster-ip-range` flag on kube-controller-manager.
254+
The Service has `.spec.ipFamilyPolicy` set to `SingleStack` and `.spec.clusterIP` set to
255+
an IPv6 address from the IPv6 range set via `--service-cluster-ip-range` flag on kube-controller-manager.
235256
-->
236-
该 Service 通过在 kube-controller-manager 的 `--service-cluster-ip-range`
257+
该 Service 通过在 kube-controller-manager 的 `--service-cluster-ip-range`
237258
标志设置的 IPv6 地址范围,将 `.spec.ipFamilyPolicy` 设置为 `SingleStack`,
238259
将 `.spec.clusterIP` 设置为 IPv6 地址。
239260

@@ -264,7 +285,10 @@ status:
264285
```
265286

266287
<!--
267-
Create the following Service that explicitly defines `PreferDualStack` in `.spec.ipFamilyPolicy`. Kubernetes will assign both IPv4 and IPv6 addresses (as this cluster has dual-stack enabled) and select the `.spec.ClusterIP` from the list of `.spec.ClusterIPs` based on the address family of the first element in the `.spec.ipFamilies` array.
288+
Create the following Service that explicitly defines `PreferDualStack` in `.spec.ipFamilyPolicy`.
289+
Kubernetes will assign both IPv4 and IPv6 addresses (as this cluster has dual-stack enabled) and
290+
select the `.spec.ClusterIP` from the list of `.spec.ClusterIPs` based on the address family of
291+
the first element in the `.spec.ipFamilies` array.
268292
-->
269293
创建以下显式定义 `.spec.ipFamilyPolicy` 为 `PreferDualStack` 的 Service。
270294
Kubernetes 将分配 IPv4 和 IPv6 地址(因为该集群启用了双栈),
@@ -281,14 +305,17 @@ The `kubectl get svc` command will only show the primary IP in the `CLUSTER-IP`
281305

282306
```shell
283307
kubectl get svc -l app.kubernetes.io/name=MyApp
308+
```
284309

310+
```
285311
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
286312
my-service ClusterIP 10.0.216.242 <none> 80/TCP 5s
287313
```
288314
{{< /note >}}
289315
290316
<!--
291-
Validate that the Service gets cluster IPs from the IPv4 and IPv6 address blocks using `kubectl describe`. You may then validate access to the service via the IPs and ports.
317+
Validate that the Service gets cluster IPs from the IPv4 and IPv6 address blocks using
318+
`kubectl describe`. You may then validate access to the service via the IPs and ports.
292319
-->
293320
使用 `kubectl describe` 验证服务是否从 IPv4 和 IPv6 地址块中获取了集群 IP。
294321
然后你就可以通过 IP 和端口,验证对服务的访问。
@@ -318,9 +345,11 @@ Events: <none>
318345
<!--
319346
### Create a dual-stack load balanced Service
320347
321-
If the cloud provider supports the provisioning of IPv6 enabled external load balancers, create the following Service with `PreferDualStack` in `.spec.ipFamilyPolicy`, `IPv6` as the first element of the `.spec.ipFamilies` array and the `type` field set to `LoadBalancer`.
348+
If the cloud provider supports the provisioning of IPv6 enabled external load balancers,
349+
create the following Service with `PreferDualStack` in `.spec.ipFamilyPolicy`, `IPv6` as
350+
the first element of the `.spec.ipFamilies` array and the `type` field set to `LoadBalancer`.
322351
-->
323-
### 创建双协议栈负载均衡服务
352+
### 创建双协议栈负载均衡服务 {#create-a-dualstack-load-balanced-service}
324353

325354
如果云提供商支持配置启用 IPv6 的外部负载均衡器,则创建如下 Service 时将
326355
`.spec.ipFamilyPolicy` 设置为 `PreferDualStack`, 并将 `spec.ipFamilies` 字段
@@ -338,12 +367,13 @@ kubectl get svc -l app.kubernetes.io/name=MyApp
338367
```
339368

340369
<!--
341-
Validate that the Service receives a `CLUSTER-IP` address from the IPv6 address block along with an `EXTERNAL-IP`. You may then validate access to the service via the IP and port.
370+
Validate that the Service receives a `CLUSTER-IP` address from the IPv6 address block
371+
along with an `EXTERNAL-IP`. You may then validate access to the service via the IP and port.
342372
-->
343373
验证服务是否从 IPv6 地址块中接收到 `CLUSTER-IP` 地址以及 `EXTERNAL-IP`
344374
然后,你可以通过 IP 和端口验证对服务的访问。
345375

346-
```shell
376+
```
347377
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
348378
my-service LoadBalancer 2001:db8:fd00::7ebc 2603:1030:805::5 80:30790/TCP 35s
349379
```

0 commit comments

Comments
 (0)