Skip to content

Commit 164cfdd

Browse files
authored
Merge pull request #35552 from Sea-n/zh-ref-node
[zh-cn] Resync node.md
2 parents 4c8474e + 35552ab commit 164cfdd

File tree

1 file changed

+71
-50
lines changed
  • content/zh-cn/docs/reference/access-authn-authz

1 file changed

+71
-50
lines changed

content/zh-cn/docs/reference/access-authn-authz/node.md

Lines changed: 71 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ content_type: concept
44
weight: 90
55
---
66
<!--
7-
---
87
reviewers:
98
- timstclair
109
- deads2k
@@ -13,193 +12,215 @@ reviewers:
1312
title: Using Node Authorization
1413
content_type: concept
1514
weight: 90
16-
---
1715
-->
1816

1917
<!-- overview -->
20-
节点鉴权是一种特殊用途的鉴权模式,专门对 kubelet 发出的 API 请求进行鉴权。
18+
2119
<!--
2220
Node authorization is a special-purpose authorization mode that specifically authorizes API requests made by kubelets.
2321
-->
22+
节点鉴权是一种特殊用途的鉴权模式,专门对 kubelet 发出的 API 请求进行授权。
2423

2524

2625
<!-- body -->
27-
## 概述
26+
2827
<!--
2928
## Overview
3029
-->
30+
## 概述 {#overview}
3131

32-
节点鉴权器允许 kubelet 执行 API 操作。包括:
3332
<!--
3433
The Node authorizer allows a kubelet to perform API operations. This includes:
3534
-->
35+
节点鉴权器允许 kubelet 执行 API 操作。包括:
3636

37-
读取操作:
3837
<!--
3938
Read operations:
4039
-->
40+
读取操作:
4141

42+
<!--
4243
* services
4344
* endpoints
4445
* nodes
4546
* pods
46-
* secrets、configmaps、pvcs 以及绑定到 kubelet 节点的与 pod 相关的持久卷
47-
48-
<!--
47+
* secrets, configmaps, persistent volume claims and persistent volumes related to pods bound to the kubelet's node
48+
-->
4949
* services
5050
* endpoints
5151
* nodes
5252
* pods
53-
* secrets, configmaps, persistent volume claims and persistent volumes related to pods bound to the kubelet's node
54-
-->
53+
* 与绑定到 kubelet 节点的 Pod 相关的 Secret、ConfigMap、PersistentVolumeClaim 和持久卷
5554

56-
写入操作:
5755
<!--
5856
Write operations:
5957
-->
60-
61-
* 节点和节点状态(启用 `NodeRestriction` 准入插件以限制 kubelet 只能修改自己的节点)
62-
* Pod 和 Pod 状态 (启用 `NodeRestriction` 准入插件以限制 kubelet 只能修改绑定到自身的 Pod)
63-
* 事件
58+
写入操作:
6459

6560
<!--
6661
* nodes and node status (enable the `NodeRestriction` admission plugin to limit a kubelet to modify its own node)
6762
* pods and pod status (enable the `NodeRestriction` admission plugin to limit a kubelet to modify pods bound to itself)
6863
* events
6964
-->
65+
* 节点和节点状态(启用 `NodeRestriction` 准入插件以限制 kubelet 只能修改自己的节点)
66+
* Pod 和 Pod 状态 (启用 `NodeRestriction` 准入插件以限制 kubelet 只能修改绑定到自身的 Pod)
67+
* 事件
7068

71-
鉴权相关操作:
7269
<!--
7370
Auth-related operations:
7471
-->
75-
76-
* 对于基于 TLS 的启动引导过程时使用的
77-
[certificationsigningrequests API](/zh/docs/reference/access-authn-authz/certificate-signing-requests/)
78-
的读/写权限
79-
* 为委派的身份验证/授权检查创建 TokenReview 和 SubjectAccessReview 的能力
72+
身份认证与鉴权相关的操作:
8073

8174
<!--
8275
* read/write access to the [CertificateSigningRequests API](/docs/reference/access-authn-authz/certificate-signing-requests/) for TLS bootstrapping
8376
* the ability to create TokenReviews and SubjectAccessReviews for delegated authentication/authorization checks
8477
-->
78+
* 对于基于 TLS 的启动引导过程时使用的
79+
[certificationsigningrequests API](/zh-cn/docs/reference/access-authn-authz/certificate-signing-requests/)
80+
的读/写权限
81+
* 为委派的身份验证/鉴权检查创建 TokenReview 和 SubjectAccessReview 的能力
8582

