Skip to content

Commit 1e81625

Browse files
authored
Merge pull request #44362 from windsonsea/certyhf
[zh] Sync /best-practices/certificates.md
2 parents 3212629 + 834fc09 commit 1e81625

File tree

1 file changed

+78
-31
lines changed

1 file changed

+78
-31
lines changed

content/zh-cn/docs/setup/best-practices/certificates.md

Lines changed: 78 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ If you install Kubernetes with kubeadm, most certificates are stored in `/etc/ku
8282
All paths in this documentation are relative to that directory, with the exception of user account
8383
certificates which kubeadm places in `/etc/kubernetes`.
8484
-->
85-
## 证书存放的位置 {#where-certificates-are-stored}
85+
## 证书存储位置 {#where-certificates-are-stored}
8686

87-
假如通过 kubeadm 安装 Kubernetes,大多数证书都存储在 `/etc/kubernetes/pki`
88-
本文档中的所有路径都是相对于该目录的,但用户账户证书除外,kubeadm 将其放在 `/etc/kubernetes` 中。
87+
假如你通过 kubeadm 安装 Kubernetes,大多数证书会被存储在 `/etc/kubernetes/pki`
88+
本文档中的所有路径都是相对于该目录的,但用户账号证书除外,kubeadm 将其放在 `/etc/kubernetes` 中。
8989

9090
<!--
9191
## Configure certificates manually
@@ -98,10 +98,9 @@ for more on managing certificates.
9898
-->
9999
## 手动配置证书 {#configure-certificates-manually}
100100

101-
如果你不想通过 kubeadm 生成这些必需的证书,你可以使用一个单一的根 CA
102-
来创建这些证书或者直接提供所有证书。
103-
参见[证书](/zh-cn/docs/tasks/administer-cluster/certificates/)以进一步了解创建自己的证书机构。
104-
关于管理证书的更多信息,请参见[使用 kubeadm 进行证书管理](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/)
101+
如果你不想通过 kubeadm 生成所需证书,你可以使用一个单根 CA 来创建这些证书,或者直接提供所有证书。
102+
参见[证书](/zh-cn/docs/tasks/administer-cluster/certificates/)以进一步了解如何创建自己的证书授权机构。
103+
更多关于管理证书的信息,请参阅[使用 kubeadm 进行证书管理](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/)
105104

106105
<!--
107106
### Single root CA
@@ -111,7 +110,8 @@ multiple intermediate CAs, and delegate all further creation to Kubernetes itsel
111110
-->
112111
### 单根 CA {#single-root-ca}
113112

114-
你可以创建由管理员控制的单根 CA。该根 CA 可以创建多个中间 CA,并将所有进一步的创建委托给 Kubernetes。
113+
你可以创建由管理员控制的单根 CA。这个根 CA 可以创建多个中间 CA,
114+
并将所有进一步的创建委托给 Kubernetes 本身。
115115

116116
<!--
117117
Required CAs:
@@ -133,7 +133,7 @@ management, `sa.key` and `sa.pub`.
133133
| etcd/ca.crt,key | etcd-ca | 与 etcd 相关的所有功能 |
134134
| front-proxy-ca.crt,key | kubernetes-front-proxy-ca | 用于[前端代理](/zh-cn/docs/tasks/extend-kubernetes/configure-aggregation-layer/) |
135135

136-
上面的 CA 之外,还需要获取用于服务账户管理的密钥对,也就是 `sa.key``sa.pub`
136+
上面的 CA 之外,还需要获取用于服务账号管理的密钥对,也就是 `sa.key``sa.pub`
137137

138138
<!--
139139
The following example illustrates the CA key and certificate files shown in the previous table:
@@ -183,6 +183,16 @@ Required certificates:
183183
| kube-apiserver-kubelet-client | kubernetes-ca | system:masters | client | |
184184
| front-proxy-client | kubernetes-front-proxy-ca | | client | |
185185

186+
{{< note >}}
187+
<!--
188+
Instead of using the super-user group `system:masters` for `kube-apiserver-kubelet-client`
189+
a less privileged group can be used. kubeadm uses the `kubeadm:cluster-admins` group for
190+
that purpose.
191+
-->
192+
不使用超级用户组 `system:masters` 来控制 `kube-apiserver-kubelet-client`
193+
可以使用一个权限较低的组。kubeadm 使用 `kubeadm:cluster-admins` 组来达到这个目的。
194+
{{< /note >}}
195+
186196
<!--
187197
[1]: any other IP or DNS name you contact your cluster on (as used by [kubeadm](/docs/reference/setup-tools/kubeadm/)
188198
the load balancer stable IP and/or DNS name, `kubernetes`, `kubernetes.default`, `kubernetes.default.svc`,
@@ -192,9 +202,9 @@ where `kind` maps to one or more of the x509 key usage, which is also documented
192202
`.spec.usages` of a [CertificateSigningRequest](/docs/reference/kubernetes-api/authentication-resources/certificate-signing-request-v1#CertificateSigningRequest)
193203
type:
194204
-->
195-
[1]: 用来连接到集群的不同 IP 或 DNS
205+
[1]: 用来连接到集群的不同 IP 或 DNS 名称
196206
(就像 [kubeadm](/zh-cn/docs/reference/setup-tools/kubeadm/) 为负载均衡所使用的固定
197-
IP 或 DNS `kubernetes``kubernetes.default``kubernetes.default.svc`
207+
IP 或 DNS 名称`kubernetes``kubernetes.default``kubernetes.default.svc`
198208
`kubernetes.default.svc.cluster``kubernetes.default.svc.cluster.local`)。
199209

200210
其中 `kind` 对应一种或多种类型的 x509 密钥用途,也可记录在
@@ -217,7 +227,8 @@ IP 或 DNS 名:`kubernetes`、`kubernetes.default`、`kubernetes.default.svc`
217227
Hosts/SAN listed above are the recommended ones for getting a working cluster; if required by a
218228
specific setup, it is possible to add additional SANs on all the server certificates.
219229
-->
220-
上面列出的 Hosts/SAN 是推荐的配置方式;如果需要特殊安装,则可以在所有服务器证书上添加其他 SAN。
230+
上面列出的 Host/SAN 是获取工作集群的推荐配置方式;
231+
如果需要特殊安装,则可以在所有服务器证书上添加其他 SAN。
221232
{{< /note >}}
222233

223234
{{< note >}}
@@ -232,8 +243,8 @@ For kubeadm users only:
232243
-->
233244
对于 kubeadm 用户:
234245

235-
* 不使用私钥,将证书复制到集群 CA 的方案,在 kubeadm 文档中将这种方案称为外部 CA。
236-
* 如果将以上列表与 kubeadm 生成的 PKI 进行比较,你会注意到,如果使用外部 etcd,则不会生成
246+
* 不使用私钥并将证书复制到集群 CA 的方案,在 kubeadm 文档中将这种方案称为外部 CA。
247+
* 如果将上表与 kubeadm 生成的 PKI 进行比较,你会注意到,如果使用外部 etcd,则不会生成
237248
`kube-etcd``kube-etcd-peer``kube-etcd-healthcheck-client` 证书。
238249

239250
{{< /note >}}
@@ -287,7 +298,7 @@ Paths should be specified using the given argument regardless of location.
287298
<!--
288299
Same considerations apply for the service account key pair:
289300
-->
290-
注意事项同样适用于服务帐户密钥对
301+
注意事项同样适用于服务账号密钥对
291302

292303
<!--
293304
| private key path | public key path | command | argument |
@@ -337,24 +348,26 @@ you need to provide if you are generating all of your own keys and certificates:
337348
338349
You must manually configure these administrator account and service accounts:
339350
-->
340-
## 为用户帐户配置证书 {#configure-certificates-for-user-accounts}
351+
## 为用户账号配置证书 {#configure-certificates-for-user-accounts}
341352

342-
你必须手动配置以下管理员帐户和服务帐户
353+
你必须手动配置以下管理员账号和服务账号
343354

344355
<!--
345-
| filename | credential name | Default CN | O (in Subject) |
346-
|-------------------------|----------------------------|-------------------------------------|----------------|
347-
| admin.conf | default-admin | kubernetes-admin | system:masters |
348-
| kubelet.conf | default-auth | system:node:`<nodeName>` (see note) | system:nodes |
349-
| controller-manager.conf | default-controller-manager | system:kube-controller-manager | |
350-
| scheduler.conf | default-scheduler | system:kube-scheduler | |
356+
| filename | credential name | Default CN | O (in Subject) |
357+
|-------------------------|----------------------------|-------------------------------------|------------------------|
358+
| admin.conf | default-admin | kubernetes-admin | `<admin-group>` |
359+
| super-admin.conf | default-super-admin | kubernetes-super-admin | system:masters |
360+
| kubelet.conf | default-auth | system:node:`<nodeName>` (see note) | system:nodes |
361+
| controller-manager.conf | default-controller-manager | system:kube-controller-manager | |
362+
| scheduler.conf | default-scheduler | system:kube-scheduler | |
351363
-->
352-
| 文件名 | 凭据名称 | 默认 CN | O (位于 Subject 中) |
353-
|-------------------------|----------------------------|--------------------------------|---------------------|
354-
| admin.conf | default-admin | kubernetes-admin | system:masters |
355-
| kubelet.conf | default-auth | system:node:`<nodeName>` (参阅注释) | system:nodes |
356-
| controller-manager.conf | default-controller-manager | system:kube-controller-manager | |
357-
| scheduler.conf | default-scheduler | system:kube-scheduler | |
364+
| 文件名 | 凭据名称 | 默认 CN | O (位于 Subject 中) |
365+
|-------------------------|----------------------------|-------------------------------------|------------------------|
366+
| admin.conf | default-admin | kubernetes-admin | `<admin-group>` |
367+
| super-admin.conf | default-super-admin | kubernetes-super-admin | system:masters |
368+
| kubelet.conf | default-auth | system:node:`<nodeName>`(参阅注释) | system:nodes |
369+
| controller-manager.conf | default-controller-manager | system:kube-controller-manager | |
370+
| scheduler.conf | default-scheduler | system:kube-scheduler | |
358371

359372
{{< note >}}
360373
<!--
@@ -366,6 +379,37 @@ provided by the kubelet as it registers with the apiserver. For further details,
366379
有关更多详细信息,请阅读[节点授权](/zh-cn/docs/reference/access-authn-authz/node/)
367380
{{< /note >}}
368381

382+
{{< note >}}
383+
<!--
384+
In the above example `<admin-group>` is implementation specific. Some tools sign the
385+
certificate in the default `admin.conf` to be part of the `system:masters` group.
386+
`system:masters` is a break-glass, super user group can bypass the authorization
387+
layer of Kubernetes, such as RBAC. Also some tools do not generate a separate
388+
`super-admin.conf` with a certificate bound to this super user group.
389+
-->
390+
在上面的例子中,`<admin-group>` 是实现特定的。
391+
一些工具在默认的 `admin.conf` 中签署证书,以成为 `system:masters` 组的一部分。
392+
`system:masters` 是一个紧急情况下的超级用户组,可以绕过 Kubernetes 的授权层,如 RBAC。
393+
另外,某些工具不会生成单独的 `super-admin.conf` 将证书绑定到这个超级用户组。
394+
395+
<!--
396+
kubeadm generates two separate administrator certificates in kubeconfig files.
397+
One is in `admin.conf` and has `Subject: O = kubeadm:cluster-admins, CN = kubernetes-admin`.
398+
`kubeadm:cluster-admins` is a custom group bound to the `cluster-admin` ClusterRole.
399+
This file is generated on all kubeadm managed control plane machines.
400+
-->
401+
kubeadm 在 kubeconfig 文件中生成两个单独的管理员证书。
402+
一个是在 `admin.conf` 中,带有 `Subject: O = kubeadm:cluster-admins, CN = kubernetes-admin``kubeadm:cluster-admins` 是绑定到 `cluster-admin` ClusterRole 的自定义组。
403+
这个文件在所有由 kubeadm 管理的控制平面机器上生成。
404+
405+
<!--
406+
Another is in `super-admin.conf` that has `Subject: O = system:masters, CN = kubernetes-super-admin`.
407+
This file is generated only on the node where `kubeadm init` was called.
408+
-->
409+
另一个是在 `super-admin.conf` 中,具有 `Subject: O = system:masters, CN = kubernetes-super-admin`
410+
这个文件只在调用了 `kubeadm init` 的节点上生成。
411+
{{< /note >}}
412+
369413
<!--
370414
1. For each config, generate an x509 cert/key pair with the given CN and O.
371415
@@ -388,6 +432,7 @@ These files are used as follows:
388432
| filename | command | comment |
389433
|-------------------------|-------------------------|-----------------------------------------------------------------------|
390434
| admin.conf | kubectl | Configures administrator user for the cluster |
435+
| super-admin.conf | kubectl | Configures super administrator user for the cluster |
391436
| kubelet.conf | kubelet | One required for each node in the cluster. |
392437
| controller-manager.conf | kube-controller-manager | Must be added to manifest in `manifests/kube-controller-manager.yaml` |
393438
| scheduler.conf | kube-scheduler | Must be added to manifest in `manifests/kube-scheduler.yaml` |
@@ -397,9 +442,10 @@ These files are used as follows:
397442
| 文件名 | 命令 | 说明 |
398443
|-------------------------|-------------------------|-----------------------------------------------------------------------|
399444
| admin.conf | kubectl | 配置集群的管理员 |
445+
| super-admin.conf | kubectl | 为集群配置超级管理员用户 |
400446
| kubelet.conf | kubelet | 集群中的每个节点都需要一份 |
401-
| controller-manager.conf | kube-controller-manager | 必需添加到 `manifests/kube-controller-manager.yaml` 清单中 |
402-
| scheduler.conf | kube-scheduler | 必需添加到 `manifests/kube-scheduler.yaml` 清单中 |
447+
| controller-manager.conf | kube-controller-manager | 必须添加到 `manifests/kube-controller-manager.yaml` 清单中 |
448+
| scheduler.conf | kube-scheduler | 必须添加到 `manifests/kube-scheduler.yaml` 清单中 |
403449

404450
<!--
405451
The following files illustrate full paths to the files listed in the previous table:
@@ -408,6 +454,7 @@ The following files illustrate full paths to the files listed in the previous ta
408454

409455
```console
410456
/etc/kubernetes/admin.conf
457+
/etc/kubernetes/super-admin.conf
411458
/etc/kubernetes/kubelet.conf
412459
/etc/kubernetes/controller-manager.conf
413460
/etc/kubernetes/scheduler.conf

0 commit comments

Comments
 (0)