86-
在将来的版本中,节点鉴权器可能会添加或删除权限,以确保 kubelet 具有正确操作所需的最小权限集。
8783
<!--
8884
In future releases, the node authorizer may add or remove permissions to ensure kubelets
8985
have the minimal set of permissions required to operate correctly.
9086
-->
87+
在将来的版本中,节点鉴权器可能会添加或删除权限,以确保 kubelet 具有正确操作所需的最小权限集。
9188

92-
为了获得节点鉴权器的授权,kubelet 必须使用一个凭证以表示它在 `system:nodes` 组中,用户名为 `system:node:<nodeName>`
93-
上述的组名和用户名格式要与 [kubelet TLS 启动引导](/zh/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/)过程中为每个 kubelet 创建的标识相匹配。
9489
<!--
9590
In order to be authorized by the Node authorizer, kubelets must use a credential that identifies them as
9691
being in the `system:nodes` group, with a username of `system:node:<nodeName>`.
9792
This group and user name format match the identity created for each kubelet as part of
9893
[kubelet TLS bootstrapping](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/).
9994
-->
95+
为了获得节点鉴权器的授权,kubelet 必须使用一个凭证以表示它在 `system:nodes`
96+
组中,用户名为 `system:node:<nodeName>`。上述的组名和用户名格式要与
97+
[kubelet TLS 启动引导](/zh-cn/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/)
98+
过程中为每个 kubelet 创建的标识相匹配。
99+
100+
<!--
101+
The value of `<nodeName>` **must** match precisely the name of the node as registered by the kubelet. By default, this is the host name as provided by `hostname`, or overridden via the [kubelet option](/docs/reference/command-line-tools-reference/kubelet/) `--hostname-override`. However, when using the `--cloud-provider` kubelet option, the specific hostname may be determined by the cloud provider, ignoring the local `hostname` and the `--hostname-override` option.
102+
For specifics about how the kubelet determines the hostname, see the [kubelet options reference](/docs/reference/command-line-tools-reference/kubelet/).
103+
-->
104+
`<nodeName>` 的值**必须**与 kubelet 注册的节点名称精确匹配。默认情况下,节点名称是由
105+
`hostname` 提供的主机名,或者通过 kubelet `--hostname-override`
106+
[选项](/zh-cn/docs/reference/command-line-tools-reference/kubelet/) 覆盖。
107+
但是,当使用 `--cloud-provider` kubelet 选项时,具体的主机名可能由云提供商确定,
108+
忽略本地的 `hostname``--hostname-override` 选项。有关
109+
kubelet 如何确定主机名的详细信息,请参阅
110+
[kubelet 选项参考](/zh-cn/docs/reference/command-line-tools-reference/kubelet/)
100111

101-
要启用节点授权器,请使用 `--authorization-mode = Node` 启动 apiserver。
102112
<!--
103113
To enable the Node authorizer, start the apiserver with `--authorization-mode=Node`.
104114
-->
115+
要启用节点鉴权器,请使用 `--authorization-mode=Node` 启动 API 服务器。
105116

106-
要限制 kubelet 具有写入权限的 API 对象,请使用 `--enable-admission-plugins=...,NodeRestriction,...` 启动 apiserver,从而启用 [NodeRestriction](/zh/docs/reference/access-authn-authz/admission-controllers#NodeRestriction) 准入插件。
107117
<!--
108118
To limit the API objects kubelets are able to write, enable the [NodeRestriction](/docs/reference/access-authn-authz/admission-controllers#NodeRestriction) admission plugin by starting the apiserver with `--enable-admission-plugins=...,NodeRestriction,...`
109-
-->
119+
-->
120+
要限制 kubelet 可以写入的 API 对象,请使用
121+
`--enable-admission-plugins=...,NodeRestriction,...` 启动 API 服务器,从而启用
122+
[NodeRestriction](/zh-cn/docs/reference/access-authn-authz/admission-controllers#NodeRestriction)
123+
准入插件。
110124

111-
## 迁移考虑因素
112125
<!--
113126
## Migration considerations
114127
-->
128+
## 迁移考虑因素 {#migration-considerations}
115129

116-
### `system:nodes` 组之外的 Kubelet
117130
<!--
118131
### Kubelets outside the `system:nodes` group
119132
-->
133+
### `system:nodes` 组之外的 kubelet {#kubelets-outside-the-system-nodes-group}
120134

121-
`system:nodes` 组之外的 kubelet 不会被 `Node` 鉴权模式授权,并且需要继续通过当前授权它们的机制来授权。
122-
节点准入插件不会限制来自这些 kubelet 的请求。
123135
<!--
124136
Kubelets outside the `system:nodes` group would not be authorized by the `Node` authorization mode,
125137
and would need to continue to be authorized via whatever mechanism currently authorizes them.
126138
The node admission plugin would not restrict requests from these kubelets.
127139
-->
140+
`system:nodes` 组之外的 kubelet 不会被 `Node` 鉴权模式授权,并且需要继续通过当前授权它们的机制来授权。
141+
节点准入插件不会限制来自这些 kubelet 的请求。
128142

129-
### 具有无差别用户名的 Kubelet
130143
<!--
131144
### Kubelets with undifferentiated usernames
132145
-->
146+
### 具有无差别用户名的 kubelet {#kubelets-with-undifferentiated-usernames}
133147

134-
在一些部署中,kubelet 具有 `system:nodes` 组的凭证,但是无法给出它们所关联的节点的标识,因为它们没有 `system:node:...` 格式的用户名。
135-
这些 kubelet 不会被 `Node` 授权模式授权,并且需要继续通过当前授权它们的任何机制来授权。
136148
<!--
137149
In some deployments, kubelets have credentials that place them in the `system:nodes` group,
138150
but do not identify the particular node they are associated with,
139151
because they do not have a username in the `system:node:...` format.
140152
These kubelets would not be authorized by the `Node` authorization mode,
141153
and would need to continue to be authorized via whatever mechanism currently authorizes them.
142154
-->
155+
在一些部署中,kubelet 具有 `system:nodes` 组的凭证,
156+
但是无法给出它们所关联的节点的标识,因为它们没有 `system:node:...` 格式的用户名。
157+
这些 kubelet 不会被 `Node` 鉴权模式授权,并且需要继续通过当前授权它们的任何机制来授权。
143158

144-
因为默认的节点标识符实现不会把它当作节点身份标识,`NodeRestriction` 准入插件会忽略来自这些 kubelet 的请求。
145159
<!--
146160
The `NodeRestriction` admission plugin would ignore requests from these kubelets,
147161
since the default node identifier implementation would not consider that a node identity.
148162
-->
163+
因为默认的节点标识符实现不会把它当作节点身份标识,`NodeRestriction`
164+
准入插件会忽略来自这些 kubelet 的请求。
149165

150-
### 相对于以前使用 RBAC 的版本的更新
151166
<!--
152167
### Upgrades from previous versions using RBAC
153168
-->
169+
### 相对于以前使用 RBAC 的版本的更新 {#upgrades-from-previous-versions-using-rbac}
154170

155-
升级的 1.7 之前的使用 [RBAC](/zh/docs/reference/access-authn-authz/rbac/) 的集群将继续按原样运行,因为 `system:nodes` 组绑定已经存在。
156171
<!--
157172
Upgraded pre-1.7 clusters using [RBAC](/docs/reference/access-authn-authz/rbac/) will continue functioning as-is because the `system:nodes` group binding will already exist.
158173
-->
174+
升级的 1.7 之前的使用 [RBAC](/zh-cn/docs/reference/access-authn-authz/rbac/)
175+
的集群将继续按原样运行,因为 `system:nodes` 组绑定已经存在。
159176

160-
如果集群管理员希望开始使用 `Node` 鉴权器和 `NodeRestriction` 准入插件来限制节点对 API 的访问,这一需求可以通过下列操作来完成且不会影响已部署的应用:
161177
<!--
162178
If a cluster admin wishes to start using the `Node` authorizer and `NodeRestriction` admission plugin
163179
to limit node access to the API, that can be done non-disruptively:
164-
-->
180+
-->
181+
如果集群管理员希望开始使用 `Node` 鉴权器和 `NodeRestriction` 准入插件来限制节点对
182+
API 的访问,这一需求可以通过下列操作来完成且不会影响已部署的应用:
165183

166-
1. 启用 `Node` 鉴权模式 (`--authorization-mode=Node,RBAC`) 和 `NodeRestriction` 准入插件
167-
2. 确保所有 kubelet 的凭据符合组/用户名要求
168-
3. 审核 apiserver 日志以确保 `Node` 鉴权器不会拒绝来自 kubelet 的请求(日志中没有持续的 `NODE DENY` 消息)
169-
4. 删除 `system:node` 集群角色绑定
170184
<!--
171185
1. Enable the `Node` authorization mode (`--authorization-mode=Node,RBAC`) and the `NodeRestriction` admission plugin
172186
2. Ensure all kubelets' credentials conform to the group/username requirements
173187
3. Audit apiserver logs to ensure the `Node` authorizer is not rejecting requests from kubelets (no persistent `NODE DENY` messages logged)
174188
4. Delete the `system:node` cluster role binding
175189
-->
190+
1. 启用 `Node` 鉴权模式 (`--authorization-mode=Node,RBAC`) 和 `NodeRestriction` 准入插件
191+
2. 确保所有 kubelet 的凭据符合组/用户名要求
192+
3. 审核 API 服务器日志以确保 `Node` 鉴权器不会拒绝来自 kubelet 的请求(日志中没有持续的 `NODE DENY` 消息)
193+
4. 删除 `system:node` 集群角色绑定
176194

177-
### RBAC 节点权限
178195
<!--
179196
### RBAC Node Permissions
180197
-->
198+
### RBAC 节点权限 {#rbac-node-permissions}
181199

182-
在 1.6 版本中,当使用 [RBAC 鉴权模式](/zh/docs/reference/access-authn-authz/rbac/) 时,`system:nodes` 集群角色会被自动绑定到 `system:node` 组。
183200
<!--
184201
In 1.6, the `system:node` cluster role was automatically bound to the `system:nodes` group when using the [RBAC Authorization mode](/docs/reference/access-authn-authz/rbac/).
185202
-->
203+
在 1.6 版本中,当使用 [RBAC 鉴权模式](/zh-cn/docs/reference/access-authn-authz/rbac/)
204+
时,`system:nodes` 集群角色会被自动绑定到 `system:node` 组。
186205

187-
在 1.7 版本中,不再推荐将 `system:nodes` 组自动绑定到 `system:node` 角色,因为节点鉴权器通过对 secret 和 configmap 访问的额外限制完成了相同的任务。
188-
如果同时启用了 `Node``RBAC` 授权模式,1.7 版本则不会创建 `system:nodes` 组到 `system:node` 角色的自动绑定。
189206
<!--
190207
In 1.7, the automatic binding of the `system:nodes` group to the `system:node` role is deprecated
191208
because the node authorizer accomplishes the same purpose with the benefit of additional restrictions
192209
on secret and configmap access. If the `Node` and `RBAC` authorization modes are both enabled,
193210
the automatic binding of the `system:nodes` group to the `system:node` role is not created in 1.7.
194211
-->
212+
在 1.7 版本中,不再推荐将 `system:nodes` 组自动绑定到 `system:node`
213+
角色,因为节点鉴权器通过对 Secret 和 ConfigMap 访问的额外限制完成了相同的任务。
214+
如果同时启用了 `Node``RBAC` 鉴权模式,1.7 版本则不会创建 `system:nodes`
215+
组到 `system:node` 角色的自动绑定。
195216

196-
在 1.8 版本中,绑定将根本不会被创建。
197217
<!--
198218
In 1.8, the binding will not be created at all.
199219
-->
220+
在 1.8 版本中,绑定将根本不会被创建。
200221

201-
使用 RBAC 时,将继续创建 `system:node` 集群角色,以便与将其他用户或组绑定到该角色的部署方法兼容。
202222
<!--
203223
When using RBAC, the `system:node` cluster role will continue to be created,
204224
for compatibility with deployment methods that bind other users or groups to that role.
205225
-->
226+
使用 RBAC 时,将继续创建 `system:node` 集群角色,以便与将其他用户或组绑定到该角色的部署方法兼容。

0 commit comments

Comments
 (0)